当前位置:   article > 正文

R语言主成分分析

r语言主成分分析

目录

一、导入数据

二、KMO与Bartlett检验

三、判定主成分个数

四、主成分分析

五、综合主成分得分计算 


原始数据是31*24的矩阵(省份/各指标)

一、导入数据

  1. library(xlsx)
  2. data <- read.xlsx("D://input.xlsx, sheetIndex = 1)
  3. std <- scale(data) # 标准化
  4. df <- as.data.frame(std)

二、KMO与Bartlett检验

  1. library(psych)
  2. c <- as.data.frame(cor(df)) # 相关系数矩阵
  3. KMO(c) # KMO
  4. bartlett.test(c) # 巴特利球形检验

bartlett.test是方差齐性检验不是球形度检验,球形度检验可用psych包的cortest.bartlett函数

-- 用户 qq_41785446

KMO抽样适当性用于研究变量之间的偏相关系数,值越接近1,越适合做因子分析,0.7以上适合,0.5以下不可用因子分析。

Bartlett's球形检验,研究相关矩阵中变量的相关性,是否独立,假设α=0.05,计算得出p<0.05即适合应用因子分析。

结果如下:

  1. Kaiser-Meyer-Olkin factor adequacy
  2. Call: KMO(r = c)
  3. Overall MSA = 0.73
  4. Bartlett test of homogeneity of variances
  5. data: as.data.frame(cor(data))
  6. Bartlett's K-squared = 38.511, df = 23, p-value = 0.02243

三、判定主成分个数

fa.parallel(df, fa = "pc", n.iter = 100, show.legend = F, main = "Scree plot with parallel analysis")

画出碎石图,第一个参数为待研究的数据集或相关系数矩阵,fa为主成分分析(fa= "pc")或者因子分析(fa = "fa"),n.iter指定随机数据模拟的平行分析的次数。

如图,结合实际情况,判断4个主成分可解释大部分数据信息。

四、主成分分析

df.pc <- principal(df, nfactors = 4, score = T, rotate = 'varimax')

第一个参数为原始数据或数据的相关系数矩阵,nfactors指定主成分个数,score表示是否计算主成分得分,rotate表示旋转方法,varimax为最大方差旋转。

运行结果:

  1. Principal Components Analysis
  2. Call: principal(r = data, nfactors = 4, rotate = "varimax", scores = T)
  3. Standardized loadings (pattern matrix) based upon correlation matrix
  4. RC1 RC2 RC3 RC4 h2 u2 com
  5. X1 0.81 0.32 -0.02 -0.29 0.84 0.160 1.6
  6. X2 -0.03 0.83 0.07 -0.05 0.70 0.296 1.0
  7. X3 0.01 0.96 -0.01 -0.06 0.92 0.082 1.0
  8. X4 -0.04 -0.49 0.63 -0.37 0.78 0.222 2.6
  9. X5 0.09 0.53 0.77 0.03 0.89 0.111 1.8
  10. X6 0.23 0.18 0.89 0.19 0.91 0.086 1.3
  11. X7 0.09 -0.04 0.92 0.11 0.86 0.138 1.1
  12. X8 0.79 -0.20 0.33 0.14 0.80 0.198 1.6
  13. X9 0.93 0.31 0.05 0.03 0.97 0.035 1.2
  14. X10 0.16 0.91 -0.05 0.05 0.86 0.136 1.1
  15. X1 0.92 -0.01 0.14 0.33 0.97 0.033 1.3
  16. X12 0.25 -0.02 0.09 0.87 0.82 0.179 1.2
  17. X13 0.31 0.04 0.26 0.33 0.27 0.729 2.9
  18. X14 0.97 0.05 0.09 0.06 0.95 0.047 1.0
  19. X15 0.97 -0.02 0.12 0.13 0.98 0.024 1.1
  20. X16 0.94 -0.06 0.10 0.16 0.91 0.087 1.1
  21. X17 0.96 0.09 0.05 0.05 0.94 0.055 1.0
  22. X18 0.96 0.06 0.10 0.14 0.96 0.040 1.1
  23. X19 0.95 0.01 0.14 0.14 0.95 0.051 1.1
  24. X20 0.89 0.33 -0.07 -0.03 0.90 0.099 1.3
  25. X21 0.92 -0.01 0.08 0.29 0.93 0.066 1.2
  26. X22 0.93 0.05 0.05 0.22 0.93 0.072 1.1
  27. X23 0.12 0.83 0.19 0.08 0.75 0.253 1.2
  28. X24 0.78 0.57 0.08 -0.11 0.94 0.057 1.9
  29. RC1 RC2 RC3 RC4
  30. SS loadings 11.89 4.39 2.96 1.50
  31. Proportion Var 0.50 0.18 0.12 0.06
  32. Cumulative Var 0.50 0.68 0.80 0.86
  33. Proportion Explained 0.57 0.21 0.14 0.07
  34. Cumulative Proportion 0.57 0.78 0.93 1.00
  35. Mean item complexity = 1.4
  36. Test of the hypothesis that 4 components are sufficient.
  37. The root mean square of the residuals (RMSR) is 0.03
  38. with the empirical chi square 16.63 with prob < 1
  39. Fit based upon off diagonal values = 1

RC列为旋转的成分载荷(component loadings),成分载荷是原始变量与主成分的相关系数。

h2列是成分公因子方差,是主成分对每个变量的方差解释度。u2列是成分唯一性,是主成分无法解释变量方差的比例,u2 = 1-h2。

SS loadings包含了与主成分相关联的特征值,其含义是与特定主成分相关联的标准化后的方差值。

Proportion  Var和Cumulative  Var分别为主成分对整个数据集的方差解释度和累积解释度。

df.pc$scores

scores为最终得出的主成分得分表,手工计算过程如下:

r <- round(unclass(df.pc$weights),4)

计算主成分得分的系数如下:

  1. RC1 RC2 RC3 RC4
  2. X1 0.1067 0.0405 -0.0260 -0.3003
  3. X2 -0.0298 0.1996 0.0180 -0.0166
  4. X3 -0.0267 0.2291 -0.0164 -0.0127
  5. X4 0.0282 -0.1393 0.2647 -0.3473
  6. X5 -0.0416 0.1152 0.2713 -0.0184
  7. X6 -0.0342 0.0269 0.3050 0.0739
  8. X7 -0.0351 -0.0239 0.3287 0.0174
  9. X8 0.0660 -0.0774 0.0872 -0.0006
  10. X9 0.0850 0.0415 -0.0218 -0.0700
  11. X10 -0.0182 0.2173 -0.0418 0.0525
  12. X11 0.0605 -0.0259 -0.0047 0.1536
  13. X12 -0.0655 0.0136 -0.0317 0.6542
  14. X13 -0.0128 0.0063 0.0606 0.2178
  15. X14 0.0931 -0.0223 -0.0085 -0.0546
  16. X15 0.0879 -0.0375 0.0005 -0.0079
  17. X16 0.0833 -0.0449 -0.0088 0.0197
  18. X17 0.0939 -0.0108 -0.0221 -0.0608
  19. X18 0.0831 -0.0161 -0.0088 0.0091
  20. X19 0.0823 -0.0279 0.0074 0.0051
  21. X20 0.0901 0.0491 -0.0626 -0.1039
  22. X21 0.0668 -0.0272 -0.0236 0.1271
  23. X22 0.0743 -0.0137 -0.0327 0.0769
  24. X23 -0.0325 0.1963 0.0473 0.0689
  25. X24 0.0726 0.1041 0.0005 -0.1588

主成分得分计算公式如下:

  1. Y1 = 0.1067 * X1 + (-0.0298) * X2 + ... + 0.0726 * X24
  2. Y2 = 0.0405 * X1 + 0.1996 * X2 + ... + 0.1041* X24
  3. Y3 = (-0.0260) * X1 + 0.0180 * X2 + ... + 0.0005 * X24
  4. Y4 = (-0.3003) * X1 + (-0.0166) * X2 + ... + (-0.1588) * X24

其中X1 - X24为原始数据标准化后各省份的24个指标,可用矩阵乘法:

score <- std%*%r  # 与df.pc$scores相等

结果主成分得分表如下:

  1. RC1 RC2 RC3 RC4
  2. [1,] 0.40729898 -0.173988020 0.3874556281 -0.05301080
  3. [2,] -1.11682799 3.104539282 0.2310040265 0.60184756
  4. [3,] -0.04509375 0.229832267 -1.1062683021 -0.39688093
  5. [4,] -0.71721994 -0.749769819 0.3995516215 1.13331645
  6. [5,] 2.91766096 0.734141346 -1.1791637869 -2.14197781
  7. [6,] 0.17749738 -0.690481842 -0.5628109196 0.53953253
  8. [7,] -0.03367267 -0.723251304 -1.0836460962 1.09011180
  9. [8,] -0.86022463 -0.291414007 -1.9600090694 -0.37513876
  10. [9,] 0.50495206 -0.424048981 1.6929722708 -0.68088505
  11. [10,] 1.45359875 -0.267438597 1.2868414727 1.09157465
  12. [11,] -0.59200310 -0.736893391 -0.5732582975 -0.30519019
  13. [12,] 0.13895423 0.029367429 0.2163135817 1.32646802
  14. [13,] 0.63922771 -0.586245802 -0.1177545454 1.47301905
  15. [14,] -0.62147239 -0.500275978 -0.2545086584 -0.68977632
  16. [15,] 1.34318980 0.981143787 0.0981679196 -0.11875221
  17. [16,] 0.02204232 -0.595260913 -0.0001144507 0.07397632
  18. [17,] -0.26121812 -0.466174073 0.8677822669 -1.20619899
  19. [18,] -0.52920640 -0.615121445 -0.0818874678 -1.11865934
  20. [19,] -1.13707465 -0.450476775 0.5863590254 -0.57419736
  21. [20,] -1.05941504 -0.712859015 -0.7051014525 -0.33757004
  22. [21,] 2.06363902 -0.002806274 0.8336204460 -0.29548958
  23. [22,] -0.36818901 -0.879116908 2.1644096748 -1.87451025
  24. [23,] -0.32916947 0.049866331 0.9159014132 0.72551819
  25. [24,] -0.88449846 3.122386723 -0.1570580513 -0.10809760
  26. [25,] 1.30733297 -0.209142083 -0.4173914171 1.30022098
  27. [26,] -1.11881175 0.989024251 1.2014332388 -1.11430325
  28. [27,] -0.92599215 -0.622679157 -1.9232374802 -1.32427272
  29. [28,] -0.78797400 -0.470430084 1.1359083954 1.14567797
  30. [29,] 0.13066474 -0.557327941 -1.3221012565 0.67248017
  31. [30,] 0.81304934 1.248037288 -0.6996913436 0.10561151
  32. [31,] -0.53104474 0.236863707 0.1262816138 1.43555602

五、综合主成分得分计算 

从Proportion  Var和Cumulative  Var可得出RC1方差解释率为0.50,RC2为0.18,RC3为0.12,RC4为0.06,累计方差解释率0.86。

各成分系数分别为R1 = 0.50/0.86、R2 = 0.18/0.86、R3 = 0.12/0.86、R4 = 0.06/0.86

综合主成分得分 = R1*X1 + R2*X2 + R3*X3 + R4*X4

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/94141
推荐阅读
相关标签
  

闽ICP备14008679号