2조 자료모음 https://github.com/tmdals5252/Statistics-Network-Analysis
기업별 반도체 특허를 시각자료로 제공하고 분석한다.
특허를 내는 기업
개인
선정 기업 : LG, SAMSUNG, SK
반도체
Display
컴퓨터로 처리된 내용을 브라운관에
보여주는 출력장치
Led (Light-Emitting Diode)
전기 에너지를
빛으로 변환시키는 광반도체
RAM (Random Access Memory)
기억된 정보를
읽어내기도 하고 다른 정보를 기억시킬 수도 있는 메모리
Transistor
전류나 전압 흐름을 조절하여
신호를 증폭하고, 스위치 역할 등을 수행하는 반도체소자
분석을 진행할 변수 열 선택 (4개의 변수)
- 발명의 명칭,
출원인, 출원연도, 심사진행 상태
출원인을 기준으로 반도체 부품별 데이터 구분
- 3개 기업 x 4개
반도체 - 총 12개 데이터 생성
2. 심사 진행상태 비율 시각화
- 심사 진행 상태 변수를 사용 -
각 기업이 각 부품 별 가지고 있는 특허의 등록결정, 등록거절, 취하, 포기
등 비율 시각화
3. 각 부품별 기업의 특허 개수 비율 시각화
- 해당 부품에서
가장 많은 특허를 가진 기업 파악
4. 특허 추이 시각화
- 연도별 심사 진행 상태의 비율 추이 시각화
- 1의 워드클라우드 키워드 중 상위 키워드를 선별하여 연도별 키워드
빈도수의 추이 시각화
예시
##sk led
led_sk <- file("C:/Users/dnjs1/Downloads/Rr/led_sk.txt")
led_sk_r<-readLines(led_sk)
str(led_sk_r)
head(led_sk_r)exNouns<-function(x){
paste(extractNoun(as.character(x)), collpase= " ")
}
l_k_r<- sapply(led_sk_r, exNouns)
l_k_r[2]l_k_r_cpus<-Corpus(VectorSource(l_k_r))
l_k_r_cpusl_k_r_cpus_prepro<-tm_map(l_k_r_cpus,removePunctuation) #문장부호제거
l_k_r_cpus_prepro<-tm_map(l_k_r_cpus_prepro,removeNumbers) #숫자 제거
l_k_r_cpus_prepro<-tm_map(l_k_r_cpus_prepro,tolower) #영문자 소문자 변경
l_k_r_cpus_prepro<-tm_map(l_k_r_cpus_prepro,removeWords, stopwords('english')) #불용어(for, very, and, of, are) 제거
#전처리 결과 확인
inspect(l_k_r_cpus_prepro)#단어 선별(1음절 = 2byte, 2음절 ~ 8음절)
l_k_r_cpus_prepro_term<-TermDocumentMatrix(l_k_r_cpus_prepro, control = list(wordLengths=c(4,16)))
l_k_r_cpus_prepro_term
#matrix -> data.frame으로 변경
l_k_r_cpus_df<-as.data.frame(as.matrix(l_k_r_cpus_prepro_term))
dim(l_k_r_cpus_df)
#단어 출현 빈도수 구하기
wordResult<- sort(rowSums(l_k_r_cpus_df), decreasing = T)
wordResult#워드 클라우드 시각화
word_names<-names(wordResult)
wordcloud(names(wordResult[1:40]),wordResult[1:40]) # 상위 40개만 뽑아서 추출#단어 이름과 빈도수로 df 생성
word_df<-data.frame(word = names(wordResult[1:40]), freq= wordResult[1:40])
#단어 색상과 글꼴 지정
pal <- brewer.pal(12, "Paired") #12가지 색상
windowsFonts(malgun=windowsFont("맑은 고딕"))x11() #별도의 창을 띄우는 함수
wordcloud(word_df$word, word_df$freq, scale= c(5,1), min.freq=3, random.order=F, rot.per =.1, colors = pal, family= "malgun")반도체 특허 심사 진행 상태 및 부품별 비율
예시
setwd('C:/Users/dnjs1/Downloads/Rr/')
rate<- function(x, y, z){
b<-x %>% filter(grepl(y, 출원일자))
a<-intersect(x %>% filter(grepl(y, 출원일자)), x %>% filter(grepl(z, 심사진행상태)))
return(nrow(a)/nrow(b))
}
# display(crystal) 키워드 최근 5년(2022 ~ 2018) 심사진행상태 추이
# 등록결정=1, 거절결정=2, 포기=3, 취하=4
crys_lg<-read.csv("crys_lg.csv", header = T)
crys_sam<-read.csv("crys_sam.csv", header = T)
crys_sk<-read.csv("crys_sk.csv", header = T)
# 결측치 제거
crys_lg <- crys_lg[!(crys_lg$심사진행상태 == "" ), ]
crys_sam <- crys_sam[!(crys_sam$심사진행상태 == "" ), ]
crys_sk <- crys_sk[!(crys_sk$심사진행상태 == "" ), ]
# 등록결정
crys_l_2022_1<-rate(crys_lg, 2022, '등록결정')
crys_l_2021_1<-rate(crys_lg, 2021, '등록결정')
crys_l_2020_1<-rate(crys_lg, 2020, '등록결정')
crys_l_2019_1<-rate(crys_lg, 2019, '등록결정')
crys_l_2018_1<-rate(crys_lg, 2018, '등록결정')
#거절결정
crys_l_2022_2<-rate(crys_lg, 2022, '거절결정')
crys_l_2021_2<-rate(crys_lg, 2021, '거절결정')
crys_l_2020_2<-rate(crys_lg, 2020, '거절결정')
crys_l_2019_2<-rate(crys_lg, 2019, '거절결정')
crys_l_2018_2<-rate(crys_lg, 2018, '거절결정')
# 포기
crys_l_2022_3<-rate(crys_lg, 2022, '포기')
crys_l_2021_3<-rate(crys_lg, 2021, '포기')
crys_l_2020_3<-rate(crys_lg, 2020, '포기')
crys_l_2019_3<-rate(crys_lg, 2019, '포기')
crys_l_2018_3<-rate(crys_lg, 2018, '포기')
# 취하
crys_l_2022_4<-rate(crys_lg, 2022, '취하')
crys_l_2021_4<-rate(crys_lg, 2021, '취하')
crys_l_2020_4<-rate(crys_lg, 2020, '취하')
crys_l_2019_4<-rate(crys_lg, 2019, '취하')
crys_l_2018_4<-rate(crys_lg, 2018, '취하')crys_l<-data.frame('심사진행상태'=c('등록결정','등록결정','등록결정','등록결정','등록결정','거절결정', '거절결정', '거절결정', '거절결정', '거절결정','포기','포기','포기','포기','포기','취하','취하','취하','취하','취하'),
'연도'=c(2022,2021,2020,2019,2018,2022,2021,2020,2019,2018,2022,2021,2020,2019,2018,2022,2021,2020,2019,2018),
'비율'= c(crys_l_2022_1,crys_l_2021_1,crys_l_2020_1,crys_l_2019_1,crys_l_2018_1,crys_l_2022_2,crys_l_2021_2,crys_l_2020_2,crys_l_2019_2,crys_l_2018_2,crys_l_2022_3,crys_l_2021_3,crys_l_2020_3,crys_l_2019_3,crys_l_2018_3,crys_l_2022_4,crys_l_2021_4,crys_l_2020_4,crys_l_2019_4,crys_l_2018_4))그래프 코드
win.graph(15,10)
g1 <- ggplot(data=crys_l, aes(x=연도,y=비율,group=심사진행상태,color=심사진행상태))+ geom_line(size=1.3) + geom_point(size=4) +
geom_point(size=2.5, color='#FFFFFF') + labs(title='LG crystal 관련 특허 최근 5년 심사진행상태')display 관련 공통 최상위 키워드 ‘crystal’ 에 대한
3사의 5개년(2022 ~ 2018) 심사진행상태 추이
led 관련 공통 최상위 키워드 ‘oled’ 에 대한
3사의 5개년(2022 ~ 2018) 심사진행상태 추이
ram 관련 공통 최상위 키워드 ‘sram’ 에 대한
3사의 5개년(2022 ~ 2018) 심사진행상태 추이
transistor 관련 공통 최상위 키워드 ‘panel’ 에 대한
3사의 5개년(2022 ~ 2018) 심사진행상태 추이
예시
#데이터 불러오기 및 전처리
display_lg <- read.csv("C:/Users/dnjs1/Downloads/Rr/display(LG).csv", header=T)
display_lg <- display_lg[!(display_lg$심사진행상태 == ""), ]
display_lg$심사진행상태 <- gsub("\\(.*?\\)","",display_lg$심사진행상태)
#등록결정/거절결정/포기/취하(심사미청구)/기타=원결정유지
display_lg$심사진행상태 <- substr(display_lg$심사진행상태, 1, 5)
display_lg$심사진행상태 <- str_trim(display_lg$심사진행상태)
#각 항목별 개수 파악 (등록결정=1, 거절결정=2, 포기=3, 취하=4, 기타=5(원결정유지) )
display_lg_1 <- nrow(display_lg[display_lg$심사진행상태 == "등록결정",])
display_lg_1 <- nrow(display_lg[display_lg$심사진행상태 == "등록결정",])
display_lg_2 <- nrow(display_lg[display_lg$심사진행상태 == "거절결정",])
display_lg_3 <- nrow(display_lg[display_lg$심사진행상태 == "포기",])
display_lg_4 <- nrow(display_lg[display_lg$심사진행상태 == "취하",])
display_lg_5 <- nrow(display_lg[display_lg$심사진행상태 == "원결정유지",])
display_lg <- nrow(display_lg)
#lg사 display 관련 특허건 개수
display_lg #39209 #lg사 display 관련 특허 건 수
display_lg_1 #26915 #lg사 display 관련 특허 중 등록결정 건 개수 (재심사 후 등록결정건 포함)
display_lg_2 #2996 #lg사 display 관련 특허 중 거절결정 건 개수(거절결정 후 재심사중인 건 포함)
display_lg_3 #54 #lg사 display 관련 특허 중 포기(미납) 건 개수
display_lg_4 #8755 #lg사 display 관련 특허 중 취하(심사미청구) 건 개수
display_lg_5 #422 #lg사 display 관련 특허 중 원결정유지 건 개수
#lg사 display 관련 특허건 비율
display_lg_1_per <- display_lg_1 / display_lg
display_lg_2_per <- display_lg_2 / display_lg
display_lg_3_per <- display_lg_3 / display_lg
display_lg_4_per <- display_lg_4 / display_lg
display_lg_5_per <- display_lg_5 / display_lg #원결정유지건은 제외
display_lg_1_per #0.6864495
display_lg_2_per #0.07641103
display_lg_3_per #0.001377235
display_lg_4_per #0.2232906
#lg사 display 관련 특허건
display_lg <- data.frame("심사진행상태"=c("등록결정","거절결정","포기","취하"),
"비율"=c(display_lg_1_per,display_lg_2_per,display_lg_3_per,display_lg_4_per))그래프 코드
d_l = ggplot(display_lg, aes(x=심사진행상태, y=비율, fill=심사진행상태))+
geom_bar(mapping=aes(fill=심사진행상태),stat = "identity")+
geom_label(aes(label=round(비율,3),nudge_y = 1.1)) +
labs(title = "LG사 display 관련 특허건 비율")예시
rm(list=ls())
setwd("C:/Users/dnjs1/Downloads/Rr/")
##LG Display
#데이터 불러오기 및 전처리
display_lg <- read.csv("display(LG).csv", header=T)
display_lg <- display_lg[!(display_lg$심사진행상태 == ""), ]
display_lg$심사진행상태 <- gsub("\\(.*?\\)","",display_lg$심사진행상태)
#등록결정/거절결정/포기/취하(심사미청구)/기타=원결정유지
display_lg$심사진행상태 <- substr(display_lg$심사진행상태, 1, 5)
display_lg$심사진행상태 <- str_trim(display_lg$심사진행상태)
#nrow 빼기
#각 항목별로 분류 (등록결정=1, 거절결정=2, 포기=3, 취하=4, 기타=5(원결정유지) )
display_lg_1 <- display_lg[display_lg$심사진행상태 == "등록결정",]
display_lg_2 <- display_lg[display_lg$심사진행상태 == "거절결정",]
display_lg_3 <- display_lg[display_lg$심사진행상태 == "포기",]
display_lg_4 <- display_lg[display_lg$심사진행상태 == "취하",]
display_lg_5 <- display_lg[display_lg$심사진행상태 == "원결정유지",]
#lg display 1등록결정 특허의 연도별 추세
display_lg_1 <- display_lg[display_lg$심사진행상태 == "등록결정",]
display_lg_1 <- display_lg_1[,3:4] #연도부분만 남기기
#출원일자에서 앞의 4글자만 남기고 지우기
display_lg_1$출원일자 <- substr(display_lg_1$출원일자, 1, 4)
display_lg_1_18 <- nrow(display_lg_1[display_lg_1$출원일자 == "2018",])
display_lg_1_19 <- nrow(display_lg_1[display_lg_1$출원일자 == "2019",])
display_lg_1_20 <- nrow(display_lg_1[display_lg_1$출원일자 == "2020",])
display_lg_1_21 <- nrow(display_lg_1[display_lg_1$출원일자 == "2021",])
display_lg_1_22 <- nrow(display_lg_1[display_lg_1$출원일자 == "2022",])
display_lg_1_18 #291
display_lg_1_19 #163
display_lg_1_20 #146
display_lg_1_21 #52
display_lg_1_22 #45#해당 연도의 총 특허 수
display_lg$출원일자 <- substr(display_lg$출원일자, 1, 4)
display_lg_18 <- nrow(display_lg[display_lg$출원일자 == "2018",])
display_lg_19 <- nrow(display_lg[display_lg$출원일자 == "2019",])
display_lg_20 <- nrow(display_lg[display_lg$출원일자 == "2020",])
display_lg_21 <- nrow(display_lg[display_lg$출원일자 == "2021",])
display_lg_22 <- nrow(display_lg[display_lg$출원일자 == "2022",])
display_lg_18 #389
display_lg_19 #196
display_lg_20 #155
display_lg_21 #59
display_lg_22 #51#lg사 display 관련 특허건 비율
#1 등록결정
dis_lg_1_18_per <- display_lg_1_18/display_lg_18
dis_lg_1_19_per <- display_lg_1_19/display_lg_19
dis_lg_1_20_per <- display_lg_1_20/display_lg_20
dis_lg_1_21_per <- display_lg_1_21/display_lg_21
dis_lg_1_22_per <- display_lg_1_22/display_lg_22
dis_lg_1_18_per
dis_lg_1_19_per
dis_lg_1_20_per
dis_lg_1_21_per
dis_lg_1_22_per그래프 코드
#lg사 display 관련 특허건
display_lg__ <- data.frame("심사진행상태"=c("등록결정","등록결정","등록결정","등록결정","등록결정"),
"연도"=c("2018","2019","2020","2021","2022"),
"비율"=c(dis_lg_1_18_per,dis_lg_1_19_per,dis_lg_1_20_per,dis_lg_1_21_per,dis_lg_1_22_per
))
display_lg__
##그래프
d_l = ggplot(data=display_lg__, aes(x=연도,y=비율,group=심사진행상태,color=심사진행상태))+
geom_line(size=1.3)+
geom_point(size=4)+
geom_point(size=2.5,color='#FFFFFF')+
scale_y_break(c(0.225, 0.725)) +
labs(title = "최근 5개년 LG사 display 관련 특허 심사진행상태 비율")예시
##Display
#데이터 불러오기 및 전처리
display_lg <- read.csv("C:/Users/dnjs1/Downloads/Rr/display(LG).csv", header=T)
display_lg <- nrow(display_lg)
display_samsung <- read.csv("C:/Users/dnjs1/Downloads/Rr/display_samsung.csv", header=T)
display_samsung <- nrow(display_samsung)
display_sk <- read.csv("C:/Users/dnjs1/Downloads/Rr/skdisplay.csv", header=T, fileEncoding="euc-kr")
display_sk <- nrow(display_sk)
display_all <- sum(display_lg,display_samsung,display_sk)
#비율
display_lg <- display_lg/display_all
display_samsung <- display_samsung/display_all
display_sk <- display_sk/display_all
display <- data.frame("기업"=c("LG","SAMSUNG","SK"),
"퍼센트"=c(display_lg*100,display_samsung*100,display_sk*100))그래프 코드
dis = ggplot(display, aes(x = '', y = 퍼센트, fill = 기업)) +
geom_bar(width=0.5, stat = "identity", color="white") +
coord_polar("y",start=1)+
geom_text(aes(label = paste0(round(퍼센트,2),"%")),
position = position_stack(vjust = 0.5))+
theme_void()+
labs(title = "Display 관련 특허 내 각 기업 비율")
Display : SAMSUNG > LG > SK
RAM : SAMSUNG > SK > LG
LED : SAMSUNG > LG > SK
Transistor : SAMSUNG > LG > SK
LG : display(93.67%) > transistor(3.67%) > led(2.52%) > ram(0.14%)
Samsung : display(89.71%) > transistor(7.02%) > led(2.67%) > ram(0.6%)
SK : transistor(53.43%) > ram(19.89%) > display(17.94%) > led(8.74%)
ⓒ Statistical Methods, Gachon University