[回归分析][11]--共线性数据的分析
考虑 x1,x2,x3 ... xn之间有相关性时。
即我们搜集数据时,可能搜集的数据之间有很强的相关性,会影响我们的分析。

对于两两之间的关系,可以用相关系数矩阵
如:以下是数据
[回归分析][11]--共线性数据的分析
数据写好是这样的。

mat = Correlation[data] // MatrixForm
[回归分析][11]--共线性数据的分析
得到相关系数矩阵--数据的绝对值越接近1说明相关性越好

可以把每一张图画出来看一下
Grid[
 Table[ListPlot[
   data[[All, {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}]][[All, {i, j}]],
   PlotStyle -> Directive[PointSize[Medium]],
         FrameTicks -> None, 
   Frame -> True, 
   Axes -> None,
   PlotLabel -> 
    Row[{"\[Rho] : ", 
      Correlation[data[[All, {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}]]][[
       i, j]]}]], {i, 1, 11}, {j, 1, 11}],
 Spacings -> {0.5, -1}
 ]
[回归分析][11]--共线性数据的分析


下面考虑多重线性关系,即一个变量可能与多个变量有关系

1.方差膨胀因子--VIF,当VIF>10时,说明有很强的相关性
简单说一下检验的方法:去掉一个变量后R^2的变化
[回归分析][11]--共线性数据的分析
lm = LinearModelFit[
   data[[All, {2, 3, 4, 5, 6, 1}]], {x1, x2, x3, x4, x5}, {x1, x2, x3,
     x4, x5}];
Grid[{bl[[{1, 2, 3, 4, 5, 6}]], lm["VarianceInflationFactors"]}, 
 Frame -> All]
[回归分析][11]--共线性数据的分析

可以看到 at , pt ,at-1,pt-1的VIF很大,说明有相关性

2.相关系数的特征跟---越接近0,相关性越大
可以用定义来计算:
[回归分析][11]--共线性数据的分析
也可以用定义好的函数
[回归分析][11]--共线性数据的分析
可以比较一下,是一样的。

对变量做变换,变成正交的变量。用特征向量做变换--变为c1,c2,...,cn
mat = Correlation[data[[All, {2, 3, 4, 5, 6}]]];
vet = Eigenvectors[mat];
Column["c" <> ToString[#] <> " == " <> ToString[
     TraditionalForm[Apply[Plus, vet[[#]]*{x1, x2, x3, x4, x5}]]] & /@Range[5], Spacings -> 1.5, Frame -> All]


[回归分析][11]--共线性数据的分析
这个特征值可以理解 ci 的方差,当特征值很小时,即方差很小,即可以理解位ci==常数

如这时,c5==0,则根据最后一个等式:

常数 = -0.51x1 - 0.48x2 - 0.42x4 - 0.559x5
这个常数可以带入数据去计算出来

以上,所有
2016/12/3

相关文章:

  • 2022-02-10
  • 2021-09-04
  • 2021-11-02
  • 2021-07-31
  • 2021-12-18
  • 2022-01-20
  • 2021-05-04
  • 2021-11-15
猜你喜欢
  • 2022-12-23
  • 2021-11-08
  • 2021-05-14
  • 2021-12-30
  • 2022-12-23
  • 2022-12-23
  • 2021-10-19
相关资源
相似解决方案