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

Andrew Robinson @pro @end|ng |rom un|me|b@edu@@u
Thu Jul 28 02:41:52 CEST 2022


Hi Rolf,

that's an interesting observation.

I agree that it is counter-intuitive that the fitted values / predictions are not NA.

However, I don't agree with your comment that <<if the linear predictor in a Binomial glm is NA, then "success" is a certainty>> - that seems to be a peculiarity of these data - note for these three observations there are thousands dead and zero alive and that you get similar outcomes if you omit TrtTime altogether ...

> predict(glm(cbind(Dead,Alive) ~ Lifestage, family=binomial,data=demoDat))[demoDat$Lifestage=="L1"]
 26 65 131
20.02007 20.02007 20.02007
>

Cheers,

Andrew

--
Andrew Robinson
Chief Executive Officer, CEBRA and Professor of Biosecurity,
School/s of BioSciences and Mathematics & Statistics
University of Melbourne, VIC 3010 Australia
Tel: (+61) 0403 138 955
Email: apro using unimelb.edu.au
Website: https://researchers.ms.unimelb.edu.au/~apro@unimelb/

I acknowledge the Traditional Owners of the land I inhabit, and pay my respects to their Elders.
On 28 Jul 2022, 10:27 AM +1000, Rolf Turner <r.turner using auckland.ac.nz>, wrote:
External email: Please exercise caution


I have a data frame with a numeric ("TrtTime") and a categorical
("Lifestage") predictor.

Level "L1" of Lifestage occurs only with a single value of TrtTime,
explicitly 12, whence it is not possible to estimate a TrtTime "slope"
when Lifestage is "L1".

Indeed, when I fitted the model

fit <- glm(cbind(Dead,Alive) ~ TrtTime*Lifestage, family=binomial,
data=demoDat)

I got:

as.matrix(coef(fit))
[,1]
(Intercept) -0.91718302
TrtTime 0.88846195
LifestageEgg + L1 -45.36420974
LifestageL1 14.27570572
LifestageL1 + L2 -0.30332697
LifestageL3 -3.58672631
TrtTime:LifestageEgg + L1 8.10482459
TrtTime:LifestageL1 NA
TrtTime:LifestageL1 + L2 0.05662651
TrtTime:LifestageL3 1.66743472

That is, TrtTime:LifestageL1 is NA, as expected.

I would have thought that fitted or predicted values corresponding to
Lifestage = "L1" would thereby be NA, but this is not the case:

predict(fit)[demoDat$Lifestage=="L1"]
26 65 131
24.02007 24.02007 24.02007

fitted(fit)[demoDat$Lifestage=="L1"]
26 65 131
1 1 1

That is, the predicted values on the scale of the linear predictor are
large and positive, rather than being NA.

What this amounts to, it seems to me, is saying that if the linear
predictor in a Binomial glm is NA, then "success" is a certainty.
This strikes me as being a dubious proposition. My gut feeling is that
misleading results could be produced.

Can anyone explain to me a rationale for this behaviour pattern?
Is there some justification for it that I am not currently seeing?
Any other comments? (Please omit comments to the effect of "You are as
thick as two short planks!". :-) )

I have attached the example data set in a file "demoDat.txt", should
anyone want to experiment with it. The file was created using dput() so
you should access it (if you wish to do so) via something like

demoDat <- dget("demoDat.txt")

Thanks for any enlightenment.

cheers,

Rolf Turner

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

	[[alternative HTML version deleted]]



More information about the R-help mailing list