关于矩阵存在共线性的第二谈
来源:互联网 发布:淘宝的购物评级怎么涨 编辑:程序博客网 时间:2024/06/16 12:51
前面一篇文章中我们谈了非正定的问题。那么,针对Mplus中的这个警告做一点解释
THE MODEL ESTIMATION TERMINATED NORMALLY
THE STANDARD ERRORS OF THE MODEL PARAMETER ESTIMATES MAY NOT BE
TRUSTWORTHY FOR SOME PARAMETERS DUE TO A NON-POSITIVE DEFINITE
FIRST-ORDER DERIVATIVE PRODUCT MATRIX. THIS MAY BE DUE TO THE STARTING
VALUES BUT MAY ALSO BE AN INDICATION OF MODEL NONIDENTIFICATION. THE
CONDITION NUMBER IS -0.378D-16. PROBLEM INVOLVING THE FOLLOWING PARAMETER;
先来看这个数据集,一个著名的共线性数据集,具体内容见这个链接
http://www.itl.nist.gov/div898/strd/lls/data/Longley.shtml
先把上面出现的那个提示解释一下,
关于这个问题,很多人提问Mplus作者貌似压根没有说明白
http://www.statmodel.com/discussion/messages/11/1602.html?1475195929
矩阵的条件数(condition number)
condition number 是一个矩阵的稳定性或者敏感度的度量,如果一个矩阵的 condition number在1附近,那么它就是well-conditioned的,如果远离1,它的输出结果就不可相信。本数据的矩阵条件数是-0.378D-16,这是科学计数法,网上没有查到具体是多少。
关于共线性的度量主要有三个:
1 容忍度(tolerance),
2 方差膨胀因子(variable inflation factor,VIF)
3条件数,常用k表示
r容忍度和 VIF的定义
一般vif太大比如大于10,则说明存在多重共线性
条件数K
矩阵特征值最大比上最小,当自变量正交时,条件数为1,当k>15时存在共线性问题
对于条件数在这里多说一下
在矩阵运算中,常常需要考虑观察数据存在某种程度的不确定性和误差,而且在数据计算也总是伴随着误差,同时我们还需要关注在牛顿迭代过程中算法的
稳定性,给定方程求解其中的某个解集 d,我们希望得到的近似值d* 如果f(d)逼近f(d*)那么这个算法在求解此问题是就是“良性”的,如果在逼近f(d*)有时相差
很大,那么我们就称为“病态”。我们只有在保证算法稳定的前提下让f(d)逼近f(d*)计算出的结果才是可信的。
在求解线性方程AX=b时,其中矩阵A是 n*n的元素为已知数值的系数矩阵,b是n*1的已知向量,X是一个待求解的参数向量,系数矩阵A非奇异时,由于独立
方程的个数和未知参数的个数相等,故方程有唯一的解,成为正定方程,这时我们对求解的稳定性感兴趣,如果系数矩阵A和向量矩阵b发生扰动,那么方程的解向量
X如何变化,如果解向量X如何受系数矩阵A和系数向量b的元素微小扰动的影响,将得到描述矩阵A的一个重要特征数值称为条件数(condition number),在 matlab中
函数是cond同时在python求解用np.linalg.cond() 这个指令。关于cond的计算在间文末的附录
当系数矩阵A一个很小的扰动引起向量X很小的扰动,则称A为(well-condition matrix)良态矩阵,若引起很大的扰动,则称矩阵A是
(ill-condition matrix)病态,而条件数则是衡量求解线性方程,误差的通过矩阵A的传播扩大为解向量的误差程度,也就是说,是衡量线性方程数值稳定
性的一个重要指标。
我们再来看看
Mplus语句和本数据输出的结果
data: file is longnm.csv;
variable: names are y x1-x6;
model:x1-x6 on y;
output:modindices tech1 tech4;
tech4出现这样的相关矩阵
ESTIMATED CORRELATION MATRIX FOR THE LATENT VARIABLES
X1 X2 X3 X4 X5
________ ________ ________ ________ ________
X1 1.000
X2 0.992 1.000
X3 0.621 0.604 1.000
X4 0.465 0.446 -0.177 1.000
X5 0.979 0.991 0.687 0.364 1.000
X6 0.991 0.995 0.668 0.417 0.994
Y 0.971 0.984 0.502 0.457 0.960
想必也看到了,这个矩阵的存在大量相关系数大于0.9的变量
那么无疑是存在着共线性了。
- 关于矩阵存在共线性的第二谈
- 多重共线性的解决方法
- 关于线性模型出现非正定矩阵的问题解释
- 灰度共生(共现)矩阵的求法
- 灰度共生(共现)矩阵的求法
- 处理多重共线性
- 多重共线性
- 第二章存在的疑问
- 多重共线性的产生原因、判别、检验、解决方法
- 多重共线性问题的几种解决方法
- [回归分析][11]--共线性数据的分析
- R 教你做炫酷的--共线性系数展示
- 多重共线性问题的几种解决方法
- 多重共线性的处理方法(转载)
- R语言之多重共线性的判别以及解决方法
- 多重共线性问题的几种解决方法
- 灰度共现矩阵
- 蛇形矩阵的各种情形:共4种5类
- 链表的插入_删除
- 函数调用约定
- JAVA内存模型和线程安全
- 讯为Exynos4412开发板例程及注释——LED
- 【20170929】python_语言设计(1)基本语法
- 关于矩阵存在共线性的第二谈
- PKU 3281 Dining
- 指针和引用详细比较
- 调用浏览器的打印预览
- tk1 刷机血路
- java程序员笔试试题
- 使用Burp Suite做http proxy抓取android请求
- Dubbo client 启动报错:No provider available for the service use dubbo version 2.5.3
- android开发-自定义控件顺序