当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。