[R] stats::lm has inconsistent output when adding constant to dependent variable

Rui Barradas
2019-09-27T19:01:13Z

Hello,

Maybe FAQ 7.31?

Check the residuals, they are all "zero" in both cases:

fit0 <- lm(y~x)
fit1 <- lm(1+y~x)

# residuals
table(resid(fit0))
#
# 0
#30

table(resid(fit1))
#
#-5.21223595241838e-16 -4.93038065763132e-31  3.12734157145103e-15
#                    6                    23                     1


Hope this helps,

Rui Barradas

?s 18:05 de 27/09/19, David J. Birke escreveu:
> Dear R community,
>
> I just stumbled upon the following behavior in R version 3.6.0:
>
> set.seed(42)
> y <- rep(0, 30)
> x <- rbinom(30, 1, prob = 0.91)
> # The following will not show any t-statistic or p-value
> summary(lm(y~x))
> #? The following will show t-statistic and p-value
> summary(lm(1+y~x))
>
> My expected output is that the first case should report t-statistic and
> p-value. My intuition might be tricking me, but I think that a constant
> shift of the data should be fully absorbed by the constant and not
> affect inference about the slope.
>
> Is this a bug or is there a reason why there should be a discrepancy
> between the two outputs?
>
> Best,
> David