Skip to contents

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