【发布时间】:2016-08-18 09:44:07
【问题描述】:
更新:4/28 我找到了将我的中心因子提取导入 SPSS 并旋转它的正确语法。由于 SPSS 在通过 MATRIX IN (...) 读取矩阵时可以使用哪些子命令的限制,我仍然需要找到一种方法来获取 FSCORE 并保存新变量 (/SAVE REG(ALL) ),但那是另一个帖子。
我认为正确的语法如下,以及矩阵的正确设置。如果我错了,请纠正我!
原帖: 在过去的 4 天里,我一直在为此苦苦挣扎。我得出的结论是,我不够聪明,无法自己解决这个问题,我想把这件事做好。
期望的结果: 我想指示 SPSS 读取从另一个程序计算的提取因子矩阵并继续进行因子分析。换句话说,我需要使用质心提取方法(据我所知,在 SPSS 中不可用),而不是让 SPSS 使用 PCA(或任何适合数据的方法)提取因子。
我想使用这个质心因子提取数据并在数据集 A 中创建一个新变量,其中包含每个变量的因子分数。
所以...执行以下分析,但使用我自己提取的因素:
FACTOR
/VARIABLES VAR00001 VAR00002 VAR00003 VAR00004 VAR00005 VAR00006 VAR00007 VAR00008 VAR00009 VAR00010 VAR00011 VAR00012 VAR00013 VAR00014 VAR00015 VAR00016 VAR00017 VAR00018 VAR00019 VAR00020 VAR00021 VAR00022 VAR00023 VAR00024 VAR00025 VAR00026 VAR00027 VAR00028 VAR00029 VAR00030 VAR00031 VAR00032 VAR00033 VAR00034 VAR00035 VAR00036 VAR00037 VAR00038 VAR00039 VAR00040 VAR00041 VAR00042 VAR00043 VAR00044 VAR00045 VAR00046 VAR00047 VAR00048 VAR00049 VAR00050 VAR00051 VAR00052 VAR00053 VAR00054 VAR00055 VAR00056 VAR00057 VAR00058 VAR00059 VAR00060 VAR00061 VAR00062 VAR00063 VAR00064 VAR00065 VAR00066 VAR00067 VAR00068 VAR00069 VAR00070 VAR00071 VAR00072 VAR00073 VAR00074
/MISSING LISTWISE
/ANALYSIS VAR00001 VAR00002 VAR00003 VAR00004 VAR00005 VAR00006 VAR00007 VAR00008 VAR00009 VAR00010 VAR00011 VAR00012 VAR00013 VAR00014 VAR00015 VAR00016 VAR00017 VAR00018 VAR00019 VAR00020 VAR00021 VAR00022 VAR00023 VAR00024 VAR00025 VAR00026 VAR00027 VAR00028 VAR00029 VAR00030 VAR00031 VAR00032 VAR00033 VAR00034 VAR00035 VAR00036 VAR00037 VAR00038 VAR00039 VAR00040 VAR00041 VAR00042 VAR00043 VAR00044 VAR00045 VAR00046 VAR00047 VAR00048 VAR00049 VAR00050 VAR00051 VAR00052 VAR00053 VAR00054 VAR00055 VAR00056 VAR00057 VAR00058 VAR00059 VAR00060 VAR00061 VAR00062 VAR00063 VAR00064 VAR00065 VAR00066 VAR00067 VAR00068 VAR00069 VAR00070 VAR00071 VAR00072 VAR00073 VAR00074
/PRINT INITIAL CORRELATION SIG DET INV REPR AIC EXTRACTION ROTATION FSCORE
/FORMAT BLANK(.544)
/CRITERIA FACTORS(6) ITERATE(60)
/EXTRACTION PC
/CRITERIA ITERATE(100) DELTA(0)
/ROTATION OBLIMIN
/SAVE REG(ALL)
/METHOD=CORRELATION.
资产:数据集 A(包含 36 个名义、可衡量变量的 74 个调查回复);质心矩阵(每个受访者抽取六个因子)
ID f1 f2 f3 f4 f5 f6
1 .79778 .02151 -.07729 -.04738 .09509 -.06625
2 .65029 .02050 .29293 .04123 .24523 -.13920
3 .75398 .14790 .03987 -.09101 .16572 .24866
etc..
解决方案
首先,确保您的质心提取矩阵设置正确。这意味着:
ROWTYPE_ 作为系统变量,FACTOR 作为每行/案例的字符串值。
FACTOR_ 作为系统变量,带有标记每一行/案例的数值。
此矩阵中的每个因素都是一行/案例。 (我把我的转置了,因为它就是这样被提取出来的……叹息……)
FACTOR MATRIX IN (FAC='path to centroid extraction matrix.sav')
/MISSING LISTWISE
/PRINT ROTATION
/FORMAT BLANK(.544)
/CRITERIA ITERATE(80) DELTA(0)
/ROTATION OBLIMIN
/METHOD=CORRELATION.
失败的尝试是我的语法缺陷的纪念碑 我确定我以某种方式搞砸了(注意:是的!),但这是我尝试过的语法:
方法 1:打开数据集 A 并在语法编辑器中设置为活动数据集,指示 SPSS 读取质心因子并继续分析。
FACTOR
/MATRIX=IN (FAC= 'C:/YYYY/cent.sav')
/PRINT ALL
/ROTATION OBLIMIN
/METHOD=CORRELATION.
方法 2:手动将质心矩阵读入 SPSS,然后将数据集 1 设置为活动状态进行因子分析。
MATRIX DATA VARIABLES=varlist
/N=74
/CONTENTS= MAT.
BEGIN DATA
.79778 .02151 -.07729 -.04738 .09509 -.06625
.65029 .02050 .29293 .04123 .24523 -.13920
.75398 .14790 .03987 -.09101 .16572 .24866
etc.
END DATA.
EXECUTE.
FACTOR
/PRINT ROTATION
/ROTATION OBLIMIN
/SAVE REG(ALL)
/METHOD=CORRELATION.
请原谅我语法的弱代码。我正在尝试学习规则,并且一直在阅读 SPSS 手册(在线和离线)尝试(但失败)以使其正确。
感谢您提供的任何帮助,对于问题的长度,我们深表歉意。
【问题讨论】:
-
我认为,对于选项“... matrix = in (fac=file)...”,文件的行必须有一个前导的“type-identifier”(一个短字符串)。尝试对一些随机数据进行因子分析并使用“... matrix=out (fac=file)...”(或如何正确编写)并查看 SPSS 生成文件的结构作为示例.
-
嗨戈特弗里德-赫尔姆斯。是的,对于方法 1,必须使用短字符串指定 ROWTYPE_。在这种情况下,我相信这是 FACTOR(不过,我可能错了,因为帮助文档各不相同)。然后,需要另一个字段 - 帮助文档在这里也说了各种各样的事情,因为我找不到与我的情况完全相同的类比。因此,添加了另一个数值变量 FACTOR_。无论如何,我无法让它工作。我没试过
-
....我没有尝试 matrix=out (fac='file destination')。在没有其他选择的情况下,我会尝试一下......我仍然认为还有另一种方法。
-
@GottfriedHelms 我尝试了您的建议来检查方法 1 的输入文件的标记。确实,为了使子命令 matrix = in (fac=file) 起作用,ROWTYPE_ 必须是字符串 FACTOR并且导入矩阵中的另一个系统变量必须是 FACTOR,其值与变量数一起输入。
-
啊,很好(我没有勇气拿出自己的SPSS...)祝你好运!
标签: matrix syntax spss factor-analysis