Matlab怎么旋转器件,如何在MATLAB中执行直接指令旋转

我试图在MATLAB中执行以下分析:

Direct Oblimin Rotation with a Delta value of 0 and “Kaiser

Normalization”

我知道MATLAB有一个名为rotatefactors的函数,但是没有提到oblimin旋转(既不是“Kaiser Normalization”).如何在MATLAB中执行此分析?

更具体地说,在进行此分析时,我正在尝试匹配SPSS的确切输出.

在这里,您可以找到SPSS中使用的所有算法:link(查看第338页的oblimin旋转).不幸的是,我无法理解方程,从而在MATLAB中重现它们.

例如,我使用以下数据:

A = magic(10);

writetable(array2table(A),'test.xlsx') % This data can be imported to SPSS

我执行PCA(在相关矩阵上)并且仅提取2个因素.这是MATLAB中如何完成的,以获得与SPSS(称为“Component Matrix”)完全相同的加载矩阵:

[eigvector,eigmatrix] = eig(corr(A));

[~,ind] = sort(diag(eigmatrix),'descend');

eigmatrix = eigmatrix(ind,ind);

eigvector = eigvector(:,ind);

eigvalues = diag(eigmatrix); % Eigeinvalues

loadings = eigvector*sqrt(eigmatrix);

loadings = loadings(:,1:2) % Extract only 2 factors

接下来,我应该使用rotatefactors函数在加载矩阵上执行旋转,这是我被卡住的地方.

以下是SPSS中的语法:

FACTOR

/VARIABLES A1 A2 A3 A4 A5 A6 A7 A8 A9 A10

/MISSING LISTWISE

/ANALYSIS A1 A2 A3 A4 A5 A6 A7 A8 A9 A10

/PRINT INITIAL EXTRACTION ROTATION

/CRITERIA FACTORS(2) ITERATE(25)

/EXTRACTION PC

/CRITERIA ITERATE(25) DELTA(0)

/ROTATION OBLIMIN

/METHOD=CORRELATION.

这是我正在尝试在MATLAB中复制的SPSS的输出:

fmyp2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值