市场研究中的数据分析知识整理 (一)

来源:互联网 发布:数据库基础知识点 编辑:程序博客网 时间:2024/05/05 19:55

1 数据选取

library(readr)library(dplyr)library(plyr)library(reshape)library(reshape2)#基于kaggle数据集https://www.kaggle.com/orgesleka/used-cars-databaseauto_original <- read_csv("~/autos.csv")autos <- auto_original[2:16]autos <- autos[!(autos$vehicleType %in% c("bus","limousine")),]autos <- autos[autos$price >= 100 & autos$price <= 100000                & autos$powerPS > 0 & autos$powerPS < 600               & autos$yearOfRegistration >=1910 & autos$yearOfRegistration <= 2016,]autos <- autos[,-(2:3)]

2 组间比较

2.1 表格透视

2.1.1、aggregate 分组计算,输出为data frame

aggregate(price ~ vehicleType + gearbox, data = autos, function(x) mean(x))#function(x)用于拓展函数内容

这里写图片描述

2.1.2、with和table 针对离散变量的双向描述

 freq_ve <- as.data.frame(with(autos, table(vehicleType, gearbox))) #该功能也可用aggregate的length(unique(x))实现

这里写图片描述

2.1.3、histogram, prop.table 和 barchart 的简单组间对比

library(lattice)histogram(~ price | vehicleType + gearbox, data = autos)barchart(prop.table(table(autos$gearbox,autos$vehicleType),margin = 2)[,2:6])

这里写图片描述

2.2 组间差异的统计检验

是为了「解决看上去不同,那是否真的具有显著性差异」的问题

2.2.1 chisq.test

#不同车型的变速箱之间的区别tmp_ve <- with(autos, table(vehicleType, gearbox))chisq.test(tmp_ve)#主要针对频数间的差异检验

这里写图片描述
结果显示,不同车型中变速箱类型的差异 p-value 远小于0.05,可以拒绝不同车型间变速箱类型的数量分布是相同的原假设,即不同车型间变速型类型的区别是有明显差异的。

2.2.2 t.test

不同车型和不同变速箱类型之间价格的区别检验,即组间均值检验

#价格分布,明显的偏态分布hist(autos$price)#针对两个样本均值间的差异t.test(price ~ gearbox, data = autos)

这里写图片描述

2.2.3 anova

如果要检验不只两个样本,则需要用于多组均值检验的方差检验

#先设置aov模型aov.g <- aov(price ~ gearbox, data = autos)aov.v <- aov(price ~ vehicleType, data = autos)#再用anova返回ANOVA的结果anova(aov.g)anova(aov.v)#也可以拓展到更复杂的层面anova(aov(price ~ gearbox + vehicleType, data = autos))

这里写图片描述

结果显示,不仅在单因子分析的时候,不同车型和变速箱类型和价格间有显著差异,二者进入多因子分析后,差异依然显著,说明车型和变速箱是影响价格的两个独立变量。

#置信区间的可视化library(multcomp)aov.v.g <-  aov(price ~  gearbox  + vehicleType -1, data = autos)#通过glht输出每个类的均值。尽管已经用-1移除截距(intercept)了,但依然还是有一个变量存在截距 只需以绝对值理解即可plot(glht(aov.v.g))

这里写图片描述

首先是自动挡价格均值明显高于手动挡,其次,SUV依然是各类车型中价格最高的,微型车(Kombi)则是价格均值最低的。

逐步建模,ANOVA选择解释变量

#通过step函数,基于price建立aov模型,为避免过度耗费资源,选取几个认为可能影响价格的变量aov.step <- step(aov(price ~  gearbox  + vehicleType +abtest +yearOfRegistration                     +powerPS +kilometer +fuelType +brand +notRepairedDamage, data = autos))#通过模型的向后迭代,获得最终认为是最「好」的模型,即只移除了用于标示测试与否的abtest一个变量,其他变量均对价格有显著影响,随即即可建立ANOVA模型anova(aov.step)

逐步建模结果:

这里写图片描述

ANOVA结果:

这里写图片描述

阅读全文
0 0