各地区城镇居民人均全年消费的因子分析--基于R

本文使用R语言对2017年中国各地区城镇居民消费数据进行因子分析,揭示消费模式。通过主成分法,提取了文化娱乐提高因子(f1)、生活保障因子(f2)和富余因子(f3),并分析了各地在这些因子上的得分,发现上海、浙江等在文化教育和居住因子上表现突出,广东、福建则在居住和食品消费上较高。通过因子得分和信息重叠图,展示了各省消费特点的排序和分布。
摘要由CSDN通过智能技术生成

       (该题来自《多元统计分析-基于R》第七章课后习题最后一题)我国2017年各地区城镇居民人均全年消费数据如下表1所示(表中数据放在文末),这些指标分别从食品烟酒(x_{1}),衣着(x_{2}),居住(x_{3}),生活用品及服务(x_{4}),交通通信(x_{5}),教育文化娱乐(x_{6}),医疗保健和其他用品(x_{7})及服务(x_{8})八个方面来描述消费情况,试对这些数据进行因子分析。

 表1

     先读取数据,求消费数据指标间的相关系数矩阵,R程序如下

d6.7<-read.csv("ex6.7.csv",header=T) #将ex6.7.csv中的数据读到R中
data<-d6.7[,-1] #将数据第一列名称去掉
name<-d6.7[,1]  #将样本名称提取出来
da<-scale(data) #标准化数据矩阵
da
dat<-cor(da) #计算样本数据的相关系数矩阵
dat

      消费数据指标间的相关系数矩阵如表2所示

表2 

      由上面的相关系数矩阵可知,消费指标之间存在较强的线性相关关系,适合用因子分析模型进行分析。下面分别用主成分法,主因子法,极大似然估计法进行因子分析。

      R程序如下

#采用主成分法做因子分析
source("mvstats.R")
fac=factpc(da,3) #进行主成分分析,取三个因子
fac #显示因子分析结果
fac1=factpc(da,3,rotation="varimax") #用主成分法采用方差最大化作因子正交旋转
fac1
write.table(fac1, file = 'D:/学习资料/dat1.csv', sep = ',', quote = TRUE) #将因子旋转后的分析结果导出到Excel中以供做表

#采用主因子法做因子分析
f<-solve(dat) #求逆矩阵
psiini<-diag(1/f[row(f)==col(f)]) #对角阵
psi<-psiini   #特殊方差的初始估计
for (i in 1:100){
  ee<-eigen(dat-psi) 
  eigval<-ee$values[1:3]
  eigvec<-ee$vectors[,1:3]
  EE<-matrix(eigval,nrow(dat),ncol=3,byrow=T)
  QQ<-sqrt(EE)*eigvec
  psiold=psi
  psi=diag(as.vector(1-t(colSums(t(QQ*QQ)))))
  i=i+1
  z=psi-psiold
  convergence<-z[row(z)==col(z)]
}   #迭代求解
QQ   #迭代求解得到的因子载荷矩阵
pfm<-varimax(QQ)   #对因子载荷矩阵作最大方差正交旋转
load<-pfm$loadings   #正交旋转后的因子载荷矩阵
ld<-cbind(load[,1],load[,2],load[,3]) #取正交旋转后的因子载荷矩阵前三列数据
ld
K<-as.vector(colSums(ld*ld)) #将结果向量化  
K1<-K/nrow(dat)   #各因子解释的总方差的比例
K1 #显示因子解释比例
wr
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值