用到前一篇的.net实现Excel的几个函数中的方法。
/// <summary>
/// 线性回归算法
/// </summary>
/// <param name="yArray"></param>
/// <param name="xArray"></param>
/// <returns></returns>
public static double[] LinearRegression(double[] yArray, double[] xArray)
{
//第一步求对数
double[] yArray_Log = new double[yArray.Length];
for (int i = 0; i < yArray.Length; i++)
{
yArray_Log[i] = ExcelFormula.LN(yArray[i]);
}
//第二步求斜率
double k = ExcelFormula.SLOPE(yArray_Log, xArray);
//第三步求截距
double b = ExcelFormula.INTERCEPT(yArray_Log, xArray);
//第四步求回归值
double[] returnValue = new double[yArray.Length];
for (int i = 0; i < yArray.Length; i++)
{
double d = xArray[i] * k + b;
returnValue[i] = ExcelFormula.EXP(d);
}
return returnValue;
}