반응형

1. 혈액형 분석

> setwd('d:/temp/r_temp')
> bloodtype<-read.csv('혈액형.csv')$혈액형
> bloodtype
  [1] A  B  B  A  A  O  A  AB O  O  O  A  A  B  AB A  O  B  A  B  B  A  B  A  B  AB B  A  O 
 [30] AB O  B  A  B  A  O  B  A  A  A  A  O  A  O  O  B  B  O  AB A  B  AB B  O  O  O  AB O 
 [59] O  B  A  A  O  A  B  O  A  O  B  O  A  B  O  AB B  B  A  O  B  A  B  B  O  AB B  A  AB
 [88] A  B  A  A  O  O  A  A  O  AB A  A  O 
Levels: A AB B O
> pie.bloodtype=sort(table(bloodtype),decreasing = T)
> pie.bloodtype
bloodtype
 A  O  B AB 
34 28 27 11 
> par(mfrow=c(1,2))
> pie(pie.bloodtype,radius=1,main='원 그래프')


> slices=c('red','blue','yellow','green') > pie(pie.bloodtype,col=slices,radius=1,main='원 그래프')



2.국회의원 정당별 의석수 분석

> require(grDevices) #Graphics devices and support for base and grid graphics, R컬러 함수
> assembly<-c(152,5,3,13,127)
> names(assembly)=c('새누리152명','선진5명','무3명','진보13명','민주127명')
> pie.vote<-assembly/300
> pie.vote
새누리152명     선진5명       무3명    진보13명   민주127명 
 0.50666667  0.01666667  0.01000000  0.04333333  0.42333333 
> par(mfrow=c(1,2))
> pie(pie.vote)


> pie(pie.vote,col=c('red3','blue','green3','magenta','yellow'),radius=1,main='19개 국회의원 선거')

> par(new=T) > pie(assembly,radius=0.8,col='white',label=NA,border=NA) > text(0,0,'총 300석')



반응형

'KNOU > 1 데이터시각화' 카테고리의 다른 글

mosaicplot  (0) 2016.03.10
막대그래프  (0) 2016.03.08
Posted by 마르띤
,
반응형

1. 목적: 광고비에 따른 신규 고객 증감에 따른 회귀 분석을 통해 광고비 투입 비중 결정

2. 출처: 비즈니스 활용 사례로 배우는 데이터 분석:R, 한빛미디어

3. 코딩

> library(httr) > library(stringr)

> ad.data<-read.csv("./ad_result.csv",header = T, stringsAsFactors = F) > ad.data #tvcm: tv광고금액, magazine: 잡지광고금액,install=신규고객수 month tvcm magazine install 1 2013-01 6358 5955 53948 2 2013-02 8176 6069 57300 3 2013-03 6853 5862 52057 4 2013-04 5271 5247 44044 5 2013-05 6473 6365 54063 6 2013-06 7682 6555 58097 7 2013-07 5666 5546 47407 8 2013-08 6659 6066 53333 9 2013-09 6066 5646 49918 10 2013-10 10090 6545 59963

#TV 광고와 신규 고객 산점도 > ggplot(ad.data,aes(x=tvcm,y=install))+geom_point()+xlab('TV 광고비')+ylab('신규 유저수')+ + scale_x_continuous(label=comma)+scale_y_continuous(label=comma)


#잡지 광고와 신규 고객 산점도 > ggplot(ad.data,aes(x=magazine,y=install))+geom_point()+xlab('잡지 광고비')+ylab('신규 유저수')+ + scale_x_continuous(label=comma)+scale_y_continuous(label=comma)


TV광고비, 잡지광고비가 신규 고객 획득에 어떤 영향을 주는지 알기 위해 회귀 분석을 해보자.

#회귀 분석

> fit<-lm(install~.,data=ad.data[,c("install","tvcm","magazine")]) > fit Call: lm(formula = install ~ ., data = ad.data[, c("install", "tvcm", "magazine")]) Coefficients:#모델식 (Intercept) tvcm magazine 188.174 1.361 7.250  

# 신규 고객=188.174 + TV광고금액x1.361 + 잡지광고금액x7.25

#회귀 분석 요약 > summary(fit) Call: lm(formula = install ~ ., data = ad.data[, c("install", "tvcm", "magazine")]) Residuals:#1Q 절대값이 3Q절대값보다 커서 치우침 Min 1Q Median 3Q Max -1406.87 -984.49 -12.11 432.82 1985.84 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 188.1743 7719.1308 0.024 0.98123 tvcm 1.3609 0.5174 2.630 0.03390 * magazine 7.2498 1.6926 4.283 0.00364 ** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1387 on 7 degrees of freedom

#결정계수와 조정 결정계수. 1에 가까울 수록 적합함 Multiple R-squared: 0.9379, Adjusted R-squared: 0.9202

F-statistic: 52.86 on 2 and 7 DF, p-value: 5.967e-05

<해석>

1) 1Q의 절대값이 3Q보다 커 치우치지만, 조정 결정계수가 0.92로 1에 가깝고, p값 역시 5.967e-05로 0.05보다 작기 때문에 본 회귀분석 모델 값은 유효하다고 판단할 수 있음.

2) 결정계수(Coefficient determination): R square라고도 하며, 예측식의 정확성을 분석하는 지표.  값이 클 수록 정확하다고 판단. 결정계수가 0.4이상이면 정확도에 문제가 없다고 판단. 1에 가까울수록 정확성이 크다, 신뢰도가 높다고 판단

3) P값: Probability의 P로 관련성이 없을 확률. P값이 0.05이상이면 즉, 관련성이 없을 확률이 5%이상이면 예측을 하는 데 도움이 되지 않는다고 판단.


4. 개선점

1) ggplot 함수 더 공부

2) 회귀분석에 대한 통계적인 공부:

 - 추정값, 표준오차, t값, p값, 통계적으로 유의한지, 결정계수, 조정결정계수

반응형
Posted by 마르띤
,
반응형

1. 데이터 분석 목적

중국 메인 포털 사이트 중 하나인 sohu. 이중  "정책"색센의 글을 모아보려 한다.

이를 통해 최근 사이 중국 주요 정부 기관에서 발표한 정책의 변화를 알아보려한다.


2. 해당 URL:

#메인 페이지는 http://business.sohu.com/jrjg/index.shtml

#두 번째 페이지는 http://business.sohu.com/jrjg/index_322.shtml

#맨 마지막 100번째 페이지는 http://business.sohu.com/jrjg/index_224.shtml


3. 코딩 사례

library(httr)

library(rvest)

library(stringr)


for(i in 1:100){

shtml='.shtml'

  if(i==1){

url=sprintf('http://business.sohu.com/jrjg/index%s',shtml)

  }else{

page<-324-i

url=paste0('http://business.sohu.com/jrjg/index_',page,shtml)

  }

}


h<-read_html(url)

article.titles=html_nodes(h,'div.f14list ul li a') #문제점1

article.links=html_attr(article.titles,'href') #문제점1


titles=c()

contents=c()

dates=c()


for(link in article.links){

h.link=read_html(link)


#제목 추출

title=repair_encoding(html_text(html_nodes(h.link,'div.left

h1')),from='UTF-8') #문제점2

titles=c(titles,title)


#내용 추출 

content=repair_encoding(html_text(html_nodes(h.link,'div#contentText')),from='UTF-8')

contents=c(contents,content)


#날짜 추출

date=repair_encoding(html_text(html_nodes(h.link,'div.sourceTime')),from='UTF-8')

date=str_extract(date,'[0-9]+.[0-9]+.[0-9]+.') 

dates=c(dates,date)

}


result=data.frame(titles,contents,dates)

View(result) #문제점3


setwd('d:/temp/r_temp')

write.table(result,'sohu.csv',sep=',')

sohu<-read.csv('sohu.csv')#문제점3

sohu[1,] 


4. 코딩 후 문제점

1) 분명 URL을 긁을 때는 2016년 글이지만 article.titles=html_nodes(h,'div.f14list ul li a')  이후에는 2011년 8월 4일, 5일 글만 긁어진다. 

2) UTF-8로 했음에도 불구하고 유니코드 문제가 해결이 안된다. 페이지 소스에서 보니 GBK 중국어 간체로 되어 있어 GBK로 해보아도 글자가 깨져 보인다.

3) View(result) 를 통해서 첫번째 column에 숫자 1,2,3 이렇게 시작되는 걸 볼 수 있는데, 엑셀에서도 숫자가 보여 Column의 제목이 왼쪽으로 하나씩 밀려졌다. 

4) 크롤링 후 wordcloud 분석을 해야하는데 tmcn 패키지 설치가 안된다. 

> install.packages("tmcn")

Warning in install.packages :

  package ‘tmcn’ is not available (for R version 3.2.3)


공부를 좀 더 하여 위의 문제점을 개선하느데로 다시 업로드 할 예정.

포기하지 않고 될 때까지 계속 공부하면 된다라고 믿고, 계속 열심히 합시당.

반응형

'Python, R 분석과 프로그래밍' 카테고리의 다른 글

stars 함수 - 파이조각그림, 나이팅게일 차트  (0) 2016.05.24
R 회귀분석  (0) 2016.02.28
beer data 연습  (0) 2015.11.10
subset, mosiacplot, hist, var,sd  (0) 2015.10.31
dim, str, plot  (0) 2015.10.29
Posted by 마르띤
,