6장 - 중회귀분석 : 집객효과가 가장 큰 광고의 조합은 무엇인가?
Python, R 분석과 프로그래밍/비지니스 활용 사례로 배우는 데이터 분석 : R 2017. 2. 15. 19:30문제인식: 매스미디어 광고에 의한 신규유저수가 일정치 않다. 이는 매월 TV광고와 잡지 광고의배분이 일정하지 않기 때문이다. 이에 TV, 잡지 광고비와 신규 유저수의 관계를 파악한다.
해결 방법: TV, 잡지 광고비와 신규 유저수 데이터를 기반으로 중회귀분석을 실시한다.
R
1. 데이터 읽어 들이기
> ad.data <- read.csv('ad_result.csv',header=T,stringsAsFactors = F)
> ad.data
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
2. TV 광고의 광고비용과 신규 유저수의 산점도 그리기
> library(ggplot2)
> library(scales)
> ggplot(ad.data,aes(x=tvcm,y=install))
> ggplot(ad.data,aes(x=tvcm,y=install))+geom_point()
> ggplot(ad.data,aes(x=tvcm,y=install))+geom_point()+xlab('TV 광고비')+ylab('신규유저수')
> ggplot(ad.data,aes(x=tvcm,y=install))+geom_point()+xlab('TV 광고비')+ylab('신규유저수')+scale_x_continuous(label=comma)+scale_y_continuous(label=comma)
3. 잡지 광고의 광고비용과 신규 유저수의 산점도 그리기
> ggplot(ad.data,aes(x=magazine,y=install))+geom_point()+xlab('잡지 광고비')+ylab('신규유저수')+scale_x_continuous(label=comma)+scale_y_continuous(label=comma)
4. 회귀분석 실행
> 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
-> 이상 내용으로부터 아래와 같은 모델을 만들 수 있다.
신규 유저수 = 1.361 X TV광고비 + 7.25 X 잡지광고비 + 188.174
이라는 관계가 있으며, 신규 유저는 광고를 실시하지 않을 때 월 188명 정도이다. (아래 summary(fit)을 통해 유의하지 않음을 알 수 있다) 그리고 TV 광고에 1만원을 투입하면 양 1.3609명의 신규 고객을, 잡지 광고에 1만원을 투자하면 약 7.2498명의 신규 유저를 확보할 수 있다.
5. 회귀분석의 결과 해석
> summary(fit)
Call:
lm(formula = install ~ ., data = ad.data[, c("install", "tvcm", "magazine")])
Residuals:
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
Multiple R-squared: 0.9379, Adjusted R-squared: 0.9202
F-statistic: 52.86 on 2 and 7 DF, p-value: 5.967e-05
잔차(Residuals) : 잔차(예측값과 측정값의 차이)분포를 사분위수로 표현한 것으로, 데이터의 치우침이 있는지 확인할 수 있다. 1Q의 절대값이 3Q의 절대값보다 커서 약간 치우침이 있어 보인다.
Coefficients : 절편과 기울기에 관한 개요.
Adjusted R-Squared : 0.9202로 이 모델로 전체 데이터의 약 92.02%를 설명할 수 있다.
또는 아래와 같이 회귀분석 모델을 만들 수 있다.
> fit2<-lm(install~tvcm+magazine,data=ad.data)
> summary(fit2)
Call:
lm(formula = install ~ tvcm + magazine, data = ad.data)
Residuals:
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
Multiple R-squared: 0.9379, Adjusted R-squared: 0.9202
F-statistic: 52.86 on 2 and 7 DF, p-value: 5.967e-05
출처: 비지니스 활용 사레로 배우는 데이터 분석: R (사카마키 류지, 사토 요헤이 지음)
'Python, R 분석과 프로그래밍 > 비지니스 활용 사례로 배우는 데이터 분석 : R' 카테고리의 다른 글
5장 - A/B 테스트 : 어느 쪽의 배너광고가 반응이 더 좋은가? (0) | 2017.02.13 |
---|---|
4장 - 크로스 분석: 어떤 속성들의 고객들이 떠날까? (0) | 2017.02.10 |