我遇到的问题是对数函数的行为有所不同,具体取决于我使用相同数据的图表类型。当我手动生成方程时,它返回散点图线性趋势线,但斜率函数和线性图产生不同的趋势线。
Linear vs Scatter 散点图对数线的等式为:
y = -0.079ln(x) + 0.424
线性图trenline的等式是:
y = -0.052ln(x) + 0.3138
我可以使用以下公式生成线性图trenline斜率:
=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中的线性图trenline方程
以下是数据:
https://docs.google.com/spreadsheets/d/1sOlyXaHnUcCuD9J28cKHnrhhcr2hvYSU1iCNWXcTqEA/edit?usp=sharing
这是Excel文件:
https://www.dropbox.com/s/6hpd4bzvmbxe5pu/ScatterLinearTest.xlsx?dl=0
答案 0 :(得分:1)
Excel中的直线和散点图在X轴方面有很大不同。在散点图的情况下,x轴表示实际值。在线图的情况下,x轴是标签。如果您尝试使用折线图计算斜率,则x轴将具有1,2,3,4的值,无论标签显示什么(例如:即使它显示为7..69 )。使用散点图,x轴将具有标签的值。
在您的情况下,两个斜率之间的差异可以通过从1开始的x轴线图值来解释(即使它标记为7
);以及从7开始的x轴散点图值 - 实际值。
所以,事实上,你提供的数据的实际斜率," X"从值#34; 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
第一个是Scatter图,第二个是Line plot