library(foreign)
data<-read.spss("../例5-2.sav")
data
## $地区
##  [1] "北 京               " "天 津               " "河 北               "
##  [4] "山 西               " "内蒙古              " "辽 宁               "
##  [7] "吉 林               " "黑龙江              " "上 海               "
## [10] "江 苏               " "浙 江               " "安 徽               "
## [13] "福 建               " "江 西               " "山 东               "
## [16] "河 南               " "湖 北               " "湖 南               "
## [19] "广 东               " "广 西               " "海 南               "
## [22] "重 庆               " "四 川               " "贵 州               "
## [25] "云 南               " "西 藏               " "陕 西               "
## [28] "甘 肃               " "青 海               " "宁 夏               "
## [31] "新 疆               "
## 
## $X1
##  [1]  17837.50  26654.45  46906.78  12757.28  19884.38  21035.90  23412.38
##  [8]  11103.56  31056.80 155820.09  66628.47  42329.72  43309.15  32928.80
## [15] 148872.26  79404.82  47295.43  39319.29 129840.69  23406.97   1765.10
## [22]  23497.42  42103.39  11550.45  10080.39    163.73  21788.47   6527.42
## [29]   2663.51   3899.68   8105.79
## 
## $X2
##  [1]  43093.68  25075.09  44562.88  33621.95  30900.83  36106.92  18969.47
##  [8]  14951.92  39838.24 114536.32  69468.91  33563.37  32081.30  21811.92
## [15] 105046.32  60454.73  37942.33  25518.07 105604.17  16023.46   2764.18
## [22]  20214.63  41514.58  14319.98  19474.18   1110.65  30828.91  12263.36
## [29]   6143.77   8521.18  19538.65
## 
## $X3
##  [1] 19798.13 15385.02 24449.56 25579.36 19445.75 23272.90  9932.67
##  [8]  8399.97 19588.27 59466.56 38304.18 19039.87 16779.94 10549.25
## [15] 56837.87 28805.88 20355.90 13343.81 59318.72  9825.40  1538.21
## [22] 12374.58 24234.79  9074.84 12431.16   550.52 17380.70  8076.14
## [29]  4203.12  5773.39 12525.08
## 
## $X4
##  [1] 23272.45 10095.20 19977.44  8041.22 11370.20 12286.17  9022.79
##  [8]  6542.24 20004.96 54939.31 30863.45 14403.25 15169.60 11192.47
## [15] 47850.60 31347.06 17502.70 12171.52 45694.31  6185.34  1225.97
## [22]  7709.01 17167.51  5238.94  7031.04   554.21 13368.89  4187.87
## [29]  1937.98  2745.60  7005.82
## 
## $X5
##  [1]  19746.96  25888.20  47318.60  14226.45  20056.67  22038.95  23431.37
##  [8]  11347.77  34315.15 156591.04  65453.88  42190.46  42537.24  35961.32
## [15] 150641.21  79657.15  45850.64  39134.64 129151.31  22231.30   1668.92
## [22]  23467.03  41529.25  11172.44  10149.03    171.82  21027.90   7850.29
## [29]   2244.47   3646.10   8300.96
## 
## $X6
##  [1]  1608.26  2046.69  2815.11   294.78  1344.41   575.39  1268.49
##  [8]   295.54  2913.91 10574.40  4469.42  2242.26  2889.26  2443.93
## [15]  8820.02  5240.61  2713.46  2028.59  8383.04  1393.35   101.87
## [22]  1648.36  2339.82   847.02   334.98    16.94  1589.00    72.68
## [29]    80.02   143.23   386.59
## 
## $X7
##  [1]  635.55   -6.52 -229.49   92.52   29.95   77.04   95.45    7.67
##  [9]  604.70  215.01  326.89   45.46   40.51   31.24  189.58   87.93
## [17]  185.24   16.73  463.62 -163.42   10.52   56.99  -56.51   18.63
## [25]   66.62    0.56   70.87  -46.23    1.95    5.53   32.02
## 
## $X8
##  [1]  104.45  146.98  367.32  190.72  120.71  228.05  143.47  117.40
##  [9]  215.34 1111.84  690.30  330.49  421.66  269.13  905.76  724.19
## [17]  343.86  336.31 1435.86  174.62   10.87  194.95  338.15  103.41
## [25]   90.18    2.00  175.01   59.71   20.13   31.12   71.57
## 
## attr(,"label.table")
## attr(,"label.table")$地区
## NULL
## 
## attr(,"label.table")$X1
## NULL
## 
## attr(,"label.table")$X2
## NULL
## 
## attr(,"label.table")$X3
## NULL
## 
## attr(,"label.table")$X4
## NULL
## 
## attr(,"label.table")$X5
## NULL
## 
## attr(,"label.table")$X6
## NULL
## 
## attr(,"label.table")$X7
## NULL
## 
## attr(,"label.table")$X8
## NULL
## 
## attr(,"codepage")
## [1] 936
df <-as.data.frame(data)
df <- df[,2:9]
df
##           X1        X2       X3       X4        X5       X6      X7
## 1   17837.50  43093.68 19798.13 23272.45  19746.96  1608.26  635.55
## 2   26654.45  25075.09 15385.02 10095.20  25888.20  2046.69   -6.52
## 3   46906.78  44562.88 24449.56 19977.44  47318.60  2815.11 -229.49
## 4   12757.28  33621.95 25579.36  8041.22  14226.45   294.78   92.52
## 5   19884.38  30900.83 19445.75 11370.20  20056.67  1344.41   29.95
## 6   21035.90  36106.92 23272.90 12286.17  22038.95   575.39   77.04
## 7   23412.38  18969.47  9932.67  9022.79  23431.37  1268.49   95.45
## 8   11103.56  14951.92  8399.97  6542.24  11347.77   295.54    7.67
## 9   31056.80  39838.24 19588.27 20004.96  34315.15  2913.91  604.70
## 10 155820.09 114536.32 59466.56 54939.31 156591.04 10574.40  215.01
## 11  66628.47  69468.91 38304.18 30863.45  65453.88  4469.42  326.89
## 12  42329.72  33563.37 19039.87 14403.25  42190.46  2242.26   45.46
## 13  43309.15  32081.30 16779.94 15169.60  42537.24  2889.26   40.51
## 14  32928.80  21811.92 10549.25 11192.47  35961.32  2443.93   31.24
## 15 148872.26 105046.32 56837.87 47850.60 150641.21  8820.02  189.58
## 16  79404.82  60454.73 28805.88 31347.06  79657.15  5240.61   87.93
## 17  47295.43  37942.33 20355.90 17502.70  45850.64  2713.46  185.24
## 18  39319.29  25518.07 13343.81 12171.52  39134.64  2028.59   16.73
## 19 129840.69 105604.17 59318.72 45694.31 129151.31  8383.04  463.62
## 20  23406.97  16023.46  9825.40  6185.34  22231.30  1393.35 -163.42
## 21   1765.10   2764.18  1538.21  1225.97   1668.92   101.87   10.52
## 22  23497.42  20214.63 12374.58  7709.01  23467.03  1648.36   56.99
## 23  42103.39  41514.58 24234.79 17167.51  41529.25  2339.82  -56.51
## 24  11550.45  14319.98  9074.84  5238.94  11172.44   847.02   18.63
## 25  10080.39  19474.18 12431.16  7031.04  10149.03   334.98   66.62
## 26    163.73   1110.65   550.52   554.21    171.82    16.94    0.56
## 27  21788.47  30828.91 17380.70 13368.89  21027.90  1589.00   70.87
## 28   6527.42  12263.36  8076.14  4187.87   7850.29    72.68  -46.23
## 29   2663.51   6143.77  4203.12  1937.98   2244.47    80.02    1.95
## 30   3899.68   8521.18  5773.39  2745.60   3646.10   143.23    5.53
## 31   8105.79  19538.65 12525.08  7005.82   8300.96   386.59   32.02
##         X8
## 1   104.45
## 2   146.98
## 3   367.32
## 4   190.72
## 5   120.71
## 6   228.05
## 7   143.47
## 8   117.40
## 9   215.34
## 10 1111.84
## 11  690.30
## 12  330.49
## 13  421.66
## 14  269.13
## 15  905.76
## 16  724.19
## 17  343.86
## 18  336.31
## 19 1435.86
## 20  174.62
## 21   10.87
## 22  194.95
## 23  338.15
## 24  103.41
## 25   90.18
## 26    2.00
## 27  175.01
## 28   59.71
## 29   20.13
## 30   31.12
## 31   71.57
df_zscale <-scale(df)
df_main <-princomp(df_zscale ,cor=TRUE) #主成分分析 
df_main
## Call:
## princomp(x = df_zscale, cor = TRUE)
## 
## Standard deviations:
##     Comp.1     Comp.2     Comp.3     Comp.4     Comp.5     Comp.6 
## 2.63788670 0.90991131 0.33007579 0.28087498 0.13397282 0.08685983 
##     Comp.7     Comp.8 
## 0.01648124 0.00306435 
## 
##  8  variables and  31 observations.
df_main$loadings
## 
## Loadings:
##    Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8
## X1  0.372  0.173  0.266  0.122  0.337  0.334  0.721       
## X2  0.375        -0.391  0.142 -0.154                0.812
## X3  0.368        -0.697         0.369 -0.239        -0.430
## X4  0.375                0.311 -0.734  0.259        -0.390
## X5  0.372  0.162  0.268  0.159  0.361  0.360 -0.690       
## X6  0.372         0.433  0.171        -0.795              
## X7  0.184 -0.958  0.153         0.142                     
## X8  0.365  0.110        -0.900 -0.187                     
## 
##                Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8
## SS loadings     1.000  1.000  1.000  1.000  1.000  1.000  1.000  1.000
## Proportion Var  0.125  0.125  0.125  0.125  0.125  0.125  0.125  0.125
## Cumulative Var  0.125  0.250  0.375  0.500  0.625  0.750  0.875  1.000
summary(df_main,loadings=TRUE)  #列出结果 包含特征向量
## Importance of components:
##                           Comp.1    Comp.2     Comp.3      Comp.4
## Standard deviation     2.6378867 0.9099113 0.33007579 0.280874978
## Proportion of Variance 0.8698058 0.1034923 0.01361875 0.009861344
## Cumulative Proportion  0.8698058 0.9732981 0.98691686 0.996778204
##                            Comp.5       Comp.6       Comp.7      Comp.8
## Standard deviation     0.13397282 0.0868598307 1.648124e-02 3.06435e-03
## Proportion of Variance 0.00224359 0.0009430788 3.395392e-05 1.17378e-06
## Cumulative Proportion  0.99902179 0.9999648723 9.999988e-01 1.00000e+00
## 
## Loadings:
##    Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8
## X1  0.372  0.173  0.266  0.122  0.337  0.334  0.721       
## X2  0.375        -0.391  0.142 -0.154                0.812
## X3  0.368        -0.697         0.369 -0.239        -0.430
## X4  0.375                0.311 -0.734  0.259        -0.390
## X5  0.372  0.162  0.268  0.159  0.361  0.360 -0.690       
## X6  0.372         0.433  0.171        -0.795              
## X7  0.184 -0.958  0.153         0.142                     
## X8  0.365  0.110        -0.900 -0.187
y <-eigen(cor(df_zscale)) #求出cor(df_zscale)的特征值和特征向量,
y#此时输出的结果为8个特征值(有8个变量),输出的特征向量的符号可能与SPSS相反
## eigen() decomposition
## $values
## [1] 6.958446e+00 8.279386e-01 1.089500e-01 7.889075e-02 1.794872e-02
## [6] 7.544630e-03 2.716313e-04 9.390238e-06
## 
## $vectors
##            [,1]         [,2]        [,3]         [,4]        [,5]
## [1,] -0.3720562  0.173238587 -0.26644687 -0.121954647 -0.33670150
## [2,] -0.3754571 -0.022033020  0.39105926 -0.141590822  0.15436478
## [3,] -0.3683520  0.008133002  0.69698001 -0.002128989 -0.36886785
## [4,] -0.3752225 -0.053518028  0.03694169 -0.310634667  0.73394072
## [5,] -0.3724194  0.161586146 -0.26806913 -0.159193765 -0.36061899
## [6,] -0.3722483  0.099774028 -0.43280548 -0.171038499  0.05441248
## [7,] -0.1843655 -0.958284741 -0.15279541  0.057656805 -0.14216316
## [8,] -0.3645208  0.110444690 -0.08003013  0.900366339  0.18669228
##             [,6]         [,7]          [,8]
## [1,]  0.33359454  0.720844475 -0.0377589677
## [2,]  0.01652239 -0.045977733 -0.8120072501
## [3,] -0.23896648  0.025991152  0.4296754584
## [4,]  0.25861473  0.023878219  0.3903391002
## [5,]  0.36041234 -0.689987328  0.0443208043
## [6,] -0.79471870 -0.012577588 -0.0143141245
## [7,]  0.02695625  0.009572865  0.0005908193
## [8,]  0.04747230 -0.026291329  0.0079559173
sum(y$values[1:5])/sum(y$values)   #求前5个主成分的累计方差贡献率,当然可以改为其他
## [1] 0.9990218
df_main$loadings[,1:5]#输出前5个主成分的载荷矩阵
##       Comp.1       Comp.2      Comp.3       Comp.4      Comp.5
## X1 0.3720562  0.173238587  0.26644687  0.121954647  0.33670150
## X2 0.3754571 -0.022033020 -0.39105926  0.141590822 -0.15436478
## X3 0.3683520  0.008133002 -0.69698001  0.002128989  0.36886785
## X4 0.3752225 -0.053518028 -0.03694169  0.310634667 -0.73394072
## X5 0.3724194  0.161586146  0.26806913  0.159193765  0.36061899
## X6 0.3722483  0.099774028  0.43280548  0.171038499 -0.05441248
## X7 0.1843655 -0.958284741  0.15279541 -0.057656805  0.14216316
## X8 0.3645208  0.110444690  0.08003013 -0.900366339 -0.18669228
screeplot(df_main,type='lines')  #画出碎石图

df_zscale_ma <- as.matrix(df_zscale)# 矩阵相乘要把数据转为num或者matrix
df_zscale_ma %*% y$vectors[,1]#标准化后的数据乘以第一主成分对应的特征向量作为系数的和,可以此来排分
##               [,1]
##  [1,] -0.198462060
##  [2,]  0.882723345
##  [3,] -0.368068530
##  [4,]  0.918749631
##  [5,]  0.881515459
##  [6,]  0.613953075
##  [7,]  1.187674022
##  [8,]  1.817990300
##  [9,] -0.589422674
## [10,] -7.396681186
## [11,] -2.791827955
## [12,] -0.002514571
## [13,] -0.146452299
## [14,]  0.636810974
## [15,] -6.405389570
## [16,] -2.618835557
## [17,] -0.471398138
## [18,]  0.406834802
## [19,] -6.821372443
## [20,]  1.518310752
## [21,]  2.599911682
## [22,]  1.076271798
## [23,] -0.220211413
## [24,]  1.770287816
## [25,]  1.635948802
## [26,]  2.723027317
## [27,]  0.718238592
## [28,]  2.145108570
## [29,]  2.460519993
## [30,]  2.321509828
## [31,]  1.715249637
#判断PCA中需要多少个主成分
#最常见的是基于特征值的方法,每个主成分都与相关系数矩阵的特征值相关联,常见的方法有Kaiser-Harris准则、Cattell碎石检验和平行分析。使用fa.parallel()函数,可以同时对三种特征值判别准则进行评价。
library(psych)
## Warning: package 'psych' was built under R version 3.6.1
library(foreign)
data<-read.spss("../例5-2.sav")
data
## $地区
##  [1] "北 京               " "天 津               " "河 北               "
##  [4] "山 西               " "内蒙古              " "辽 宁               "
##  [7] "吉 林               " "黑龙江              " "上 海               "
## [10] "江 苏               " "浙 江               " "安 徽               "
## [13] "福 建               " "江 西               " "山 东               "
## [16] "河 南               " "湖 北               " "湖 南               "
## [19] "广 东               " "广 西               " "海 南               "
## [22] "重 庆               " "四 川               " "贵 州               "
## [25] "云 南               " "西 藏               " "陕 西               "
## [28] "甘 肃               " "青 海               " "宁 夏               "
## [31] "新 疆               "
## 
## $X1
##  [1]  17837.50  26654.45  46906.78  12757.28  19884.38  21035.90  23412.38
##  [8]  11103.56  31056.80 155820.09  66628.47  42329.72  43309.15  32928.80
## [15] 148872.26  79404.82  47295.43  39319.29 129840.69  23406.97   1765.10
## [22]  23497.42  42103.39  11550.45  10080.39    163.73  21788.47   6527.42
## [29]   2663.51   3899.68   8105.79
## 
## $X2
##  [1]  43093.68  25075.09  44562.88  33621.95  30900.83  36106.92  18969.47
##  [8]  14951.92  39838.24 114536.32  69468.91  33563.37  32081.30  21811.92
## [15] 105046.32  60454.73  37942.33  25518.07 105604.17  16023.46   2764.18
## [22]  20214.63  41514.58  14319.98  19474.18   1110.65  30828.91  12263.36
## [29]   6143.77   8521.18  19538.65
## 
## $X3
##  [1] 19798.13 15385.02 24449.56 25579.36 19445.75 23272.90  9932.67
##  [8]  8399.97 19588.27 59466.56 38304.18 19039.87 16779.94 10549.25
## [15] 56837.87 28805.88 20355.90 13343.81 59318.72  9825.40  1538.21
## [22] 12374.58 24234.79  9074.84 12431.16   550.52 17380.70  8076.14
## [29]  4203.12  5773.39 12525.08
## 
## $X4
##  [1] 23272.45 10095.20 19977.44  8041.22 11370.20 12286.17  9022.79
##  [8]  6542.24 20004.96 54939.31 30863.45 14403.25 15169.60 11192.47
## [15] 47850.60 31347.06 17502.70 12171.52 45694.31  6185.34  1225.97
## [22]  7709.01 17167.51  5238.94  7031.04   554.21 13368.89  4187.87
## [29]  1937.98  2745.60  7005.82
## 
## $X5
##  [1]  19746.96  25888.20  47318.60  14226.45  20056.67  22038.95  23431.37
##  [8]  11347.77  34315.15 156591.04  65453.88  42190.46  42537.24  35961.32
## [15] 150641.21  79657.15  45850.64  39134.64 129151.31  22231.30   1668.92
## [22]  23467.03  41529.25  11172.44  10149.03    171.82  21027.90   7850.29
## [29]   2244.47   3646.10   8300.96
## 
## $X6
##  [1]  1608.26  2046.69  2815.11   294.78  1344.41   575.39  1268.49
##  [8]   295.54  2913.91 10574.40  4469.42  2242.26  2889.26  2443.93
## [15]  8820.02  5240.61  2713.46  2028.59  8383.04  1393.35   101.87
## [22]  1648.36  2339.82   847.02   334.98    16.94  1589.00    72.68
## [29]    80.02   143.23   386.59
## 
## $X7
##  [1]  635.55   -6.52 -229.49   92.52   29.95   77.04   95.45    7.67
##  [9]  604.70  215.01  326.89   45.46   40.51   31.24  189.58   87.93
## [17]  185.24   16.73  463.62 -163.42   10.52   56.99  -56.51   18.63
## [25]   66.62    0.56   70.87  -46.23    1.95    5.53   32.02
## 
## $X8
##  [1]  104.45  146.98  367.32  190.72  120.71  228.05  143.47  117.40
##  [9]  215.34 1111.84  690.30  330.49  421.66  269.13  905.76  724.19
## [17]  343.86  336.31 1435.86  174.62   10.87  194.95  338.15  103.41
## [25]   90.18    2.00  175.01   59.71   20.13   31.12   71.57
## 
## attr(,"label.table")
## attr(,"label.table")$地区
## NULL
## 
## attr(,"label.table")$X1
## NULL
## 
## attr(,"label.table")$X2
## NULL
## 
## attr(,"label.table")$X3
## NULL
## 
## attr(,"label.table")$X4
## NULL
## 
## attr(,"label.table")$X5
## NULL
## 
## attr(,"label.table")$X6
## NULL
## 
## attr(,"label.table")$X7
## NULL
## 
## attr(,"label.table")$X8
## NULL
## 
## attr(,"codepage")
## [1] 936
df <-as.data.frame(data)
df <- df[,2:9]
df
##           X1        X2       X3       X4        X5       X6      X7
## 1   17837.50  43093.68 19798.13 23272.45  19746.96  1608.26  635.55
## 2   26654.45  25075.09 15385.02 10095.20  25888.20  2046.69   -6.52
## 3   46906.78  44562.88 24449.56 19977.44  47318.60  2815.11 -229.49
## 4   12757.28  33621.95 25579.36  8041.22  14226.45   294.78   92.52
## 5   19884.38  30900.83 19445.75 11370.20  20056.67  1344.41   29.95
## 6   21035.90  36106.92 23272.90 12286.17  22038.95   575.39   77.04
## 7   23412.38  18969.47  9932.67  9022.79  23431.37  1268.49   95.45
## 8   11103.56  14951.92  8399.97  6542.24  11347.77   295.54    7.67
## 9   31056.80  39838.24 19588.27 20004.96  34315.15  2913.91  604.70
## 10 155820.09 114536.32 59466.56 54939.31 156591.04 10574.40  215.01
## 11  66628.47  69468.91 38304.18 30863.45  65453.88  4469.42  326.89
## 12  42329.72  33563.37 19039.87 14403.25  42190.46  2242.26   45.46
## 13  43309.15  32081.30 16779.94 15169.60  42537.24  2889.26   40.51
## 14  32928.80  21811.92 10549.25 11192.47  35961.32  2443.93   31.24
## 15 148872.26 105046.32 56837.87 47850.60 150641.21  8820.02  189.58
## 16  79404.82  60454.73 28805.88 31347.06  79657.15  5240.61   87.93
## 17  47295.43  37942.33 20355.90 17502.70  45850.64  2713.46  185.24
## 18  39319.29  25518.07 13343.81 12171.52  39134.64  2028.59   16.73
## 19 129840.69 105604.17 59318.72 45694.31 129151.31  8383.04  463.62
## 20  23406.97  16023.46  9825.40  6185.34  22231.30  1393.35 -163.42
## 21   1765.10   2764.18  1538.21  1225.97   1668.92   101.87   10.52
## 22  23497.42  20214.63 12374.58  7709.01  23467.03  1648.36   56.99
## 23  42103.39  41514.58 24234.79 17167.51  41529.25  2339.82  -56.51
## 24  11550.45  14319.98  9074.84  5238.94  11172.44   847.02   18.63
## 25  10080.39  19474.18 12431.16  7031.04  10149.03   334.98   66.62
## 26    163.73   1110.65   550.52   554.21    171.82    16.94    0.56
## 27  21788.47  30828.91 17380.70 13368.89  21027.90  1589.00   70.87
## 28   6527.42  12263.36  8076.14  4187.87   7850.29    72.68  -46.23
## 29   2663.51   6143.77  4203.12  1937.98   2244.47    80.02    1.95
## 30   3899.68   8521.18  5773.39  2745.60   3646.10   143.23    5.53
## 31   8105.79  19538.65 12525.08  7005.82   8300.96   386.59   32.02
##         X8
## 1   104.45
## 2   146.98
## 3   367.32
## 4   190.72
## 5   120.71
## 6   228.05
## 7   143.47
## 8   117.40
## 9   215.34
## 10 1111.84
## 11  690.30
## 12  330.49
## 13  421.66
## 14  269.13
## 15  905.76
## 16  724.19
## 17  343.86
## 18  336.31
## 19 1435.86
## 20  174.62
## 21   10.87
## 22  194.95
## 23  338.15
## 24  103.41
## 25   90.18
## 26    2.00
## 27  175.01
## 28   59.71
## 29   20.13
## 30   31.12
## 31   71.57
df_zscale <-scale(df)
fa.parallel(df, fa="pc", n.iter=100, show.legend=FALSE, main="Scree plot with parallel analysis")#展示了基于观测特征值的碎石检验(由线段和x符号组成)、根据100个随机数据矩阵推导出来的特征值均值(虚线),以及大于1的特征值准则(y=1的水平线)。三种准则都表明选择一个主成分即可保留数据集的大部分信息
## Warning in fa.stats(r = r, f = f, phi = phi, n.obs = n.obs, np.obs
## = np.obs, : The estimated weights for the factor scores are probably
## incorrect. Try a different factor extraction method.

## Parallel analysis suggests that the number of factors =  NA  and the number of components =  1
#principal(r, nfactors=, rotate=, scores=)#其中r是相关系数矩阵或原始数据矩阵,nfactors设定主成分数(默认为1),rotate指定旋转的方法(默认最大方差旋转varimax),scores设定是否需要计算主成分得分(默认不需要)。使用以下代码可以获得USJudgeRatings的第一主成分。
df_principal <- principal(df, nfactors=1)#PC1栏包含了成分载荷,指观测变量与主成分的相关系数,
                               #h2栏指成分公因子方差——主成分对每个变量的方差解释度;u2栏指成分唯一性——方差无法被主成分解释的比例(1-h2)。
df_principal
## Principal Components Analysis
## Call: principal(r = df, nfactors = 1)
## Standardized loadings (pattern matrix) based upon correlation matrix
##     PC1   h2    u2 com
## X1 0.98 0.96 0.037   1
## X2 0.99 0.98 0.019   1
## X3 0.97 0.94 0.056   1
## X4 0.99 0.98 0.020   1
## X5 0.98 0.97 0.035   1
## X6 0.98 0.96 0.036   1
## X7 0.49 0.24 0.763   1
## X8 0.96 0.92 0.075   1
## 
##                 PC1
## SS loadings    6.96
## Proportion Var 0.87
## 
## Mean item complexity =  1
## Test of the hypothesis that 1 component is sufficient.
## 
## The root mean square of the residuals (RMSR) is  0.04 
##  with the empirical chi square  3.34  with prob <  1 
## 
## Fit based upon off diagonal values = 1
# df_zscale_ma <- as.matrix(df_zscale)
# df_principal[,2]
# df_zscale_ma %*% df_principal $ PC1#想这么做来着,但是PC1这一列取不出来