【问题标题】:Calculate slope and intercept value for logarithmic trendline as excel以excel计算对数趋势线的斜率和截距值
【发布时间】:2017-03-30 05:32:18
【问题描述】:

我正在生成对数趋势线并为此使用 Excel 公式。但我无法计算 Excel 中计算的斜率和截距值。我想,我的公式有一些错误。

这是我的代码

 var X= [10, 25, 30, 40]; Y= [5, 4, 7, 12];

 var Slope, Intercept, SX = 0, SY = 0,
            SXX = 0, SXY = 0, SYY = 0,
            SumProduct = 0, N = X.length;

            for (var i = 0; i < N; i++) {
                SX = SX + X[i];
                SY = SY + Y[i];
                SXY = SXY + X[i] * Y[i];
                SXX = SXX + X[i] * X[i];
                SYY = SYY + Y[i] * Y[i];
            }

            Slope = ((N * SXY) - (SX * SY)) / ((N * SXX) - (SX * SX));

            Intercept = (SY - (Slope * SX)) / N;

Fiddle link

Excel公式:

对数方程:y=(c*LN(x))+b

地点:

c = INDEX(LINEST(y,LN(x)),1)
b = INDEX(LINEST(y,LN(x)),1,2)

Excel 输出的屏幕截图

请建议如何在 JavaScript 中导出 Excel 公式。

【问题讨论】:

    标签: javascript excel vba excel-charts trendline


    【解决方案1】:

    您在 Excel 中为 ln() 错过了 Math.log()。像这样编辑for 部分。

    for (var i = 0; i < N; i++) {
        SX = SX + Math.log(X[i]);
        SY = SY + Y[i];
        SXY = SXY + Math.log(X[i]) * Y[i];
        SXX = SXX + Math.log(X[i]) * Math.log(X[i]);
        SYY = SYY + Y[i] * Y[i];
    }
    

    我已经验证输出是 sams as Excel。

    > Slope
    3.8860409979365333
    > Intercept
    -5.252238189415747
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多