最合适的线看起来不太合适。为什么?


82

看看这个Excel图: 该图

“常识”的最佳拟合线将是一条垂直于点中心的几乎垂直的线(用红色手工编辑)。但是,由Excel确定的线性趋势线是所示的对角黑色线。

  1. 为什么Excel产生了(在人眼中)看来是错误的东西?
  2. 如何生成看起来更直观的最佳拟合线(即类似红线的东西)?

更新1.此处提供带有数据和图形的Excel电子表格: 示例数据Pastebin中的CSV。type1和type2回归技术可以用作excel函数吗?

更新2。数据表示滑翔伞在热中攀爬,随风漂移。最终目标是研究风的强度和方向如何随高度变化。我是工程师,而不是数学家或统计学家,因此这些回复中的信息为我提供了更多的研究领域。


5
老实说,我怀疑这是戴明回归与OLS的问题。观察和非常小的绝对变化,我宁愿认为这可能是Excel中的一个数字问题。您可以编辑问题以包括数据吗?ÿxy
斯蒂芬·科拉萨

12
这种现象是19世纪的主要统计发现之一(即使不是所有时间)。这被称为向均值回归。的确,这就是为什么将该统计过程称为“回归”的原因!
ub

3
我要补充一点,拟合看起来如此不同的主要原因是该图极大地放大了y轴上的比例。通过在两个比例尺与边际标准偏差成比例的位置进行绘制,您可能得出完全不同的结论,即哪种拟合更为“常识”。
ub

6
@StephanKolassa-注意,如果您使用红线并为预测,则误差将是;红线不可能是最小二乘的最佳拟合。Excel当然有问题,但是我认为这不是问题之一。x = 0.714yx=0.714
jbowman

7
这个问题已经在现场解决了很多次(例如,请参见此处)。当您了解回归线是什么时,很容易看出为什么它是黑线。问自己两个问题:1:当x约为0.712时,y的平均值是多少?2.红线和黑线预测应该是什么?... [ 由于您的数据存在某些特定问题,值得您重新关注,因此我
暂时不做结案工作

Answers:


111

有因变量吗?

Excel中的趋势线来自变量“ lat”对变量“ lon” 的回归。当您不指定变量,并且平等地对待纬度和经度时,就可以获得所谓的“常识线” 。后者可以通过应用PCA获得。特别是,它是这些变量协方差矩阵的特征向量之一。您可以将其视为一条直线,以最小化任何给定点到直线本身的最短距离,即,绘制一条垂直于直线的线,并最小化每个观测值的总和。(xi,yi)

在此处输入图片说明

这是您在R中可以做到的方式:

> para <- read.csv("para.csv")
> plot(para)
> 
> # run PCA
> pZ=prcomp(para,rank.=1)
> # look at 1st PC
> pZ$rotation
           PC1
lon 0.09504313
lat 0.99547316
> 
> colMeans(para) # PCA was centered
       lon        lat 
-0.7129371 53.9368720 
> # recover the data from 1st PC
> pc1=t(pZ$rotation %*% t(pZ$x) )
> # center and show
> lines(pc1 + t(t(rep(1,123))) %*% c)

当您了解在Excel回归中变量不相等时,从Excel获得的趋势线与从PCA获得的特征向量是常识。在这里,您要最小化到的垂直距离,其中y轴是纬度,x轴是经度。 y x iyiy(xi)

是否要平等对待变量取决于目标。这不是数据的固有质量。您必须选择正确的统计工具来分析数据,在这种情况下,请在回归和PCA之间进行选择。

对未提出的问题的答案

那么,为什么在您的情况下,Excel中的(回归)趋势线似乎不适合您的情况?原因是趋势线是对未提出问题的答案。这就是为什么。

Excel回归试图估算线的参数。因此,第一个问题是,严格地说,纬度甚至不是经度的函数(请参阅文章末尾的注释),甚至不是主要问题。真正的麻烦是,您甚至对滑翔伞的位置都不感兴趣,而对风感兴趣。lat=a+b×lon

想象没有风。滑翔伞将一遍又一遍地绕同一圈。趋势线是什么?显然,这将是一条水平的水平线,其斜率将为零,但这并不意味着风在水平方向上吹!

这是一个模拟图,用于说明y轴上有强风而滑翔伞正在形成完美的圆。您可以看到线性回归如何产生无意义的结果,即水平趋势线。实际上,它甚至略有负面,但意义不大。风向以红线显示:yx

在此处输入图片说明

用于仿真的R代码:

t=1:123
a=1 #1
b=0 #1/10
y=10*sin(t)+a*t
x=10*cos(t)+b*t

plot(x,y,xlim=c(-60,60))
xp=-60:60
lines(b*t,a*t,col='red')

model=lm(y~x)
lines(xp,xp*model$coefficients[2]+model$coefficients[1])

因此,风的方向显然根本不与趋势线对齐。它们是相互联系的,但是以一种不平凡的方式。因此,我的陈述是Excel趋势线是对某个问题的解答,而不是您所提出的问题。

为什么选择PCA?

如您所述,滑翔伞的运动至少包含两个部分:风的漂移和滑翔伞控制的圆周运动。当您连接绘图上的点时,可以清楚地看到:

在此处输入图片说明

一方面,圆周运动对您来说确实是一件令人讨厌的事:您对风很感兴趣。尽管另一方面,您没有观察到风速,而仅观察到了滑翔伞。因此,您的目标是从可观察的滑翔伞的位置读数推断出不可观察的风。这正是因素分析和PCA之类的工具可能有用的情况。

PCA的目的是通过分析输出中的相关性来隔离确定多个输出的几个因素。当输出与线性因子成线性关系时(这恰好在您的数据中)是有效的:风漂只是增加了圆周运动的坐标,这就是PCA在这里工作的原因。

PCA设置

因此,我们确定PCA应该在这里有机会,但是我们将如何实际设置它呢?让我们开始添加第三个变量,时间。假设采样频率恒定,我们将为每个123个观测值分配时间1到123。这是3D图看起来像数据的样子,揭示了其螺旋结构:

在此处输入图片说明

下一个图将滑翔伞的假想旋转中心显示为棕色圆圈。您会看到它在风中在Latlon平面上如何漂移,同时带有蓝色圆点的滑翔伞在它周围盘旋。时间在垂直轴上。我将旋转中心连接到滑翔伞的相应位置,仅显示前两个圆圈。

在此处输入图片说明

相应的R代码:

library(plotly)       

 para <- read.csv("C:/Users/akuketay/Downloads/para.csv")
 n=24

   para$t=1:123 # add time parameter

   # run PCA
     pZ3=prcomp(para)
     c3=colMeans(para) # PCA was centered
     # look at PCs in columns
       pZ3$rotation

       # get the imaginary center of rotation 
       pc31=t(pZ3$rotation[,1] %*% t(pZ3$x[,1]) )
     eye = pc31 + t(t(rep(1,123))) %*% c3
     eyedata = data.frame(eye)

     p = plot_ly(x=para[1:n,1],y=para[1:n,2],z=para[1:n,3],mode="lines+markers",type="scatter3d") %>%
       layout(showlegend=FALSE,scene=list(xaxis = list(title = 'lat'),yaxis = list(title = 'lon'),zaxis = list(title = 't'))) %>%
     add_trace(x=eyedata[1:n,1],y=eyedata[1:n,2],z=eyedata[1:n,3],mode="markers",type="scatter3d") 
     for( i in 1:n){
         p = add_trace(p,x=c(eyedata[i,1],para[i,1]),y=c(eyedata[i,2],para[i,2]),z=c(eyedata[i,3],para[i,3]),color="black",mode="lines",type="scatter3d")
       }

subplot(p)

滑翔伞旋转中心的漂移主要是由风引起的,并且漂移的路径和速度与风的方向和速度相关,这是令人关注的变量。这是投影到纬线平面时的样子:

在此处输入图片说明

PCA回归

因此,我们早些时候确定常规线性回归在这里似乎不太好用。我们还弄清了原因:因为它不能反映基本过程,因为滑翔伞的运动是高度非线性的。它是圆周运动和线性漂移的结合。我们还讨论了在这种情况下,因子分析可能会有所帮助。以下是对该数据建模的一种可能方法的概述:PCA回归。但是首先,我将向您展示PCA回归拟合曲线:

在此处输入图片说明

这已经获得如下。如前所述,在具有额外列t = 1:123的数据集上运行PCA。您将获得三个主要组成部分。第一个就是t。第二个对应于lon列,第三个对应于lat列。

我将后两个主要成分拟合为形式的变量,其中是从成分的频谱分析中提取的。它们碰巧具有相同的频率但相位不同,考虑到圆周运动,这不足为奇。ω φasin(ωt+φ)ω,φ

而已。要获得拟合值,您可以通过将PCA旋转矩阵的转置插入预测的主成分来从拟合的组件中恢复数据。我上面的R代码显示了该过程的一部分,其余的您可以轻松弄清楚。

结论

有趣的是,当涉及到基本过程稳定且输入通过线​​性(或线性化)关系转换为输出的物理现象时,PCA和其他简单工具的功能多么强大。因此,在我们的情况下,圆周运动是非常非线性的,但是我们可以通过在时间t参数上使用正弦/余弦函数轻松地将其线性化。如您所见,我的绘图仅用几行R代码生成。

回归模型应该反映基础过程,然后只有您可以期望其参数有意义。如果这是一个随风飘扬的滑翔伞,那么像原始问题中那样的简单散点图将隐藏该过程的时间结构。

同样,Excel回归是一种横截面分析,对于该分析,线性回归最有效,而您的数据是时间序列过程,其中观察按时间排序。时间序列分析必须在这里应用,并且它是在PCA回归中完成的。

功能说明

由于滑翔伞正在绕圈,因此将有多个纬度对应于一个经度。在数学中,函数将值映射到单个值。这是多对一的关系,这意味着多个可能与对应,但没有多个与一个对应。严格来讲,这就是为什么不是函数。x y x y y x l a t = f l o n y=f(x)xyxyyxlat=f(lon)


11
很好地抓住了螺旋结构!有两个侧面注释:使用作为替代参数设置更容易。在很多情况下,我们选择对一个周期进行平均,而该周期与主要问题无关或无关。a sin ωt+b cos ωt
尼克·考克斯

11
是否要平等对待它们取决于目标。这不是数据的固有质量。-优势和+1。
理查德·哈迪

@NickCox,是的,它的工作量也将减少
Aksakal

可能值得指出的是,PCA是主轴回归到变量> 2的情况的一般化。但是由于在这种情况下只有2个变量,因此该技术的标准名称是主轴回归(有时也称为正交回归或II型回归)。
Tom Wenseleers

61

答案可能与您如何判断距回归线的距离有关。标准(类型1)回归使平方误差最小化,其中误差是根据与直线的垂直距离计算的。

2型回归可能更类似于您对最佳路线的判断。其中,最小化平方误差是到直线的垂直距离。这种差异有很多后果。一个重要的问题是,如果在绘图中交换X轴和Y轴并重新拟合线,则将在类型1回归的变量之间获得不同的关系。对于类型2回归,关系保持不变。

我的印象是,关于在哪里使用Type 1回归与Type 2回归存在很多争论,因此我建议在决定应用哪种回归之前应仔细阅读有关差异。如果一个轴是通过实验控制的,或者至少以比另一个误差小的误差测量的轴,则通常建议使用1型回归。如果不满足这些条件,则类型1回归将使斜率偏向0,因此建议使用类型2回归。然而,在两个轴上都有足够的噪声的情况下,类型2的回归显然倾向于将它们偏向1。Warton 等。(2006年)和史密斯(2009年)是理解辩论的良好来源。

还要注意,在类型2回归的广义分类(长轴,精简长轴和标准长轴回归)中有几种微妙的不同方法,并且有关特定方法的术语不一致。

Warton,DI,IJ Wright,DS Falster和M.Westoby。2006。用于异度测量的双变量线拟合方法。生物学 修订版 81:259-291。doi:10.1017 / S1464793106007007

Smith,RJ2009。关于减少和减少用于装配线的主轴的使用。上午。J.物理 Anthropol。140:476–486。doi:10.1002 / ajpa.21090


编辑

@amoeba指出,我在上面所说的Type 2回归也称为正交回归。这可能是更合适的术语。就像我在上面说过的,这方面的术语是不一致的,需要特别注意。


19
关于使用1型还是2型的争论?当您知道目标(目标函数或损失函数)是什么时,没有什么可争论的。如果不是这样,那么您应该在继续之前进行澄清。
理查德·哈迪

7
如果两个轴使用不同的单位,则类型2也会产生无意义的结果。
John Dvorak

4
您正在使用“类型1”和“类型2”,就好像它们是标准术语一样。是吗 我从来没有一个人称呼普通回归和正交回归为“类型1”和“类型2”。
变形虫

2
@RichardHardy当然,阐明一个人的特定目标是最好的。但是,正如我在回答中所说,我的印象是,有关它们在部分案例中的用法的争论一直在持续-我引用的那些论文(以及我不断从审稿人那里得到的相互矛盾的建议)似乎都证明了这一点。
mkt

3
@mkt,感谢您的澄清。确实,在不确定所追求的人们之间可能会有一些辩论。在那里,辩论的重点是两者中的哪一个与他们的主题目标更相关。我要强调的是,一旦您的目标得到明确定义,即将主题目标翻译为统计语言(如果要使用统计方法,这是不可避免的),就不会有争论。所以我想我们同意,我们只是在强调论证的不同部分。
理查德·哈迪

31

Excel试图回答的问题是:“假设y依赖于x,则该行最能预测y”。答案是,由于y的巨大差异,没有一行可能特别好,并且Excel显示的内容是您能做的最好的。

如果你把你的建议的红线,并继续你它为x = -0.714和X = -0.712,你会发现,它的值是方式,方法关闭图表,它是一个巨大的由相应的y值距离。

Excel回答的问题不是“哪条线最接近数据点”,而是“哪条线最好从x值预测y值”,并且它可以正确地做到这一点。


4
究竟。基本假设是“给定x,y被测量/预测”。
弗洛里斯

12

我不想在其他答案中添加任何内容,但是我想说的是,您被错误的术语误入歧途,特别是在某些统计学课程中使用的“最合适的线”一词。

直观地,“最合适的线”看起来像您的红线。但是Excel生成的行不是“最合适的行”;它甚至没有试图成为。这条线回答了这个问题:给定x的值,对y的最佳预测是什么?或者,每个x值的平均y值是多少?

注意这里的x和y之间的不对称性;使用“最合适的线”这个名称可以解决此问题。Excel对“趋势线”的使用也是如此。

在以下链接中对此进行了很好的解释:

https://www.stat.berkeley.edu/~stark/SticiGui/Text/regression.htm

您可能想要类似上面答案中的“类型2”或伯克利统计课程页面中的“ SD线”之类的东西。


11

光学问题的一部分来自不同的标尺-如果在两个轴上使用相同的标尺,则外观将已经不同。

换句话说,通过扩展一个轴的比例尺,可以使大多数这样的“最佳拟合”线看起来“不直观”。


1
我同意这是答案-值的X范围大约为0.02宽,但Y范围仅大约为0.005-实际上,图表的宽度应该是高度的4倍,很明显最合适的是水平的。由于尺度不同,问题中的现象纯属视觉。
RemcoGerlich

3
@RemcoGerlich我们可以同意,如问题所示,图形的纵横比没有帮助。但是建议您需要一个图形宽度是图形宽度的4倍的图形,因为数值范围在该比例之内是不可行的,而且当然不是事实。如果任一轴上的单位更改了1000倍,您是否建议长宽比为4000或0.004?4倍比率可能只是不同单位的副作用。
尼克·考克斯

4
其他答案给出正确答案。可悲的是没有这一点。如果我们重新调整值的大小,以使我们获得相同的视觉图像,但轴数相等,则仍然是“类型1”与“类型2”的拟合问题。
汉斯·詹森

1
他谈到最合适的“常识”,“对人眼而言”是正确的。然后,轴的缩放是最重要的。
RemcoGerlich

他有一点要说,有时看起来很直观的东西会受到诸如缩放等愚蠢事物的影响,尽管这种情况并非如此。在这里,我们在excel的功能和OP的要求之间存在真正的不匹配
Aksakal,

4

一些人已经注意到问题是视觉上的-采用的图形缩放会产生误导性信息。更具体地说,“ lon”的缩放比例看起来像是一个紧密的螺旋形,这表明回归线提供的拟合度很差(我同意的评估是,如果数据以呈现的方式成形)。

下面,我提供了一个在Excel中创建的散点图,更改了“ lon”的比例,因此它不会在散点图中产生紧密的螺旋。通过此更改,回归线现在提供了更好的视觉拟合,我认为这有助于证明原始散点图中的缩放比例如何提供对拟合的误导性评估。

我认为回归在这里效果很好。我认为不需要进行更复杂的分析。

在此处输入图片说明

对于任何感兴趣的人,我已经使用映射工具绘制了数据并显示了拟合数据的回归。红点是记录的数据,绿点是回归线。

在此处输入图片说明

这是散点图中带有回归线的相同数据;在这里,纬度被视为相关因素,纬度分数则被反转以符合地理特征。

在此处输入图片说明


1
回归并没有显示风向的偏移
阿克萨卡(Aksakal)'18

我们只知道经纬度,对于提供的数据,它确实显示了一个相对于另一个的变化。
布赖恩

那么,这个趋势线意味着什么呢?
阿克萨卡尔州

假设数据文件中的第一个点是起始位置,则向东行驶的路线似乎向北略有增加。该数据没有提供有关风强度或高度的信息,但提供了方向-东经北。
布莱恩

更正后,我使用的制图软件要求纬度,但是他的数据是纬度,因此风向将由东向北略微移动,即,向北移动的幅度较小,即有东风(或者,向南移动的幅度较小,是西风)旅行)。
布莱恩

1

您会混淆普通最小二乘(OLS)回归(这将使关于预测值的平方差的总和最小化,(观察到的预测值)^ 2)和主轴回归(这使各点和点之间的垂直距离的平方和最小化)回归线,有时也称为II型回归,正交回归或标准化主成分回归)。

如果您只想在R中比较这两种方法,请签出

data=read.csv("https://pastebin.com/raw/4TsstQYm")
require(lmodel2)
fit = lmodel2(lat ~ lon, data=data)
plot(fit,method="OLS") # ordinary least squares regression

在此处输入图片说明

plot(fit,method="MA") # major axis regression

在此处输入图片说明

您发现最直观的(红线)只是主轴回归,从视觉上看确实是最合逻辑的,因为它使与点的垂直距离最小化。如果x和y变量具有相同的测量范围和/或具有相同的误差量,则OLS回归只会显示到点的垂直距离最小化(您可以根据毕达哥拉斯定理简单地看到这一点)。在您的情况下,您的y变量在其上的分布范围更大,因此区别在于...


0

PCA答案是最好的,因为我认为这是给定问题描述后应该做的事情,但是PCA答案可能会使PCA和回归混淆,这是完全不同的事情。如果要外推此特定数据集,则需要进行回归,并且可能要进行Deming回归(我想有时会归因于Type II,从未听说过此描述)。但是,如果要找出最重要的方向(特征向量)并确定其对数据集的相对影响(特征值),则PCA是正确的方法。


4
这主要是对其他答案的一系列评论。最好直接对每个评论。我看不到@Aksakal的答案完全混淆了PCA和回归。
尼克·考克斯

我想直接发表评论,但信誉不够。我不认为Aksakal会使回归混淆,但是值得向OP指出PCA和回归完全不同。
安德鲁H
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.