https://doi.org/10.32614/CRAN.package.robustfa
Outliers virtually exist in any datasets of any application field. To avoid the impact of outliers, we need to use robust estimators. Classical estimators of multivariate mean and covariance matrix are the sample mean and the sample covariance matrix. Outliers will affect the sample mean and the sample covariance matrix, and thus they will affect the classical factor analysis which depends on the classical estimators (Pison, G., Rousseeuw, P.J., Filzmoser, P. and Croux, C. (2003) doi:10.1016/S0047-259X(02)00007-6). So it is necessary to use the robust estimators of the sample mean and the sample covariance matrix. There are several robust estimators in the literature: Minimum Covariance Determinant estimator, Orthogonalized Gnanadesikan-Kettenring, Minimum Volume Ellipsoid, M, S, and Stahel-Donoho.
The most direct way to make multivariate analysis more robust is to replace the sample mean and the sample covariance matrix of the classical estimators to robust estimators (Maronna, R.A., Martin, D. and Yohai, V. (2006) doi:10.1002/0470010940) (Todorov, V. and Filzmoser, P. (2009) doi:10.18637/jss.v032.i03), which is our choice of robust factor analysis. We created an object oriented solution for robust factor analysis based on new S4 classes.
Installation
You can install the released version of robustfa from CRAN with:
install.packages("robustfa")
You can install the development version of robustfa from github with:
devtools::install_github("fbertran/robustfa")
Example
Classic FA
data("hbk")
hbk.x = hbk[,1:3]
faClassicPcaReg uses the default method
faClassicPcaReg = FaClassic(x = hbk.x, factors = 2, method = "pca",
scoresMethod = "regression"); faClassicPcaReg
#> An object of class "FaClassic"
#> Slot "call":
#> FaClassic(x = hbk.x, factors = 2, method = "pca", scoresMethod = "regression")
#>
#> Slot "converged":
#> NULL
#>
#> Slot "loadings":
#> Factor1 Factor2
#> X1 3.411036 0.936662
#> X2 7.278529 3.860723
#> X3 11.270812 3.273734
#>
#> Slot "communality":
#> X1 X2 X3
#> 12.51250 67.88217 137.74853
#>
#> Slot "uniquenesses":
#> X1 X2 X3
#> 0.8292095832 0.0007959085 0.0863235416
#>
#> Slot "cor":
#> [1] FALSE
#>
#> Slot "covariance":
#> X1 X2 X3
#> X1 13.34171 28.46921 41.24398
#> X2 28.46921 67.88297 94.66562
#> X3 41.24398 94.66562 137.83486
#>
#> Slot "correlation":
#> X1 X2 X3
#> X1 1.0000000 0.9459958 0.9617790
#> X2 0.9459958 1.0000000 0.9786612
#> X3 0.9617790 0.9786612 1.0000000
#>
#> Slot "usedMatrix":
#> X1 X2 X3
#> X1 13.34171 28.46921 41.24398
#> X2 28.46921 67.88297 94.66562
#> X3 41.24398 94.66562 137.83486
#>
#> Slot "reducedCorrelation":
#> NULL
#>
#> Slot "criteria":
#> NULL
#>
#> Slot "factors":
#> [1] 2
#>
#> Slot "dof":
#> NULL
#>
#> Slot "method":
#> [1] "pca"
#>
#> Slot "scores":
#> Factor1 Factor2
#> [1,] 1.836216178 0.161337548
#> [2,] 1.756800683 0.549735006
#> [3,] 2.250318962 -0.462115084
#> [4,] 2.110379324 0.145591275
#> [5,] 2.095218367 0.066345803
#> [6,] 1.906582805 0.232737572
#> [7,] 1.788199906 0.587263155
#> [8,] 1.911901278 0.021274118
#> [9,] 2.106202931 -0.053757894
#> [10,] 2.122518267 -0.342046036
#> [11,] 2.348800415 0.342830312
#> [12,] 2.927387983 -1.009336488
#> [13,] 1.905818664 1.685956006
#> [14,] 0.528829255 6.359573459
#> [15,] -0.448347445 0.133780216
#> [16,] -0.668908585 0.366404244
#> [17,] -0.779858578 0.442576537
#> [18,] -0.320380311 -0.436151460
#> [19,] -0.697421067 0.621061863
#> [20,] -0.531502346 0.422359906
#> [21,] -0.418046839 -0.099159644
#> [22,] -0.718663795 0.742356037
#> [23,] -0.665393822 0.394816805
#> [24,] -0.761582949 0.580540198
#> [25,] -0.419693120 -0.657298051
#> [26,] -0.598455877 0.539385243
#> [27,] -0.247874654 -0.345083251
#> [28,] -0.219836054 -0.829109302
#> [29,] -0.484797036 -0.302159906
#> [30,] 0.006043560 -1.273196784
#> [31,] -0.414104099 -0.319367475
#> [32,] -0.862788836 0.802561432
#> [33,] -0.704564559 0.680970529
#> [34,] -0.404005807 -0.681812987
#> [35,] -0.226207238 -0.410125033
#> [36,] -0.370021556 -0.176933456
#> [37,] -0.581066520 0.435007090
#> [38,] -0.621218623 0.029086231
#> [39,] -0.210664210 -1.057488778
#> [40,] -0.638509599 0.278324368
#> [41,] -0.093737402 -0.869315133
#> [42,] -0.222301393 -0.760169894
#> [43,] -0.929819437 1.166157588
#> [44,] 0.040846868 -1.395395068
#> [45,] -0.345171409 -0.777979662
#> [46,] 0.005618871 -1.329449176
#> [47,] -0.241826492 -0.980332711
#> [48,] -0.094700744 -0.865086128
#> [49,] -0.436399538 0.009447513
#> [50,] -0.371498956 -0.025665034
#> [51,] -0.585765982 0.034545544
#> [52,] -0.234984713 -0.865075764
#> [53,] -0.017987529 -1.299228393
#> [54,] -0.924264023 1.069378350
#> [55,] -0.757104843 0.604723754
#> [56,] -0.808109523 0.898476392
#> [57,] -0.432379728 -0.457331137
#> [58,] -0.698147469 0.739975084
#> [59,] -0.269779011 -0.394725685
#> [60,] -0.198808958 -0.673656887
#> [61,] -0.557786430 0.493393901
#> [62,] -0.459937878 -0.555054318
#> [63,] -0.892563087 0.931740886
#> [64,] -0.361028449 0.001270686
#> [65,] -0.067714855 -1.141591364
#> [66,] -0.694666313 0.333677831
#> [67,] -0.570392680 0.141917212
#> [68,] -0.352127153 -0.776502820
#> [69,] -0.474012517 -0.407110790
#> [70,] -0.340986005 -0.230478698
#> [71,] -0.421675567 -0.010838417
#> [72,] -0.579475155 0.167004879
#> [73,] -0.425439569 -0.197214204
#> [74,] -0.631892463 0.322176109
#> [75,] -0.141285522 -1.068417769
#>
#> Slot "scoresMethod":
#> [1] "regression"
#>
#> Slot "scoringCoef":
#> X1 X2 X3
#> Factor1 0.06192447 -0.1643831 0.1761400
#> Factor2 -0.12400651 0.5687014 -0.3297295
#>
#> Slot "meanF":
#> Factor1 Factor2
#> 1.473636e-15 -2.560914e-15
#>
#> Slot "corF":
#> Factor1 Factor2
#> Factor1 1.000000e+00 5.144533e-15
#> Factor2 5.144533e-15 1.000000e+00
#>
#> Slot "STATISTIC":
#> NULL
#>
#> Slot "PVAL":
#> NULL
#>
#> Slot "n.obs":
#> [1] 75
#>
#> Slot "center":
#> X1 X2 X3
#> 3.206667 5.597333 7.230667
#>
#> Slot "eigenvalues":
#> [1] 216.162129 1.981077 0.916329
#>
#> Slot "cov.control":
#> NULL
summary(faClassicPcaReg)
#> An object of class "SummaryFa"
#> Slot "faobj":
#> An object of class "FaClassic"
#> Slot "call":
#> FaClassic(x = hbk.x, factors = 2, method = "pca", scoresMethod = "regression")
#>
#> Slot "converged":
#> NULL
#>
#> Slot "loadings":
#> Factor1 Factor2
#> X1 3.411036 0.936662
#> X2 7.278529 3.860723
#> X3 11.270812 3.273734
#>
#> Slot "communality":
#> X1 X2 X3
#> 12.51250 67.88217 137.74853
#>
#> Slot "uniquenesses":
#> X1 X2 X3
#> 0.8292095832 0.0007959085 0.0863235416
#>
#> Slot "cor":
#> [1] FALSE
#>
#> Slot "covariance":
#> X1 X2 X3
#> X1 13.34171 28.46921 41.24398
#> X2 28.46921 67.88297 94.66562
#> X3 41.24398 94.66562 137.83486
#>
#> Slot "correlation":
#> X1 X2 X3
#> X1 1.0000000 0.9459958 0.9617790
#> X2 0.9459958 1.0000000 0.9786612
#> X3 0.9617790 0.9786612 1.0000000
#>
#> Slot "usedMatrix":
#> X1 X2 X3
#> X1 13.34171 28.46921 41.24398
#> X2 28.46921 67.88297 94.66562
#> X3 41.24398 94.66562 137.83486
#>
#> Slot "reducedCorrelation":
#> NULL
#>
#> Slot "criteria":
#> NULL
#>
#> Slot "factors":
#> [1] 2
#>
#> Slot "dof":
#> NULL
#>
#> Slot "method":
#> [1] "pca"
#>
#> Slot "scores":
#> Factor1 Factor2
#> [1,] 1.836216178 0.161337548
#> [2,] 1.756800683 0.549735006
#> [3,] 2.250318962 -0.462115084
#> [4,] 2.110379324 0.145591275
#> [5,] 2.095218367 0.066345803
#> [6,] 1.906582805 0.232737572
#> [7,] 1.788199906 0.587263155
#> [8,] 1.911901278 0.021274118
#> [9,] 2.106202931 -0.053757894
#> [10,] 2.122518267 -0.342046036
#> [11,] 2.348800415 0.342830312
#> [12,] 2.927387983 -1.009336488
#> [13,] 1.905818664 1.685956006
#> [14,] 0.528829255 6.359573459
#> [15,] -0.448347445 0.133780216
#> [16,] -0.668908585 0.366404244
#> [17,] -0.779858578 0.442576537
#> [18,] -0.320380311 -0.436151460
#> [19,] -0.697421067 0.621061863
#> [20,] -0.531502346 0.422359906
#> [21,] -0.418046839 -0.099159644
#> [22,] -0.718663795 0.742356037
#> [23,] -0.665393822 0.394816805
#> [24,] -0.761582949 0.580540198
#> [25,] -0.419693120 -0.657298051
#> [26,] -0.598455877 0.539385243
#> [27,] -0.247874654 -0.345083251
#> [28,] -0.219836054 -0.829109302
#> [29,] -0.484797036 -0.302159906
#> [30,] 0.006043560 -1.273196784
#> [31,] -0.414104099 -0.319367475
#> [32,] -0.862788836 0.802561432
#> [33,] -0.704564559 0.680970529
#> [34,] -0.404005807 -0.681812987
#> [35,] -0.226207238 -0.410125033
#> [36,] -0.370021556 -0.176933456
#> [37,] -0.581066520 0.435007090
#> [38,] -0.621218623 0.029086231
#> [39,] -0.210664210 -1.057488778
#> [40,] -0.638509599 0.278324368
#> [41,] -0.093737402 -0.869315133
#> [42,] -0.222301393 -0.760169894
#> [43,] -0.929819437 1.166157588
#> [44,] 0.040846868 -1.395395068
#> [45,] -0.345171409 -0.777979662
#> [46,] 0.005618871 -1.329449176
#> [47,] -0.241826492 -0.980332711
#> [48,] -0.094700744 -0.865086128
#> [49,] -0.436399538 0.009447513
#> [50,] -0.371498956 -0.025665034
#> [51,] -0.585765982 0.034545544
#> [52,] -0.234984713 -0.865075764
#> [53,] -0.017987529 -1.299228393
#> [54,] -0.924264023 1.069378350
#> [55,] -0.757104843 0.604723754
#> [56,] -0.808109523 0.898476392
#> [57,] -0.432379728 -0.457331137
#> [58,] -0.698147469 0.739975084
#> [59,] -0.269779011 -0.394725685
#> [60,] -0.198808958 -0.673656887
#> [61,] -0.557786430 0.493393901
#> [62,] -0.459937878 -0.555054318
#> [63,] -0.892563087 0.931740886
#> [64,] -0.361028449 0.001270686
#> [65,] -0.067714855 -1.141591364
#> [66,] -0.694666313 0.333677831
#> [67,] -0.570392680 0.141917212
#> [68,] -0.352127153 -0.776502820
#> [69,] -0.474012517 -0.407110790
#> [70,] -0.340986005 -0.230478698
#> [71,] -0.421675567 -0.010838417
#> [72,] -0.579475155 0.167004879
#> [73,] -0.425439569 -0.197214204
#> [74,] -0.631892463 0.322176109
#> [75,] -0.141285522 -1.068417769
#>
#> Slot "scoresMethod":
#> [1] "regression"
#>
#> Slot "scoringCoef":
#> X1 X2 X3
#> Factor1 0.06192447 -0.1643831 0.1761400
#> Factor2 -0.12400651 0.5687014 -0.3297295
#>
#> Slot "meanF":
#> Factor1 Factor2
#> 1.473636e-15 -2.560914e-15
#>
#> Slot "corF":
#> Factor1 Factor2
#> Factor1 1.000000e+00 5.144533e-15
#> Factor2 5.144533e-15 1.000000e+00
#>
#> Slot "STATISTIC":
#> NULL
#>
#> Slot "PVAL":
#> NULL
#>
#> Slot "n.obs":
#> [1] 75
#>
#> Slot "center":
#> X1 X2 X3
#> 3.206667 5.597333 7.230667
#>
#> Slot "eigenvalues":
#> [1] 216.162129 1.981077 0.916329
#>
#> Slot "cov.control":
#> NULL
#>
#>
#> Slot "importance":
#> Factor1 Factor2
#> SS loadings 191.643 26.500
#> Proportion Var 0.875 0.121
#> Cumulative Var 0.875 0.996
faClassicForPcaReg uses the formula interface
faClassicForPcaReg = FaClassic(~., data=as.data.frame(hbk.x), factors = 2,
method = "pca", scoresMethod = "regression"); faClassicForPcaReg
#> An object of class "FaClassic"
#> Slot "call":
#> FaClassic(formula = ~., data = as.data.frame(hbk.x), factors = 2,
#> method = "pca", scoresMethod = "regression")
#>
#> Slot "converged":
#> NULL
#>
#> Slot "loadings":
#> Factor1 Factor2
#> X1 3.411036 0.936662
#> X2 7.278529 3.860723
#> X3 11.270812 3.273734
#>
#> Slot "communality":
#> X1 X2 X3
#> 12.51250 67.88217 137.74853
#>
#> Slot "uniquenesses":
#> X1 X2 X3
#> 0.8292095832 0.0007959085 0.0863235416
#>
#> Slot "cor":
#> [1] FALSE
#>
#> Slot "covariance":
#> X1 X2 X3
#> X1 13.34171 28.46921 41.24398
#> X2 28.46921 67.88297 94.66562
#> X3 41.24398 94.66562 137.83486
#>
#> Slot "correlation":
#> X1 X2 X3
#> X1 1.0000000 0.9459958 0.9617790
#> X2 0.9459958 1.0000000 0.9786612
#> X3 0.9617790 0.9786612 1.0000000
#>
#> Slot "usedMatrix":
#> X1 X2 X3
#> X1 13.34171 28.46921 41.24398
#> X2 28.46921 67.88297 94.66562
#> X3 41.24398 94.66562 137.83486
#>
#> Slot "reducedCorrelation":
#> NULL
#>
#> Slot "criteria":
#> NULL
#>
#> Slot "factors":
#> [1] 2
#>
#> Slot "dof":
#> NULL
#>
#> Slot "method":
#> [1] "pca"
#>
#> Slot "scores":
#> Factor1 Factor2
#> 1 1.836216178 0.161337548
#> 2 1.756800683 0.549735006
#> 3 2.250318962 -0.462115084
#> 4 2.110379324 0.145591275
#> 5 2.095218367 0.066345803
#> 6 1.906582805 0.232737572
#> 7 1.788199906 0.587263155
#> 8 1.911901278 0.021274118
#> 9 2.106202931 -0.053757894
#> 10 2.122518267 -0.342046036
#> 11 2.348800415 0.342830312
#> 12 2.927387983 -1.009336488
#> 13 1.905818664 1.685956006
#> 14 0.528829255 6.359573459
#> 15 -0.448347445 0.133780216
#> 16 -0.668908585 0.366404244
#> 17 -0.779858578 0.442576537
#> 18 -0.320380311 -0.436151460
#> 19 -0.697421067 0.621061863
#> 20 -0.531502346 0.422359906
#> 21 -0.418046839 -0.099159644
#> 22 -0.718663795 0.742356037
#> 23 -0.665393822 0.394816805
#> 24 -0.761582949 0.580540198
#> 25 -0.419693120 -0.657298051
#> 26 -0.598455877 0.539385243
#> 27 -0.247874654 -0.345083251
#> 28 -0.219836054 -0.829109302
#> 29 -0.484797036 -0.302159906
#> 30 0.006043560 -1.273196784
#> 31 -0.414104099 -0.319367475
#> 32 -0.862788836 0.802561432
#> 33 -0.704564559 0.680970529
#> 34 -0.404005807 -0.681812987
#> 35 -0.226207238 -0.410125033
#> 36 -0.370021556 -0.176933456
#> 37 -0.581066520 0.435007090
#> 38 -0.621218623 0.029086231
#> 39 -0.210664210 -1.057488778
#> 40 -0.638509599 0.278324368
#> 41 -0.093737402 -0.869315133
#> 42 -0.222301393 -0.760169894
#> 43 -0.929819437 1.166157588
#> 44 0.040846868 -1.395395068
#> 45 -0.345171409 -0.777979662
#> 46 0.005618871 -1.329449176
#> 47 -0.241826492 -0.980332711
#> 48 -0.094700744 -0.865086128
#> 49 -0.436399538 0.009447513
#> 50 -0.371498956 -0.025665034
#> 51 -0.585765982 0.034545544
#> 52 -0.234984713 -0.865075764
#> 53 -0.017987529 -1.299228393
#> 54 -0.924264023 1.069378350
#> 55 -0.757104843 0.604723754
#> 56 -0.808109523 0.898476392
#> 57 -0.432379728 -0.457331137
#> 58 -0.698147469 0.739975084
#> 59 -0.269779011 -0.394725685
#> 60 -0.198808958 -0.673656887
#> 61 -0.557786430 0.493393901
#> 62 -0.459937878 -0.555054318
#> 63 -0.892563087 0.931740886
#> 64 -0.361028449 0.001270686
#> 65 -0.067714855 -1.141591364
#> 66 -0.694666313 0.333677831
#> 67 -0.570392680 0.141917212
#> 68 -0.352127153 -0.776502820
#> 69 -0.474012517 -0.407110790
#> 70 -0.340986005 -0.230478698
#> 71 -0.421675567 -0.010838417
#> 72 -0.579475155 0.167004879
#> 73 -0.425439569 -0.197214204
#> 74 -0.631892463 0.322176109
#> 75 -0.141285522 -1.068417769
#>
#> Slot "scoresMethod":
#> [1] "regression"
#>
#> Slot "scoringCoef":
#> X1 X2 X3
#> Factor1 0.06192447 -0.1643831 0.1761400
#> Factor2 -0.12400651 0.5687014 -0.3297295
#>
#> Slot "meanF":
#> Factor1 Factor2
#> 1.473636e-15 -2.560914e-15
#>
#> Slot "corF":
#> Factor1 Factor2
#> Factor1 1.000000e+00 5.144533e-15
#> Factor2 5.144533e-15 1.000000e+00
#>
#> Slot "STATISTIC":
#> NULL
#>
#> Slot "PVAL":
#> NULL
#>
#> Slot "n.obs":
#> [1] 75
#>
#> Slot "center":
#> X1 X2 X3
#> 3.206667 5.597333 7.230667
#>
#> Slot "eigenvalues":
#> [1] 216.162129 1.981077 0.916329
#>
#> Slot "cov.control":
#> NULL
summary(faClassicForPcaReg)
#> An object of class "SummaryFa"
#> Slot "faobj":
#> An object of class "FaClassic"
#> Slot "call":
#> FaClassic(formula = ~., data = as.data.frame(hbk.x), factors = 2,
#> method = "pca", scoresMethod = "regression")
#>
#> Slot "converged":
#> NULL
#>
#> Slot "loadings":
#> Factor1 Factor2
#> X1 3.411036 0.936662
#> X2 7.278529 3.860723
#> X3 11.270812 3.273734
#>
#> Slot "communality":
#> X1 X2 X3
#> 12.51250 67.88217 137.74853
#>
#> Slot "uniquenesses":
#> X1 X2 X3
#> 0.8292095832 0.0007959085 0.0863235416
#>
#> Slot "cor":
#> [1] FALSE
#>
#> Slot "covariance":
#> X1 X2 X3
#> X1 13.34171 28.46921 41.24398
#> X2 28.46921 67.88297 94.66562
#> X3 41.24398 94.66562 137.83486
#>
#> Slot "correlation":
#> X1 X2 X3
#> X1 1.0000000 0.9459958 0.9617790
#> X2 0.9459958 1.0000000 0.9786612
#> X3 0.9617790 0.9786612 1.0000000
#>
#> Slot "usedMatrix":
#> X1 X2 X3
#> X1 13.34171 28.46921 41.24398
#> X2 28.46921 67.88297 94.66562
#> X3 41.24398 94.66562 137.83486
#>
#> Slot "reducedCorrelation":
#> NULL
#>
#> Slot "criteria":
#> NULL
#>
#> Slot "factors":
#> [1] 2
#>
#> Slot "dof":
#> NULL
#>
#> Slot "method":
#> [1] "pca"
#>
#> Slot "scores":
#> Factor1 Factor2
#> 1 1.836216178 0.161337548
#> 2 1.756800683 0.549735006
#> 3 2.250318962 -0.462115084
#> 4 2.110379324 0.145591275
#> 5 2.095218367 0.066345803
#> 6 1.906582805 0.232737572
#> 7 1.788199906 0.587263155
#> 8 1.911901278 0.021274118
#> 9 2.106202931 -0.053757894
#> 10 2.122518267 -0.342046036
#> 11 2.348800415 0.342830312
#> 12 2.927387983 -1.009336488
#> 13 1.905818664 1.685956006
#> 14 0.528829255 6.359573459
#> 15 -0.448347445 0.133780216
#> 16 -0.668908585 0.366404244
#> 17 -0.779858578 0.442576537
#> 18 -0.320380311 -0.436151460
#> 19 -0.697421067 0.621061863
#> 20 -0.531502346 0.422359906
#> 21 -0.418046839 -0.099159644
#> 22 -0.718663795 0.742356037
#> 23 -0.665393822 0.394816805
#> 24 -0.761582949 0.580540198
#> 25 -0.419693120 -0.657298051
#> 26 -0.598455877 0.539385243
#> 27 -0.247874654 -0.345083251
#> 28 -0.219836054 -0.829109302
#> 29 -0.484797036 -0.302159906
#> 30 0.006043560 -1.273196784
#> 31 -0.414104099 -0.319367475
#> 32 -0.862788836 0.802561432
#> 33 -0.704564559 0.680970529
#> 34 -0.404005807 -0.681812987
#> 35 -0.226207238 -0.410125033
#> 36 -0.370021556 -0.176933456
#> 37 -0.581066520 0.435007090
#> 38 -0.621218623 0.029086231
#> 39 -0.210664210 -1.057488778
#> 40 -0.638509599 0.278324368
#> 41 -0.093737402 -0.869315133
#> 42 -0.222301393 -0.760169894
#> 43 -0.929819437 1.166157588
#> 44 0.040846868 -1.395395068
#> 45 -0.345171409 -0.777979662
#> 46 0.005618871 -1.329449176
#> 47 -0.241826492 -0.980332711
#> 48 -0.094700744 -0.865086128
#> 49 -0.436399538 0.009447513
#> 50 -0.371498956 -0.025665034
#> 51 -0.585765982 0.034545544
#> 52 -0.234984713 -0.865075764
#> 53 -0.017987529 -1.299228393
#> 54 -0.924264023 1.069378350
#> 55 -0.757104843 0.604723754
#> 56 -0.808109523 0.898476392
#> 57 -0.432379728 -0.457331137
#> 58 -0.698147469 0.739975084
#> 59 -0.269779011 -0.394725685
#> 60 -0.198808958 -0.673656887
#> 61 -0.557786430 0.493393901
#> 62 -0.459937878 -0.555054318
#> 63 -0.892563087 0.931740886
#> 64 -0.361028449 0.001270686
#> 65 -0.067714855 -1.141591364
#> 66 -0.694666313 0.333677831
#> 67 -0.570392680 0.141917212
#> 68 -0.352127153 -0.776502820
#> 69 -0.474012517 -0.407110790
#> 70 -0.340986005 -0.230478698
#> 71 -0.421675567 -0.010838417
#> 72 -0.579475155 0.167004879
#> 73 -0.425439569 -0.197214204
#> 74 -0.631892463 0.322176109
#> 75 -0.141285522 -1.068417769
#>
#> Slot "scoresMethod":
#> [1] "regression"
#>
#> Slot "scoringCoef":
#> X1 X2 X3
#> Factor1 0.06192447 -0.1643831 0.1761400
#> Factor2 -0.12400651 0.5687014 -0.3297295
#>
#> Slot "meanF":
#> Factor1 Factor2
#> 1.473636e-15 -2.560914e-15
#>
#> Slot "corF":
#> Factor1 Factor2
#> Factor1 1.000000e+00 5.144533e-15
#> Factor2 5.144533e-15 1.000000e+00
#>
#> Slot "STATISTIC":
#> NULL
#>
#> Slot "PVAL":
#> NULL
#>
#> Slot "n.obs":
#> [1] 75
#>
#> Slot "center":
#> X1 X2 X3
#> 3.206667 5.597333 7.230667
#>
#> Slot "eigenvalues":
#> [1] 216.162129 1.981077 0.916329
#>
#> Slot "cov.control":
#> NULL
#>
#>
#> Slot "importance":
#> Factor1 Factor2
#> SS loadings 191.643 26.500
#> Proportion Var 0.875 0.121
#> Cumulative Var 0.875 0.996
faClassicForPcaReg = faClassicPcaReg
Robust FA
data("hbk")
hbk.x = hbk[,1:3]
faCovPcaRegMcd is obtained from FaCov.default
faCovPcaRegMcd = FaCov(x = hbk.x, factors = 2, method = "pca",
scoresMethod = "regression", cov.control = rrcov::CovControlMcd())
faCovPcaRegMcd
#> An object of class "FaCov"
#> Slot "call":
#> FaCov(x = hbk.x, factors = 2, cov.control = rrcov::CovControlMcd(),
#> method = "pca", scoresMethod = "regression")
#>
#> Slot "converged":
#> NULL
#>
#> Slot "loadings":
#> Factor1 Factor2
#> X1 -0.00357579 1.0407697
#> X2 1.01735884 -0.1074368
#> X3 0.55673070 0.4225046
#>
#> Slot "communality":
#> X1 X2 X3
#> 1.0832144 1.0465617 0.4884592
#>
#> Slot "uniquenesses":
#> X1 X2 X3
#> 0.1436750 0.2022401 0.6713488
#>
#> Slot "cor":
#> [1] FALSE
#>
#> Slot "covariance":
#> X1 X2 X3
#> X1 1.22688941 0.05500588 0.1271656
#> X2 0.05500588 1.24880175 0.1525276
#> X3 0.12716557 0.15252762 1.1598081
#>
#> Slot "correlation":
#> X1 X2 X3
#> X1 1.00000000 0.04443853 0.1066041
#> X2 0.04443853 1.00000000 0.1267385
#> X3 0.10660407 0.12673854 1.0000000
#>
#> Slot "usedMatrix":
#> X1 X2 X3
#> X1 1.22688941 0.05500588 0.1271656
#> X2 0.05500588 1.24880175 0.1525276
#> X3 0.12716557 0.15252762 1.1598081
#>
#> Slot "reducedCorrelation":
#> NULL
#>
#> Slot "criteria":
#> NULL
#>
#> Slot "factors":
#> [1] 2
#>
#> Slot "dof":
#> NULL
#>
#> Slot "method":
#> [1] "pca"
#>
#> Slot "scores":
#> Factor1 Factor2
#> [1,] 23.37446110 12.08300643
#> [2,] 24.34703619 11.62237670
#> [3,] 24.83571062 13.27852593
#> [4,] 26.17084132 12.61905004
#> [5,] 25.59918577 12.83553071
#> [6,] 24.28522312 12.79892797
#> [7,] 24.65518678 12.44282588
#> [8,] 23.58356104 12.06537192
#> [9,] 25.29871081 12.37449155
#> [10,] 24.28794072 11.99663283
#> [11,] 29.29010377 14.10292664
#> [12,] 29.21602329 15.67548601
#> [13,] 30.36694090 14.31639870
#> [14,] 36.61093166 12.22469826
#> [15,] 0.87846757 1.48055428
#> [16,] -0.33469848 0.81353359
#> [17,] -0.59533115 -1.67797608
#> [18,] -0.07692585 0.74960673
#> [19,] 0.88664992 -0.81140980
#> [20,] 1.32586314 1.18338691
#> [21,] 0.32355720 0.87258307
#> [22,] 1.26507774 -1.10045701
#> [23,] 0.02132206 0.03769255
#> [24,] -0.04050523 -0.62810919
#> [25,] -1.82877805 -0.54081595
#> [26,] 1.53565293 -0.52706006
#> [27,] 0.88763579 1.69714971
#> [28,] -0.65476444 0.46386279
#> [29,] -0.99571552 -0.40049510
#> [30,] -0.14326046 0.39732743
#> [31,] -0.68032580 1.14648951
#> [32,] 0.02122339 -1.36276478
#> [33,] 0.94777315 -0.29514861
#> [34,] -1.66606969 -0.94732785
#> [35,] 0.86479203 1.57748129
#> [36,] 0.74968605 -0.12896299
#> [37,] 1.40520991 -1.10997137
#> [38,] -1.02005187 -0.37734893
#> [39,] -1.60441131 0.60226525
#> [40,] 0.06134748 -1.03421632
#> [41,] 0.18615684 1.92215530
#> [42,] -0.11319178 -0.59882173
#> [43,] 0.97827831 -1.65842318
#> [44,] -0.42141261 0.86497778
#> [45,] -1.74410700 0.24465420
#> [46,] -0.49884452 0.80604306
#> [47,] -1.75203599 1.21093123
#> [48,] 0.24815304 1.70416567
#> [49,] 0.51599641 1.23750475
#> [50,] 1.21199639 0.65981510
#> [51,] -0.77346099 0.29396447
#> [52,] -1.23505304 1.49707994
#> [53,] -0.34337530 -0.32700427
#> [54,] 0.43714215 -0.96286408
#> [55,] 0.25351912 -1.18596060
#> [56,] 0.76927705 -0.24033134
#> [57,] -1.23515172 0.09662262
#> [58,] 1.10917203 0.39971572
#> [59,] 0.74995363 0.38770297
#> [60,] 0.50450331 -0.50119529
#> [61,] 1.84511298 -0.80798712
#> [62,] -1.78265404 -0.66860453
#> [63,] 0.16718657 -0.94482480
#> [64,] 1.31183557 1.20554365
#> [65,] -0.47635280 0.85094120
#> [66,] -0.22439584 -1.36787167
#> [67,] -0.02401342 -0.12687401
#> [68,] -1.48792563 -1.07691539
#> [69,] -1.48261557 0.15956004
#> [70,] 0.83487804 -0.15251392
#> [71,] 0.74070096 0.61300322
#> [72,] 0.16973526 -0.86332857
#> [73,] 0.23278757 -0.85700738
#> [74,] 0.40917146 -1.36044628
#> [75,] -0.61438698 -0.53327581
#>
#> Slot "scoresMethod":
#> [1] "regression"
#>
#> Slot "scoringCoef":
#> X1 X2 X3
#> Factor1 -0.07760082 0.7707987 0.3871595
#> Factor2 0.82485664 -0.1583555 0.2946736
#>
#> Slot "meanF":
#> Factor1 Factor2
#> 4.958958 2.405817
#>
#> Slot "corF":
#> Factor1 Factor2
#> Factor1 1.0000000 0.9730208
#> Factor2 0.9730208 1.0000000
#>
#> Slot "STATISTIC":
#> NULL
#>
#> Slot "PVAL":
#> NULL
#>
#> Slot "n.obs":
#> [1] 75
#>
#> Slot "center":
#> X1 X2 X3
#> 1.537705 1.780328 1.686885
#>
#> Slot "eigenvalues":
#> [1] 1.436470 1.181766 1.017264
#>
#> Slot "cov.control":
#> An object of class "CovControlMcd"
#> Slot "alpha":
#> [1] 0.5
#>
#> Slot "nsamp":
#> [1] 500
#>
#> Slot "scalefn":
#> NULL
#>
#> Slot "maxcsteps":
#> [1] 200
#>
#> Slot "seed":
#> NULL
#>
#> Slot "use.correction":
#> [1] TRUE
#>
#> Slot "trace":
#> [1] FALSE
#>
#> Slot "tolSolve":
#> [1] 1e-14
In fact, it is equivalent to use FaCov.formula
faCovForPcaRegMcd = FaCov(~., data = as.data.frame(hbk.x),
factors = 2, method = "pca", scoresMethod = "regression",
cov.control = rrcov::CovControlMcd()); faCovForPcaRegMcd
#> An object of class "FaCov"
#> Slot "call":
#> FaCov(formula = ~., data = as.data.frame(hbk.x), factors = 2,
#> method = "pca", scoresMethod = "regression", cov.control = rrcov::CovControlMcd())
#>
#> Slot "converged":
#> NULL
#>
#> Slot "loadings":
#> Factor1 Factor2
#> X1 -0.00357579 1.0407697
#> X2 1.01735884 -0.1074368
#> X3 0.55673070 0.4225046
#>
#> Slot "communality":
#> X1 X2 X3
#> 1.0832144 1.0465617 0.4884592
#>
#> Slot "uniquenesses":
#> X1 X2 X3
#> 0.1436750 0.2022401 0.6713488
#>
#> Slot "cor":
#> [1] FALSE
#>
#> Slot "covariance":
#> X1 X2 X3
#> X1 1.22688941 0.05500588 0.1271656
#> X2 0.05500588 1.24880175 0.1525276
#> X3 0.12716557 0.15252762 1.1598081
#>
#> Slot "correlation":
#> X1 X2 X3
#> X1 1.00000000 0.04443853 0.1066041
#> X2 0.04443853 1.00000000 0.1267385
#> X3 0.10660407 0.12673854 1.0000000
#>
#> Slot "usedMatrix":
#> X1 X2 X3
#> X1 1.22688941 0.05500588 0.1271656
#> X2 0.05500588 1.24880175 0.1525276
#> X3 0.12716557 0.15252762 1.1598081
#>
#> Slot "reducedCorrelation":
#> NULL
#>
#> Slot "criteria":
#> NULL
#>
#> Slot "factors":
#> [1] 2
#>
#> Slot "dof":
#> NULL
#>
#> Slot "method":
#> [1] "pca"
#>
#> Slot "scores":
#> Factor1 Factor2
#> 1 23.37446110 12.08300643
#> 2 24.34703619 11.62237670
#> 3 24.83571062 13.27852593
#> 4 26.17084132 12.61905004
#> 5 25.59918577 12.83553071
#> 6 24.28522312 12.79892797
#> 7 24.65518678 12.44282588
#> 8 23.58356104 12.06537192
#> 9 25.29871081 12.37449155
#> 10 24.28794072 11.99663283
#> 11 29.29010377 14.10292664
#> 12 29.21602329 15.67548601
#> 13 30.36694090 14.31639870
#> 14 36.61093166 12.22469826
#> 15 0.87846757 1.48055428
#> 16 -0.33469848 0.81353359
#> 17 -0.59533115 -1.67797608
#> 18 -0.07692585 0.74960673
#> 19 0.88664992 -0.81140980
#> 20 1.32586314 1.18338691
#> 21 0.32355720 0.87258307
#> 22 1.26507774 -1.10045701
#> 23 0.02132206 0.03769255
#> 24 -0.04050523 -0.62810919
#> 25 -1.82877805 -0.54081595
#> 26 1.53565293 -0.52706006
#> 27 0.88763579 1.69714971
#> 28 -0.65476444 0.46386279
#> 29 -0.99571552 -0.40049510
#> 30 -0.14326046 0.39732743
#> 31 -0.68032580 1.14648951
#> 32 0.02122339 -1.36276478
#> 33 0.94777315 -0.29514861
#> 34 -1.66606969 -0.94732785
#> 35 0.86479203 1.57748129
#> 36 0.74968605 -0.12896299
#> 37 1.40520991 -1.10997137
#> 38 -1.02005187 -0.37734893
#> 39 -1.60441131 0.60226525
#> 40 0.06134748 -1.03421632
#> 41 0.18615684 1.92215530
#> 42 -0.11319178 -0.59882173
#> 43 0.97827831 -1.65842318
#> 44 -0.42141261 0.86497778
#> 45 -1.74410700 0.24465420
#> 46 -0.49884452 0.80604306
#> 47 -1.75203599 1.21093123
#> 48 0.24815304 1.70416567
#> 49 0.51599641 1.23750475
#> 50 1.21199639 0.65981510
#> 51 -0.77346099 0.29396447
#> 52 -1.23505304 1.49707994
#> 53 -0.34337530 -0.32700427
#> 54 0.43714215 -0.96286408
#> 55 0.25351912 -1.18596060
#> 56 0.76927705 -0.24033134
#> 57 -1.23515172 0.09662262
#> 58 1.10917203 0.39971572
#> 59 0.74995363 0.38770297
#> 60 0.50450331 -0.50119529
#> 61 1.84511298 -0.80798712
#> 62 -1.78265404 -0.66860453
#> 63 0.16718657 -0.94482480
#> 64 1.31183557 1.20554365
#> 65 -0.47635280 0.85094120
#> 66 -0.22439584 -1.36787167
#> 67 -0.02401342 -0.12687401
#> 68 -1.48792563 -1.07691539
#> 69 -1.48261557 0.15956004
#> 70 0.83487804 -0.15251392
#> 71 0.74070096 0.61300322
#> 72 0.16973526 -0.86332857
#> 73 0.23278757 -0.85700738
#> 74 0.40917146 -1.36044628
#> 75 -0.61438698 -0.53327581
#>
#> Slot "scoresMethod":
#> [1] "regression"
#>
#> Slot "scoringCoef":
#> X1 X2 X3
#> Factor1 -0.07760082 0.7707987 0.3871595
#> Factor2 0.82485664 -0.1583555 0.2946736
#>
#> Slot "meanF":
#> Factor1 Factor2
#> 4.958958 2.405817
#>
#> Slot "corF":
#> Factor1 Factor2
#> Factor1 1.0000000 0.9730208
#> Factor2 0.9730208 1.0000000
#>
#> Slot "STATISTIC":
#> NULL
#>
#> Slot "PVAL":
#> NULL
#>
#> Slot "n.obs":
#> [1] 75
#>
#> Slot "center":
#> X1 X2 X3
#> 1.537705 1.780328 1.686885
#>
#> Slot "eigenvalues":
#> [1] 1.436470 1.181766 1.017264
#>
#> Slot "cov.control":
#> An object of class "CovControlMcd"
#> Slot "alpha":
#> [1] 0.5
#>
#> Slot "nsamp":
#> [1] 500
#>
#> Slot "scalefn":
#> NULL
#>
#> Slot "maxcsteps":
#> [1] 200
#>
#> Slot "seed":
#> NULL
#>
#> Slot "use.correction":
#> [1] TRUE
#>
#> Slot "trace":
#> [1] FALSE
#>
#> Slot "tolSolve":
#> [1] 1e-14
faCovForPcaRegMcd = faCovPcaRegMcd