-1

我遇到了一个问题,对数函数的行为取决于我对相同数据使用的图形类型。当我手动生成方程时,它返回散点图线性趋势线,但斜率函数和线性图会产生不同的趋势线。

线性与散点图 线性与散射 散点图对数线的方程为:

y = -0.079ln(x) + 0.424

线性图 trenline 的方程为:

y = -0.052ln(x) + 0.3138

我可以使用以下等式生成线性图趋势线斜率:

=SLOPE(B2:B64,LN(A2:A64)) = -0.052

但使用一般斜率方程,我得到散点图趋势线(使用 SQL):

    SELECT SUM(multipliedresiduals) / SUM(xresidsquared)
FROM (
    SELECT *
        ,log(x.x) - l.avgx xresiduals
        ,x.y - l.avgy yresiduals
        ,power(log(x.x) - l.avgx, 2) xresidsquared
        ,((log(x.x) - l.avgx) * (x.y - l.avgy)) multipliedresiduals
    FROM ##logtest x
    CROSS JOIN (
        SELECT avg(log(x)) avgx
            ,avg(y) avgy
        FROM ##logtest l
        ) l
    ) z        =   -0.0789746757495071 (Scatter Plot Slope)

这是怎么回事?我主要对在 SQL 中复制线性图趋势线方程感兴趣

这是数据:

https://docs.google.com/spreadsheets/d/1sOlyXaHnUcCuD9J28cKHnrhhcr2hvYSU1iCNWXcTqEA/edit?usp=sharing

这是Excel文件:

https://www.dropbox.com/s/6hpd4bzvmbxe5pu/ScatterLinearTest.xlsx?dl=0

4

1 回答 1

1

Excel 中的折线图和散点图在 X 轴方面完全不同。在散点图的情况下,x 轴代表实际值。在折线图的情况下,x 轴是标签。如果您尝试使用折线图计算斜率,则 x 轴的值将是 1,2,3,4,... 无论标签显示什么(例如:即使它显示 7..69 )。对于散点图,x 轴将具有标签的值。

在您的情况下,两个斜率之间的差异可以通过从 1 开始的 x 轴线图值来解释(即使它被标记为7);以及从 7 开始的 x 轴散点图值——实际值。

因此,实际上,您呈现的数据的真正斜率(“X”从值“7”开始)是您从散点图数据中获得的斜率,这与您在 SQL 中获得的斜率相同.

为了使 SQL 方程与线性图趋势线方程相匹配,您需要将 x 轴值替换为序列 [1..n] 而不是实际的 x 轴值。

我没有 SQL,但是这两个SLOPE公式的结果应该澄清我在写什么:

Scatter plot: =SLOPE(B2:B64,LN(ROW(INDIRECT("7:69"))))  -0.078974676
Line Plot:    =SLOPE(B2:B64,LN(ROW(INDIRECT("1:63"))))  -0.051735504

第一个是散点图,第二个是线图

于 2015-12-05T01:19:49.917 回答