写在最前面
这是我今年R语言结课作业,如果你的老师是wqm,建议慎用,这里主打一个助人为乐。
当是课堂汇报的时候被批的劈头盖脸,但最后成绩给的蛮高的,给了满绩。
软件用到如下三个:
具体下载方式随便搜搜会有很多。
点击下方连接可以下载到ppt、论文还有数据(内容都做打码处理了)。代码在结尾有,那个文件地址你改改就能跑了。(数据很乱啊,也其实并不是真实数据,还有那个问卷结果图片也是批图批的,你可以自己真实发布一个问卷,自己能搞来数据还是蛮好的)
https://wwf.lanzouj.com/ibwVz1n7harg
一、背景介绍
随着市场竞争愈加激烈,企业越来越重视消费者的满意度和忠诚度,对此,手机厂商们推出了形形色色的手机供消费者选择,但是不同品牌的手机却有不同的定位和评价。究竟什么样的手机最得消费者喜爱?
本项目收集了不同品牌手机用户满意度的调查数据,尝试通过建立统计模型分析影响满意度和忠诚度的影响因素,并为手机厂商提升满意度提出建议。
二、数据来源与说明
通过问卷星设计调查问卷,该问卷共包含围绕用户体验、性价比、象征价值、满意度、忠诚度这五个方面设计了29个问题,通过发布社交平台及问卷星官方样本服务收集问卷,截止至撰写报告时共收集答卷431份。
图1 问卷信息
图2 问卷内容
图3 问卷发布
导出问卷结果,选取小米、华为、苹果、三星这4款具有代表性的手机品牌数据为实验数据,关于这4种品牌的有效数据共286条。
数据共包含286条记录,将问卷中每个问题归结为1个变量,总计29个变量,如上表所示。其中,除了手机品牌外,其余 28 个变量为取值范围在1-7之间的变量。
图4 导出问卷信息
图5 整理数据
满意度因子,由总体满意度、预期满意度、相对满意度三个变量的取值求均值得到;忠诚度因子,由总体忠诚度、行为忠诚度、口碑忠诚度三个变量的取值求均值得到。其余变量有 22 个,可归纳为三个因子:用户体验因子,性价比因子,象征价值因子。
潜在因子 | 观测指标 |
用户体验 | 总体质量、外观造型、通话质量、功能齐全、安全耐用、电池续航时间、 维修方便、科技含量 |
性价比 | 价格满意、物有所值 |
象征价值 | 有面子、体现个性与形象、象征身份、功能体验、使用感觉、使用心情、 受青睐程度、身份认同感、价值观、受喜爱深度、购买明智、值得青睐 |
满意度 | 总体满意度、预期满意度、相对满意度 |
忠诚度 | 总体忠诚度、行为忠诚度、口碑忠诚度 |
表1 变量与因子关系说明图
三、因子分析
3.1 数据清洗
首先对收集来的数据进行数据清洗。依次对数据进行载入数据、剔除缺失值、检测是否有小数、查看异常点的操作。
图6 数据清洗
3.2 相关性描述
图7是22个变量的相关系数图,由图可知,大部分变量的相关性较强,可以进行因子分析。同时,少数变量与其余所有变量几乎都不存在线性相关关系,考虑将其剔除。
图7 相关系数图
剔除线性相关小的变量后保留的变量:
潜在因子 | 观测指标 |
用户体验 | 总体质量(q1) 外观造型(q2) 通话质量(q3) 功能齐全(q4) 安全耐用(q5) 维修方便(q7) 科技含量(q8) 功能体验(q14) |
性价比 | 价格满意(q9) 物有所值(q10) |
象征价值 | 体现个性与形象(q12) 受青睐程度(q17) 身份认同感(q18) 价值观(q19) |
表2 实际选取的观测指标
对剩下来的变量重新进行因子分析,绘制因子载荷矩阵。
图8 绘制因子载荷矩阵
变量 | 因子 | ||
用户体验 | 象征价值 | 性价比 | |
q1 | 0.691 | ||
q2 | 0.701 | ||
q3 | 0.700 | ||
q4 | 0.734 | ||
q5 | 0.559 | ||
q7 | 0.504 | ||
q8 | 0.750 | ||
q14 | 0.677 | ||
q9 | 0.756 | ||
q10 | 0.565 | ||
q12 | 0.513 | ||
q17 | 0.537 | ||
q18 | 0.733 | ||
q19 | 0.721 | ||
特征值 | 4.167 | 2.235 | 1.324 |
累计贡献率 | 29.8% | 45.7% | 55.2% |
表3 因子载荷矩阵
根据主成分法估计的因子载荷矩阵,3个因子分别为用户体验因子、象征价值因子、性价比因子,因子的累计方差贡献率为 55.2%。其中,用户体验因子与总体质量(q1)、外观造型(q2)、通话质量(q3)、 功能齐全(q4)、安全耐用(q5)、维修方便(q7)、科技含量(q8)、功能体验(q14)指标成正相关,反映用户对于手机实用性能的体验感受;性价比因子与价格满意(q9)和物有所值(q10)成正相关,衡量该品牌手机的实际性能在同价位手机中的表现;象征价值因子与体现个性与形象(q12)、受青睐程度(q17)、身份认同感(q18)、价值观(q19)成正相关,主要反映手机品牌对人们精神层面的满足能力。
3.3 因子得分
分别对三种因子得分做箱型图判断其得分分布。
图9 不同手机品牌的用户体验因子得分
图9是4种品牌的手机在用户体验因子上的得分分布。由图可以看出,从平均值来看,苹果手机的用户体验得分最高,这反应出苹果手机相比其他品牌的体验感口碑稍微较好, 但也有极个别人的使用感很差,是图中的离群值。
图10 不同手机品牌的象征价值因子得分
图10是不同品牌的手机在象征价值因子上的得分分布。由图可以看出,在象征价值方面,各个手机的相对排名和用户体验方面的排名差不多。苹果手机在四款品牌中稍微较高,这反映出部分人认为苹果手机的象征价值最高,最能满足体现个人形象和身份认同感的需求。
图11 不同手机品牌的性价比因子得分
图11是不同品牌的手机在性价比因子上的得分分布。由图可以看出,华为、小米、三星的性价比在平均水平上得分接近;苹果手机的性价比在平均值上得分最低,也存在着很多很低的离群值。可能的原因是苹果手机的高价格价格拉低了人们对于性价比的评价。
根据各变量因子得分,绘制雷达图。
图12 各变量因子得分
图13 不同手机品牌三因子得分雷达图
图13是表现不同品牌手机的各个因子总体的平均得分的雷达图。由图可以看出,苹果手机在用户体验和象征价值上均表现突出,但是在性价比上满意度不高; 小米、三星、华为在三个因子上的得分情况类似,都是性价比较高,用户体验和象征价值表现一般。其中,华为的综合表现优于三星,小米手机表现最不理想。
四、回归分析
4.1描述性分析
本项目回归建模的变量是满意度因子和忠诚度因子,两因子的最小值都是1,代表满意度或忠诚度最低;最大值都是 7,代表满意度或忠诚度最高。
下面想通过回归分析的方法分析满意度和忠诚度分别与用户体验、象征价值、性价比之间的关系。
图14 满意度和忠诚度分布直方图
4.2 满意度与用户体验、象征价值、性价比的线性模型
通过使用lm()函数进行回归分析,输出回归系数,得:
满意度= 4.950+(0.802×用户体验)+(0.483×象征价值)+(0.302×性价比)
图15 满意度线性模型
使用anova()函数进行F检验,用于检验回归模型整体的显著性。
图16 对满意度线性回归模型进行F检验
根据F检验的结果,可以得出以下结论:
在模型中,用户体验因子的F值为557.27,p值小于2.2e-16;象征价值因子的F值为145.95,p值小于2.2e-16;性价比因子的F值为50.27,p值为5.844e-12。模型的剩余部分的平方和为206.512,均方为0.500。
模型中各个参数通过了显著性为 0.1%的检验,模型F 检验拒绝原假设,说明模型是显著的。
下面进行模型诊断,通过使par()函数控制布局,使用plot()函数,绘制了lm1模型的回归诊断图。which=c(1,2,3,4)表示绘制四个图,分别是标准化残差-拟合值图、QQ图、残差-回归预测图和残差-杠杆图。
图17 满意度模型诊断图
从残差图中可以看出,没有明显的异方差现象;QQ图表现基本良好;Cook 距离基本正常表明没有异常点。因此,适宜建立线性模型。
由模型参数大小可知,用户体验的参数最大,性价比参数最小。因此,对于满意度来说,影响最为显著的是用户体验。若商家想要提升手机使用的满意度,需要提升手机在用户体验方面的表现。
4.3 忠诚度与用户体验、象征价值以及性价比的线性模型
忠诚度=4.920+(0.822×用户体验)+(0.657×象征价值)+(0.244×性价比)
图18 忠诚度线性模型
使用anova()函数进行F检验,用于检验回归模型整体的显著性。
图19 对忠诚度线性回归模型进行F检验
根据F检验的结果,可以得出以下结论:
在模型中,用户体验因子的F值为476.791,p值小于2.2e-16;象征价值因子的F值为210.450,p值小于2.2e-16;性价比因子的F值为25.928,p值为5.396e-07;模型的剩余部分的平方和为261.438,均方为0.633。
模型中各个参数通过了显著性为 0.1%的检验,模型F检验拒绝原假设,说明模型是显著的。
下面进行模型诊断,通过使用par()函数控制布局,使用plot()函数,绘制了lm2模型的回归诊断图。which=c(1,2,3,4)表示绘制四个图,分别是标准化残差-拟合值图、QQ图、残差-回归预测图和残差-杠杆图。
图20 忠诚度模型诊断图
从残差图中可以看出,没有明显的异方差现象;QQ 图表现基本良好;Cook 距离基本正常表明没有异常点。因此,适宜建立线性模型。
由模型参数大小可知,用户体验和象征价值的参数都较大,性价比参数最小。因此,对于忠诚度来说,影响较大的是用户体验和象征价值。手机厂商若想提升顾客忠诚度,更好地留住用户,则需将重心放在用户体验和树立手机品牌形象上。
五、结论
通过以上对满意度、忠诚度与用户体验、象征价值以及性价比的分析,可以得出以下两点结论:
①苹果手机表现较好,小米手机略为逊色
在三个因子的表现上,综合来看,除了性价比较低这一缺点外,苹果手机较好的用户体验和象征价值使得苹果手机在忠诚度和满意度上均表现良好。而在三个因子上都较为落后的小米手机用户满意度和忠诚度最低,华为和三星平分秋色。
②用户体验对满意度和忠诚度影响最大,象征价值对忠诚度有较大影响
由满意度和忠诚度的回归模型结果可知,用户体验是对两个评价指标影响最大的,手机厂商应当着力在提升用户体验上加大投入。同时,象征价值虽然对满意度影响不大,但是对忠诚度有较大影响,厂商也应该制定长远的品牌战略,提升品牌形象。
六、代码附录
# 载入数据
dat<-read.csv("C:/Users/le'non/Desktop/mobilephone.csv")
fix(dat)
# 剔除缺失值
data<-dat[,-c(1,31:34)] # 数据只包含q1~q28和brand的信息
data<-na.omit(data)
# 检测是否有小数
sum(!round(data)==data)
# 查看异常点
summary(data)
boxplot(data$q8,data$q22,data$q28,data$q24)
i1<-which.max(data$q8)
i2<-which.max(data$q28)
i3<-which.max(data$q22)
i4<-which.max(data$q24)
data<-data[-c(i1,i2,i3,i4),]
# 载入需要用的包
install.packages("psych")
install.packages("corrplot")
library(car)
library(psych)
library(corrplot)
# 画相关系数图检验是否可以做因子分析
data1=data[,c(1:23)] #自变量数据
data2=data[,c(1,24:29)] # 因变量数据
cormatrix<-cor(data1[,-1]) # 因变量数据相关系数矩阵
corrplot(cormatrix,type="lower",method="circle")
#corrplot(cormatrix,type="lower",add=T,method="number")
## 因子分析
# 去掉q6,q11,q16,q15,q13,q20,q21,q22
fa3=fa(data1[,-c(1,7,12,17,16,14,21,22,23)],nfactors=3,rotate="varimax",fm="pa");fa3
fa3$loadings
write.csv(fa3$loadings,file="C:/Users/le'non/Desktop/loadings.csv")
head(fa3$scores)
# 将得分并入原先的数据框
data1[,c(24:26)]=round(fa3$scores,2)
names(data1)[24:26]=c("用户体验","象征价值","性价比")
# 修改brand对应到中文品牌
data1[,1]=as.character(data1[,1])
brandmap=c("2"='三星',"4"="苹果","6"="华为","7"="小米")
data1$brand=unname(brandmap[data1$brand])
data1$brand=as.factor(data1$brand)
# 箱线图
Boxplot(data1[,24]~data1$brand, id=list(method="y",cex=0.8),ylab="用户体验因子得分",xlab="",col="lightblue")
Boxplot(data1[,25]~data1$brand, id=list(method="y",cex=0.8),ylab="象征价值因子得分",xlab="",col="yellowgreen")
Boxplot(data1[,26]~data1$brand, id=list(method="y",cex=0.8),ylab="性价比因子得分",xlab="",col="lightpink")
# 构建回归数据集
datar=data.frame(experience=data1[,24],value=data1[,25],quality=data1[,26],satisfy=apply(data2[,2:4],1,mean),loyalty=apply(data2[,5:7],1,mean))
## 得分排名
#
score1=data1[order(data1$用户体验,decreasing=TRUE)[1:10],c(1,24)]
cbind(score1,datar[order(data1$用户体验,decreasing=TRUE)[1:10],])
write.csv(score1,file="C:/Users/le'non/Desktop/score1.csv")
#
score2=data1[order(data1$象征价值,decreasing=TRUE)[1:10],c(1,25)]
cbind(score2,datar[order(data1$象征价值,decreasing=TRUE)[1:10],])
write.csv(score2,file="C:/Users/le'non/Desktop/score2.csv")
#
score3=data1[order(data1$性价比,decreasing=TRUE)[1:10],c(1,26)]
cbind(score3,datar[order(data1$性价比,decreasing=TRUE)[1:10],])
write.csv(score3,file="C:/Users/le'non/Desktop/score3.csv")
# 雷达图
ladar1<-tapply(data1[,24],data1$brand,mean)
ladar2<-tapply(data1[,25],data1$brand,mean)
ladar3<-tapply(data1[,26],data1$brand,mean)
ladar<-data.frame("用户体验"=ladar1,"象征价值"=ladar2,"性价比"=ladar3)
write.csv(ladar,file="C:/Users/le'non/Desktop/ladar.csv")
# 回归
# 回归结果
lm1=lm(datar$satisfy~datar$experience+datar$value+datar$quality)
lm2=lm(datar$loyalty~datar$experience+datar$value+datar$quality)
lm1$coefficients;lm2$coefficients
par(mfrow=c(2,2));plot(lm1,which=c(1,2,3,4))
par(mfrow=c(2,2));plot(lm2,which=c(1,2,3,4))
hist(datar$satisfy,main="",ylab="频数",xlab="",col="salmon",border="white")
hist(datar$loyalty,main="",ylab="频数",xlab="",col="steelblue",border="white")