[R] Predicted values from glm() when linear predictor is NA.

Martin Maechler m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Tue Aug 2 09:10:43 CEST 2022

>>>>> Rolf Turner 
>>>>>     on Thu, 28 Jul 2022 14:19:49 +1200 writes:

    > On Wed, 27 Jul 2022 18:25:23 -0700 David Winsemius
    > <dwinsemius using comcast.net> wrote:

    > <SNIP>

    >> The NA is most likely caused by aliasing, so some other
    >> combination of factors a perfect surrogate for every case
    >> with that level of the interaction.

    > <SNIP>

    > No, I think it's much simpler than that.  Essentially it
    > boils down to the fact that if y is 1:10 and x is
    > rep(1,10) then

    >     lm(y ~ x)

    > gives a slope estimate of NA.  As it clearly should.

*and*  predict() should surely *not* be NA, either, right ??

You can easily confirm with

 x <- rep(1,7); y <- 1:7; summary(fm <- lm(y~x))

which gives all '4'  (= mean(y))

Note that this *is* aliasing:  x is aliased with the intercept,
and it fits entirely your situation:

If a predictor variable is superfluous, i.e., more precisely, a
column of the X design matrix is an exact linear combination of
previous columns,
prediction is no problem at all and gives exactly what you'd get
if you omit that superfluous column/variable.

Are you sure this is not simply your situation?

    > cheers,
    > Rolf

    > -- 
    > Honorary Research Fellow Department of Statistics
    > University of Auckland Phone: +64-9-373-7599 ext. 88276

More information about the R-help mailing list