matlab做kmo检验的代码,急求 KMO测度和Bartlett 的球形度检验的计算原公式[通俗易懂]

matlab做kmo检验的代码,急求 KMO测度和Bartlett 的球形度检验的计算原公式[通俗易懂]1、关于KMO公式,您从如下matlab源程序代码中不难得出,我已经用Excel就计算出来了,跟SPSS的计算结果完全一致。iX=inv(X);%X是原始数据的相关系数矩阵R,而inv表示求X的逆矩阵iXS2=diag(diag((iX.^-1)));%将iX的对角线的元素取倒数,其余元素都变为0,得到矩阵S2AIS=S2*iX*S2;%anti-image…

大家好,又见面了,我是你们的朋友全栈君。

1、关于KMO公式,您从如下matlab源程序代码中不难得出,我已经用Excel就计算出来了,跟SPSS的计算结果完全一致。

iX = inv(X);     %X是原始数据的相关系数矩阵R,而inv表示求X的逆矩阵iX

S2 = diag(diag((iX.^-1)));    %将iX的对角线的元素取倒数,其余元素都变为0,得到矩阵S2

AIS = S2*iX*S2;    %anti-image covariance matrix,即AIS是反映像协方差矩阵

IS = X+AIS-2*S2;    %image covariance matrix,即IS是映像协方差矩阵

Dai = diag(diag(sqrt(AIS)));    %就是将矩阵AIS对角线上的元素开平方,并且将其余元素都变成0,得到矩阵Dai

IR = inv(Dai)*IS*inv(Dai); %image correlation matrix,即IR是映像相关矩阵

AIR = inv(Dai)*AIS*inv(Dai); %anti-image correlation matrix,即AIR是反映像相关矩阵

a = sum((AIR – diag(diag(AIR))).^2);    %diag(diag(AIR))表示将矩阵AIR的对角线取出来,再构造成一个对角矩阵(即对角线之   外元素都是 0);. 表示将偏相关系数矩阵AIR – diag(diag(AIR))的每一个元素乘方,这样得到矩阵a。AA = sum(a);              %得到偏相关系数矩阵AIR – diag(diag(AIR))中所有偏相关系数的平方和AA,但不考虑其对角线上的数值。

b = sum((X – eye(size(X))).^2);    %eye()是单位矩阵;b就是将相关系数矩阵R中每一个元素乘方,但R对角线元素全部变成0

BB = sum(b);             %BB就是所有变量之间(不包括变量自己与自己)的相关系数的平方和。

kmo = BB/(AA+BB);   %KMO就是所有变量之间相关系数的平方和除以它与所有变量之间偏相关系数平方和的商,但不考虑变量  自己与自己的相关系数1以及偏相关系数。

2、关于巴特利特球形检验的公式,作以下说明:

H0:原始数据的相关系数矩阵R与同维度的单位矩阵一致;H1:……不一致。

χ2=-[n-(2p+11)/6]ln|R|;             df=p(p-1)/2。

其中:n是数据记录的条数;p是因子分析的变量数目;ln()是自然对数函数;|R|是相关系数矩阵R的行列式的值。

算出上述χ2统计量的值,查表χ2(0.01,df),若χ2

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148458.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 云夜卡社区系统总控源码_云夜卡社区系统

    云夜卡社区系统总控源码_云夜卡社区系统介绍:1.购买服务器安装宝塔2.添加站点php5.63.上传源码解压【解压出4个目录】4.再次添加3个站点【不添加数据库和ftp】5.每个站点对应一个源码目录6.配置文件和伪静态7.访问控制端域名/admins8.配置主站域名添加主站9.访问主站域名/admin分销:域名/fenxiao总控:域名/admins主站:域名/admin分站:域名/home用户:域名/user网盘下载地址:http://kekewangLuo.net/WL6ONV5KixK0图片:

    2022年8月13日
    5
  • Fragment onResume不执行「建议收藏」

    Fragment onResume不执行「建议收藏」本博客解决的主要问题:在多个fragment切换的时候刷新各自的fragment,一般我们会优先想到onResume(),但是有时不起作用。解决办法:我们可以重写setUserVisibleHint()@OverridepublicvoidsetUserVisibleHint(booleanisVisibleToUser){super.setUserVis

    2022年6月2日
    210
  • ubuntu16安装中文输入法「建议收藏」

    ubuntu16安装中文输入法「建议收藏」参考自:https://jingyan.baidu.com/article/bad08e1ef4b2f109c85121b7.html原材料:ubuntu16步骤:1.在桌面的最左边选择设置(SystemSettings)2.在设置中选择LanguageSupport3.在弹出的窗口选择Install/RemoveLanguages…4.选择Ch…

    2022年9月26日
    2
  • @MapperScan 源码解析

    @MapperScan 源码解析aa

    2022年5月18日
    41
  • C++之内联函数

    C++继承C的一个重要特性是效率,在C中保护效率的一个方法是使用宏(macro),宏的实现是使用预处理器而不是编译器,预处理器直接用宏代码替换宏调用,所以就没有了参数压栈、生成汇编语言的CALL、返回

    2021年12月19日
    50
  • Java中next()和nextLine()区别及用法「建议收藏」

    Java中next()和nextLine()区别及用法「建议收藏」今天在项目之余,到杭电上刷了一道题,那道题是1062题,程序本身不是难,但是在里面实现过程中,突然发现用的Scanner类进行输入的,用到了next和nextLine这两个方法,在输入过程中也遇到一些问题,接下来进行讲述自己遇到的问题,以及如何解决的杭电1062题目:TextReverseProblemDescriptionIgnatiuslike

    2022年5月22日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号