當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R factanal 因子分析


R語言 factanal 位於 stats 包(package)。

說明

對協方差矩陣或數據矩陣執行 maximum-likelihood 因子分析。

用法

factanal(x, factors, data = NULL, covmat = NULL, n.obs = NA,
         subset, na.action, start = NULL,
         scores = c("none", "regression", "Bartlett"),
         rotation = "varimax", control = NULL, ...)

參數

x

公式或數值矩陣或可強製轉換為數值矩陣的對象。

factors

要擬合的因子的數量。

data

可選 DataFrame (或類似數據:請參閱 model.frame ),僅當 x 是公式時使用。默認情況下,變量取自environment(formula)

covmat

協方差矩陣或由 cov.wt 返回的協方差列表。當然,相關矩陣就是協方差矩陣。

n.obs

如果 covmat 是協方差矩陣,則使用觀察值的數量。

subset

如果 x 用作矩陣或公式,則要使用的情況的規範。

na.action

如果 x 用作公式,則使用 na.action

start

NULL 或起始值矩陣,每列給出一組初始唯一性。

scores

要生成的分數類型(如果有)。默認值為無,"regression" 給出 Thompson 的分數,"Bartlett" 給出 Bartlett 的加權最小二乘分數。部分匹配允許縮寫這些名稱。

rotation

特點。 "none" 或用於旋轉因子的函數名稱:它將使用載荷矩陣的第一個參數進行調用,並且應返回一個列表,其中組件 loadings 給出旋轉載荷,或僅旋轉載荷。

control

控製值列表,

開始

start = NULL 時要嘗試的起始值的數量。默認 1。

痕跡

合乎邏輯的。輸出跟蹤信息?默認FALSE

降低

優化期間唯一性的下限。應 > 0。默認值 0.005。

選擇

要傳遞給 optimcontrol 參數的控製值列表。

旋轉

旋轉函數的附加參數列表。

...

control 的組件也可以作為命名參數提供給 factanal

細節

因子分析模型為

對於 元素向量 、負載的 矩陣 、分數的 元素向量 和錯誤的 元素向量 。除了 之外,沒有觀察到任何其他組件,但主要限製是分數不相關且具有單位方差,並且誤差與方差 獨立,即唯一性。將觀察到的變量縮放到單位方差也是很常見的,並在此函數中完成。

因此因子分析本質上是 相關矩陣的模型,

模型中仍然存在一些不確定性,因為如果對於任何正交矩陣 替換為 ,模型不會發生變化。此類矩陣 稱為旋轉(盡管該術語也適用於非正交可逆矩陣)。

如果提供covmat,則使用它。否則,如果它是矩陣,則使用x,或者將公式xdata一起使用來構造模型矩陣,並用於構造協方差矩陣。 (公式有響應是沒有意義的,並且所有變量都必須是數字。)一旦找到或從 x 計算出協方差矩陣,它就會轉換為相關矩陣進行分析。相關矩陣作為結果的分量 correlation 返回。

擬合是通過優化對數似然來完成的,假設多元正態性超過唯一性。 (給定唯一性的最大化載荷可以通過分析找到:Lawley & Maxwell (1971, p. 27)。)依次嘗試 start 中提供的所有起始值,並使用獲得的最佳擬合。如果 start = NULL 則第一次擬合從 Jöreskog (1963) 建議的值和 Lawley & Maxwell (1971, p. 31) 給出的值開始,然後嘗試 control$nstart - 1 其他值,隨機選擇為與獨特性。

從技術上講,唯一性被限製在 中,但接近零的值是有問題的,並且優化是使用 control$lower 的下限(默認 0.005)完成的(Lawley & Maxwell,1971,第 32 頁)。

僅當提供並使用數據矩陣時才能產生分數。第一種方法是 Thomson (1951) 的回歸方法,第二種方法是 Bartlett (1937, 8) 的加權最小二乘法。兩者都是對未觀察到的分數 的估計。湯姆森的方法(在總體中)對 上的未知 進行回歸,得出

然後代入右側數量的樣本估計。在給定(擬合的) 的情況下,Bartlett 的方法可最小化選擇 的標準化誤差平方和。

如果 x 是公式,則標準 NA 處理將應用於分數(如果需要):請參閱 napredict

print 方法(記錄在 loadings 下)遵循引起注意結果模式的因子分析約定,因此默認精度為小數點後三位,並且抑製小載荷。

帶有組件的 "factanal" 類的對象

loadings

載荷矩陣,每個因子一列。這些因子按載荷平方和的降序排列,並給出使載荷總和為正的符號。這是"loadings" 類:請參閱loadings 了解其print 方法。

uniquenesses

計算出的唯一性。

correlation

使用的相關矩陣。

criteria

優化結果:標準值(負對數似然的線性函數)和所使用迭代的信息。

factors

參數 factors

dof

因子分析模型的自由度數。

method

方法:始終"mle"

rotmat

旋轉矩陣(如果相關)。

scores

如果需要,可以提供分數矩陣。 napredict 用於處理 na.action 省略的值。

n.obs

觀察數(如果可用)或 NA

call

匹配的調用。

na.action

如果相關。

STATISTIC, PVAL

significance-test 統計量和 P 值(如果可以計算)。

注意

因子分析有如此多的變化,因此很難比較不同程序的輸出。此外,最大似然因子分析中的優化很困難,並且我們比較的許多其他示例的擬合效果不如該函數產生的擬合效果。特別是,“海伍德案例”(一個或多個唯一性本質上為零)的解決方案比大多數文本更為常見,並且其他一些程序會讓人相信。

例子

# A little demonstration, v2 is just v1 with noise,
# and same for v4 vs. v3 and v6 vs. v5
# Last four cases are there to add noise
# and introduce a positive manifold (g factor)
v1 <- c(1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,4,5,6)
v2 <- c(1,2,1,1,1,1,2,1,2,1,3,4,3,3,3,4,6,5)
v3 <- c(3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,5,4,6)
v4 <- c(3,3,4,3,3,1,1,2,1,1,1,1,2,1,1,5,6,4)
v5 <- c(1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,6,4,5)
v6 <- c(1,1,1,2,1,3,3,3,4,3,1,1,1,2,1,6,5,4)
m1 <- cbind(v1,v2,v3,v4,v5,v6)
cor(m1)
factanal(m1, factors = 3) # varimax is the default
factanal(m1, factors = 3, rotation = "promax")
# The following shows the g factor as PC1
prcomp(m1) # signs may depend on platform

## formula interface
factanal(~v1+v2+v3+v4+v5+v6, factors = 3,
         scores = "Bartlett")$scores

## a realistic example from Bartholomew (1987, pp. 61-65)
utils::example(ability.cov)

參考

Bartlett, M. S. (1937). The statistical conception of mental factors. British Journal of Psychology, 28, 97-104. doi:10.1111/j.2044-8295.1937.tb00863.x.

Bartlett, M. S. (1938). Methods of estimating mental factors. Nature, 141, 609-610. doi:10.1038/141246a0.

Jöreskog, K. G. (1963). Statistical Estimation in Factor Analysis. Almqvist and Wicksell.

Lawley, D. N. and Maxwell, A. E. (1971). Factor Analysis as a Statistical Method. Second edition. Butterworths.

Thomson, G. H. (1951). The Factorial Analysis of Human Ability. London University Press.

也可以看看

loadings (解釋了 print 方法的一些細節)、 varimaxprincompability.covHarman23.corHarman74.cor

其他旋轉方法可在各種貢獻的包中使用,包括 GPArotation psych

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Factor Analysis。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。