我定义了两个变量x
和y
。我想在y
上回归x
,但使用lm
的残差总和不为零
以下是变量:
x<-c(1,10,6,4,3,5,8,9,0,3,1,1,12,6,3,11,15,5,10,4)
y<-c(2,3,6,7,8,4,2,1,0,0,6,1,3,5,2,4,1,0,1,9)
gh<-lm(y~x)
sum(gh$residuals)
# [1] 4.718448e-16
我不明白为什么残差总和不为零。 OLS的程序应该为零。
由于
答案 0 :(得分:2)
Floating-point numbers精度有限。只有一组有限的实数可以完全表示为32位或64位浮点数;其余部分通过将它们四舍五入到最接近可以完全表示的数字来近似。
这意味着,虽然在数学上残差应该总和为零,但在计算机表示中它们可能不会。
我强烈推荐What Every Computer Scientist Should Know About Floating-Point Arithmetic。