











网上没找到,自己对付着写了一个,作用就是判断一个2列以上(含2列)的矩阵,是否有某2列存在线性相关性
/// <summary>
/// 检查矩阵的轶是否具有高相关性
/// </summary>
/// <param name="X">待检查的矩阵</param>
/// <returns>检查结果,如果有高相关性,返回true,否则返回false</returns>
private Boolean HasHighlyCorrelated(Matrix X)
{
Boolean flag = true;
Double rate = 0;

for (Int32 m = 0; m < X.Columns - 1; m++)
{
for (Int32 n = m + 1; n < X.Columns; n++)
{
rate = X[0,m] / X[0,n]; //记录第一行的2数的比率

for (int i = 1; i < X.Rows; i++)//以第一行为参照,从第二行开始比较
{
//如果2数比率和第一行不同
if ((X[i,m] / X[i,n]) / rate != 1)
{
flag = false;//则此2列无线性相关性
break;
}
}

if (flag)//如果此次比较的2列具有线性相关性,返回true
{
return true;
}
}
}

return false;
}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。