如何找到残差并绘制它们


14

我得到了数据

x = c(21,34,6,47,10,49,23,32,12,16,29,49,28,8,57,9,31,10,21,26,31,52,21,8,18,5,18,26,27,26,32,2,59,58,19,14,16,9,23,28,34,70,69,54,39,9,21,54,26)
y = c(47,76,33,78,62,78,33,64,83,67,61,85,46,53,55,71,59,41,82,56,39,89,31,43,29,55, 
     81,82,82,85,59,74,80,88,29,58,71,60,86,91,72,89,80,84,54,71,75,84,79)

如何获得残差并将其与作图x?以及我如何测试残差看起来是否近似正常?

我不确定我是否正确完成了原始线性拟合,因为我得到了方程但讲义指出线性回归线的形式应为。y=6.9x5.5yi=β0+β1x+ϵ


您正在使用哪个包?例如,Matlab的“回归”函数将残差作为输出返回,您可以使用直方图进行绘制
BGreene

我正在使用Sagemath。我也可以通过它来使用R,但是我经验很少。
来宾

关于您那里的两个等式。如果回归线(作为线性函数)的形式为则线性模型为E [ Y | X ] = a + k X,使用误差项,这是Y = a + k X + ϵ其中ϵ是期望为零的误差项。这就是两个方程式拟合在一起的意义。y=a+kxE[Y|X]=a+kXY=a+kX+ϵϵ
2013年

1
你得到的公式在笔记中提到的形式,用^ β 1 = 6.9。残差只是ř = ÿ ÿ - ÿ = Ý - - 5.5 + 6.9 X β0^=5.5β1^=6.9ri=yyy^i=yi(5.5+6.9xi)
Glen_b -Reinstate莫妮卡

Answers:


28

编辑:您有一个R标签,但是在评论中说您对此并不了解。这是R代码。我对Sage一无所知。结束编辑

你可以这样做

x = c(21,34,6,47,10,49,23,32,12,16,29,49,28,8,57,9,31,10,21,
      26,31,52,21,8,18,5,18,26,27,26,32,2,59,58,19,14,16,9,23,
      28,34,70,69,54,39,9,21,54,26)
y = c(47,76,33,78,62,78,33,64,83,67,61,85,46,53,55,71,59,41,82,
      56,39,89,31,43,29,55, 81,82,82,85,59,74,80,88,29,58,71,60,
      86,91,72,89,80,84,54,71,75,84,79)

m1 <- lm(y~x)  #Create a linear model
resid(m1) #List of residuals
plot(density(resid(m1))) #A density plot
qqnorm(resid(m1)) # A quantile normal plot - good for checking normality
qqline(resid(m1))

+1 @guest,上面的代码用于R,可免费获得
BGreene

好的。因此,我看到了带有字幕密度的图片。default(x = resid(m1))。该代码应该输出两个图形吗?我应该从图表中检查残差看起来是否近似正常吗?
来宾

该代码将输出两个图形-一个是密度图(看起来像钟形吗?)另一个是分位数图;如果残差完全正常,则这些点都将位于直线上。
彼得·弗洛姆

对。如果将最后一行更改为plot(qqnorm(resid(m1)))和plot(qqline(resid(m1))),则代码会起作用。因此,我认为残差不满足正态分布,因为线下的点比线下的点远。是否有任何数字标准可以检查正态性?
来宾
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.