Excel中的部分计算函数 在Java中的实现

    技术2025-05-29  5

    SLOPE 函数


    说明:       返回根据 known_y's 和 known_x's 中的数据点拟合的线性回归直线的斜率。斜率为直线上任意两点的重直距离与水平距离的比值,也就是回归直线的变化率。

     

    计算公式:

     

    Java实现: public static double slope(double[] yVals, double[] xVals){ double rval = 0; double yAvg = avg(yVals);// 求平均数 double xAvg = avg(xVals); double xy = 0; double xx = 0; for (int i = 0; i < yVals.length; i++) { xy += (xVals[i] - xAvg) * (yVals[i] - yAvg); xx += (xVals[i] - xAvg) * (xVals[i] - xAvg); } rval = xy / xx; return rval; }

    参考资料:http://office.microsoft.com/zh-cn/excel-help/HP010062538.aspx

     

     

    INTERCEPT 函数


    说明:       利用现有的 x 值与 y 值计算直线与 y 轴的截距。截距为穿过已知的 known_x's 和 known_y's 数据点的线性回归线与 y 轴的交点。当自变量为 0(零)时,使用 INTERCEPT 函数可以决定因变量的值。例如,当所有的数据点都是在室温或更高的温度下取得的,可以用 INTERCEPT 函数预测在 0°C 时金属的电阻。

     

    计算公式: 公式中斜率 b (即slope)计算如下:

     

    Java实现: public static double intercept(double[] yVals, double[] xVals){ double rval = 0; double yAvg = avg(yVals);// 求平均数 double xAvg = avg(xVals); rval = yAvg - slope(yVals, xVals) * xAvg; return rval; }

    参考资料:http://office.microsoft.com/zh-cn/excel-help/HP010342626.aspx

     

     

    STDEV 函数


    说明:       根据样本估计标准偏差。标准偏差可以测量值在平均值(中值)附近分布的范围大小。

     

    计算公式:

     

    Java实现: public static double stdev(double[] vals){ double rval = 0; double avg = avg(vals); for (int i = 0; i < vals.length; i++) { rval += Math.pow((vals[i] - avg), 2); } rval /= vals.length; rval = Math.sqrt(rval); return rval; }

    参考资料:http://office.microsoft.com/zh-cn/excel-help/HP005209277.aspx

     

     

    CORREL 函数


    说明:       返回单元格区域 array1 和 array2 之间的相关系数。使用相关系数可以确定两种属性之间的关系。例如,可以检测某地的平均温度和空调使用情况之间的关系。

     

    计算公式:

     

    Java实现: public static double correl(double[] yVals, double[] xVals){ double rval = 0; double Exy = 0; double Ex = 0; double Ey = 0; for (int i = 0; i < xVals.length; i++) { Exy += xVals[i] * yVals[i]; Ex += xVals[i]; Ey += yVals[i]; } Exy /= yVals.length; Ex /= yVals.length; Ey /= yVals.length; rval = (Exy - Ex * Ey) / (biaoZhunCha(xVals) * biaoZhunCha(yVals)); return rval; }

    参考资料:http://office.microsoft.com/zh-cn/excel-help/HP005209023.aspx

     

     

    RSQ 函数


    说明:       返回根据 known_y's 和 known_x's 中数据点计算得出的 Pearson 乘积矩相关系数(即CORREL)的平方。R 平方值可以解释为 y 方差与 x 方差的比例。又称R2。

     

    Pearson 乘积矩相关系数 r 的计算公式如下: RSQ 返回 r2,即相关系数的平方。

     

    Java实现: public static double r2(double[] yVals, double[] xVals){ double rval = 0; rval = Math.pow(correl(yVals, xVals), 2); return rval; }

    参考资料:http://office.microsoft.com/zh-cn/excel-help/HP005209247.aspx

    转载请注明出处!!!

    最新回复(0)