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 (或类似数据:请参阅 |
covmat |
协方差矩阵或由 |
n.obs |
如果 |
subset |
如果 |
na.action |
如果 |
start |
|
scores |
要生成的分数类型(如果有)。默认值为无, |
rotation |
特点。 |
control |
控制值列表,
|
... |
|
细节
因子分析模型为
对于 元素向量 、负载的 矩阵 、分数的 元素向量 和错误的 元素向量 。除了 之外,没有观察到任何其他组件,但主要限制是分数不相关且具有单位方差,并且误差与方差 独立,即唯一性。将观察到的变量缩放到单位方差也是很常见的,并在此函数中完成。
因此因子分析本质上是 相关矩阵的模型,
模型中仍然存在一些不确定性,因为如果对于任何正交矩阵 将 替换为 ,模型不会发生变化。此类矩阵 称为旋转(尽管该术语也适用于非正交可逆矩阵)。
如果提供covmat
,则使用它。否则,如果它是矩阵,则使用x
,或者将公式x
与data
一起使用来构造模型矩阵,并用于构造协方差矩阵。 (公式有响应是没有意义的,并且所有变量都必须是数字。)一旦找到或从 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 |
载荷矩阵,每个因子一列。这些因子按载荷平方和的降序排列,并给出使载荷总和为正的符号。这是 |
uniquenesses |
计算出的唯一性。 |
correlation |
使用的相关矩阵。 |
criteria |
优化结果:标准值(负对数似然的线性函数)和所使用迭代的信息。 |
factors |
参数 |
dof |
因子分析模型的自由度数。 |
method |
方法:始终 |
rotmat |
旋转矩阵(如果相关)。 |
scores |
如果需要,可以提供分数矩阵。 |
n.obs |
观察数(如果可用)或 |
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
方法的一些细节)、 varimax
、 princomp
、 ability.cov
、 Harman23.cor
、 Harman74.cor
。
其他旋转方法可在各种贡献的包中使用,包括 GPArotation
和 psych
。
相关用法
- R factor.scope 计算在公式中添加或删除时允许的更改
- R family 模型的族对象
- R formula 模型公式
- R friedman.test 弗里德曼秩和检验
- R fitted 提取模型拟合值
- R ftable 扁平列联表
- R ftable.formula 平面列联表的公式表示法
- R filter 时间序列的线性过滤
- R formula.nls 从 nls 对象中提取模型公式
- R fivenum 图基五数摘要
- R fisher.test 计数数据的 Fisher 精确检验
- R fft 快速离散傅立叶变换 (FFT)
- R fligner.test 方差齐性的 Fligner-Killeen 检验
- R stlmethods STL 对象的方法
- R medpolish 矩阵的中值波兰(稳健双向分解)
- R naprint 调整缺失值
- R summary.nls 总结非线性最小二乘模型拟合
- R summary.manova 多元方差分析的汇总方法
- R nls.control 控制 nls 中的迭代
- R aggregate 计算数据子集的汇总统计
- R deriv 简单表达式的符号和算法导数
- R kruskal.test Kruskal-Wallis 秩和检验
- R quade.test 四方测试
- R decompose 移动平均线的经典季节性分解
- R plot.stepfun 绘制阶跃函数
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Factor Analysis。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。