>RE::VISION CRM

R 데이터 분석

bikini forecasting case [EDA sample]

YONG_X 2014. 9. 3. 07:17


[ 예측모델링 Workshop 중 Forecasting Example에 대한 EDA Example #001 ] 



# 전혀 익숙하지 않다면... 기억을 되살려서... R Studio를 열고, 데이터를 저장할 작업폴더를 먼저 지정


setwd("C:/Users/revision/Desktop/rvc_kb/R_research2012/bikini")


# 먼저 다운로드해둔 데이터 셋을 읽어들이기

bikini <- read.csv("bikinitrends_set1.csv")


head(bikini, 2)

>

  year month 비키니_pc 수영장_pc 휴가_pc 에어컨_pc 선글라스_pc 장마_pc

1 2010     7     98.25        19    8.75      21.5          17    5.25

2 2010     8     56.80        11    4.40      19.6          10    1.20

  해수욕장_pc 다이어트_pc 제습기_pc 태닝_pc 비키니_mobile 수영장_mobile

1       16.75        6.75      2.25       1          3.25             1

2        3.20        6.80      2.60       1          3.40             1

  휴가_mobile 에어컨_mobile 선글라스_mobile 장마_mobile 해수욕장_mobile

1           1           1.0               1           1               1

2           1           1.2               1           1               1

  다이어트_mobile 제습기_mobile 태닝_mobile 비키니_g 수영장_g 휴가_g

1               1             1         1.0     26.5     9.25   5.25

2               1             1         0.8     18.8     9.60   4.40

  에어컨_g 선글라스_g 장마_g 해수욕장_g 다이어트_g 제습기_g 평균기온

1      5.5       2.25    0.5        8.0          8      0.0     25.7

2      5.8       1.60    0.0        8.4         14      0.2     27.5

  최고기온 최저기온 강수량 강수일수 습도 소비자물가지수 생활물가지수

1     29.5     23.0  285.3     15.7   78           99.8         99.6

2     31.2     24.6  353.4     16.9   79          100.3        100.2

  소매업판매액지수 백화점판매액지수 대형마트판매액지수

1             99.9             85.1              103.9

2             96.4             80.2              100.9

  슈퍼마켓판매액지수 편의점판매액지수 승용차및연료소매점판매액지수

1              104.1            111.0                        101.6

2              105.6            114.4                        100.7

  전문소매점판매액지수 무점포소매판매액지수

1                 98.7                 99.2

2                 92.6                 91.7



# 플롯을 활용해서 데이터의 전반적인 구조를 살펴보기 위해서

# 먼저 데이터 셋을 지정해서 셋 이름 생략하고 지칭하기 위해서

attach(bikini)


plot(비키니_pc)




# 이미 월별로 정렬되어있는 데이터라 정렬은 필요없었음

# 매년 주기의 계절성이 명확해 보임을 알 수 있음

# 만일 정렬이 필요하다면 먼저 정렬을 실시해야함



plot(비키니_pc, 선글라스_pc)



# 시각적으로는 관계파악이 잘 안되니, ... 선이라도 하나 그어 본다면

abline( lm( 선글라스_pc ~ 비키니_pc, data=bikini), col="blue") 





# 직관과는 반대로 먼저 선글라스 부터 써주어야함

# 우리가 생각하는 직선은 사실은 아래와 같은 회귀분석을 통해 나오는 것

lm01 <- lm(선글라스_pc ~ 비키니_pc , data=bikini)


# 회귀분석결과를 저장한 오브젝트의 내용물을 보면

lm01


Call:

lm(formula = 비키니_pc ~ 선글라스_pc, data = bikini)


Coefficients:

(Intercept)  선글라스_pc  

      2.304        3.185  


# 회귀분석 결과를 저장한 오브젝트를 대입해도 같은 결과가 나오게 됨

abline(lm01, col="blue")


#회귀분석 결과를 좀 더 자세히 보고자 한다면

summary(lm01)


Call:

lm(formula = 선글라스_pc ~ 비키니_pc, data = bikini)


Residuals:

   Min     1Q Median     3Q    Max 

-4.779 -2.309 -1.752  2.288  8.623 


Coefficients:

            Estimate Std. Error t value Pr(>|t|)    

(Intercept)  2.79701    0.82065   3.408  0.00135 ** 

비키니_pc    0.19320    0.02228   8.670  2.6e-11 ***

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 


Residual standard error: 3.512 on 47 degrees of freedom

Multiple R-squared: 0.6153, Adjusted R-squared: 0.6071 

F-statistic: 75.17 on 1 and 47 DF,  p-value: 2.595e-11 




# 비키니에 대한 관심도를 보고자 했던 것이나, 다른 지수와의 관계에 대해 

# 살펴보기 위해서는 교차 plot을 작성

# 비키니와 선글라스가 양의 관계가 있는 것으로 보임


plot( as.character(month), 비키니_pc)


# 비키니에 대한 관심은 매년주기의 계절적 특성을 가진 것을 알고 있으나

# 매년 동일한 수준은 아닐 것이라고 가정하고

# 년도별로 얼마나 편차가 있는가를 확인

# 관심이 집중되는 6, 7월에는 연도별 차이가 상당히 있음을 시각적으로 확인

# 주의사항:: 월은 순서의 의미를 가지고는 있으나, 각각이 별도의 카테고리

# 따라서, character data type으로 변환을 해서 그려야 제대로 그려짐


plot( as.character(year), 비키니_pc)


# 동일한 방식으로 이번에는 연도별 분포를 검토

# 동일한 연도내에서의 차이는 존재하지만 점차 검색지수가 낮아지는 양상으로 보임