包载入
library(vcd)
library(car)
线性模型拓展
逻辑回归
逻辑回归是讲一件事的发生概率和一个预测变量的指数方程联系的模型,能针对验证性研究给出有明确有效的回应。
#此处引入的数据集是关于不同销售策略下,客户转化率的问题
amu_log <- read.csv("http://r-marketing.r-forge.r-project.org/data/rintro-chapter9.csv")
names(amu_log) <- tolower(names(amu_log))
head(amu_log)
#以非捆绑销售的为基准,对因子层级进行设定
amu_log$promo <- factor(amu_log$promo, levels = c("NoBundle","Bundle"))
#可以看出,pass和promo两个经典逻辑回归响应变量和解释变量基础上,还有其他变量channel的存在。
with(amu_log,table(pass,promo))
结果:
promo
pass NoBundle Bundle
NoPass 812 755
YesPass 670 919
拟合模型:
amu_glm <- glm(pass ~ promo + channel,data = amu_log, family = binomial)
summary(amu_glm)
结果:
Call:
glm(formula = pass ~ promo + channel, family = binomial, data = amu_log)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.9079 -0.9883 0.5946 0.7637 2.3272
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.07860 0.13167 -15.787 < 2e-16 ***
promoBundle -0.56022 0.09031 -6.203 5.54e-10 ***
channelMail 2.17617 0.14651 14.854 < 2e-16 ***
channelPark 3.72176 0.15964 23.313 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 4375.0 on 3155 degrees of freedom
Residual deviance: 3490.2 on 3152 degrees of freedom
AIC: 3498.2
Number of Fisher Scoring iterations: 4
#计算相关系数发生比
exp(coef(amu_glm))
#计算系数的置信区间发生比
exp(confint(amu_glm))
结果:
(Intercept) promoBundle channelMail channelPark
0.1251054 0.5710846 8.8125066 41.3371206
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) 0.09577568 0.1606189
promoBundle 0.47793969 0.6810148
channelMail 6.65770550 11.8328173
channelPark 30.42959274 56.9295369
逻辑回归模型的系数解读,可使用其系数判断方向,使用exp(系数)判断大小。以本案为例,在公园内直接售票能比不这么做提高30~56倍的售出票的概率。
#对于他们之间的关系,除了table()函数外,可以通过更好可视化的马赛克图来展示。
library(vcd)
doubledecker(table(amu_log))
不同渠道绑定和非绑定的总体对比趋势是不同的,说明不同变量间存在交互效应。为此,我们在以上模型的基础上,加入promo和channel的交互效应,看是否有更好地解释力。
amu_glm2 <- glm(pass ~ promo + channel + promo:channel,data = amu_log, family = binomial)
summary(amu_glm2)
#coef()计算模型系数,exp()则获得发生比
exp(coef(amu_glm2))
#计算系数的置信区间发生比
exp(confin