• 模型的解释变量之间存在线性关系
  1. 若中心化之后自变量的相关系数矩阵 R = X'X 接近于退化就存在多重共线性
  2. R有多少个特征根接近于零,设计矩阵X就有多少个多重共线性关系
  3. 此时,虽然最小二乘估计β仍为线性无偏估计,但是从均方误差来看这个估计不好

多重检验校正R语言 r多重共线性检验方法_特征分析

可以看出,当λ很小时β的MSE和Var都会变得很大,所以需要更换预测模型(上面公式的证明先挖坑以后填)

  • 三个判断准则
  1. 特征分析法:比较定性,就是看有多少个特征根接近于零就有多少多重共线性
  2. 条件数法:R矩阵的条件数定义为 k = λ1/λp 
  • k<100 ,不存在多重共线性
  • k>1000,有严重多重共线性
import pandas as pd
import numpy as np

#打开文件替换并另存
df = pd.read_excel("E:/数学建模/2017-C/题干/Data1.xls")
df = df.replace('水',0)
df.to_excel("E:/数学建模/2017-C/题干/Data1_1.xlsx",index = False)
%% 多重共线性检验
% 求相关系数矩阵
av = mean(x,1);
avs = repmat(av,10,1);
X_cen = x - avs;
R_samp = X_cen'*X_cen
% 求特征根
[V,D1] = eig(R_samp);
%M_m = sort(diag(D1),"ascend")
k = max(diag(D1))/min(diag(D1))
  1. 方差膨胀因子VIF(需要计算复相关系数,我好懒)