Weird SEs with effect()
Dear John & Brian, Ok. Now I start to understand. So basically I cannot use the given SEs for my purposes. They only make sense on the scale of log-counts. However in a paper, the log-count scale is not very informative (the reader want to see the effect on the scale you measure). If I understand you right, the confidence intervals are fine though and maybe I will use them to illustrate the reliability of the estimate. The problem is that showing SEs of the adjusted means has become sort of the standard way to illustrate things in my field (too many SAS users ?) and I might run into trouble with the reviewers. I have several data sets with similar data and my plan was to use effect(). That is why I want to figure this out. I hope I haven't been too annoying ;). Finally, is there a way to get correct SEs on the count scale (with adjusted means)?? I guess not, judging by your answers. Thanks again for your help, Gustaf
John Fox wrote:
Dear Gustaf,
-----Original Message-----
From: Gustaf Granath [mailto:gustaf.granath at ebc.uu.se]
Sent: February-17-08 4:18 PM
To: John Fox
Cc: 'Prof Brian Ripley'; r-help at r-project.org
Subject: RE: [R] Weird SEs with effect()
Dear John and Brian,
Thank you for your help. I get the feeling that it is something
fundamental that I do not understand here. Furthermore, a day of
reading did not really help so maybe we have reached a dead end here.
Nevertheless, here comes one last try.
I thought that the values produced by effect() were logs (e.g. in
$fit). And then they were transformed (antilogged) with summary(). Was
I wrong?
I'm sorry that you're continuing to have problems with this. Yes, there is a point that you don't understand: The SEs are on the scale of the log-counts, but you can't get correct SEs on the scale of the counts by exponentiating the SEs on the scale of the log-counts. What summary(), etc., do (and you can do) to produce confidence intervals on the count scale is first to compute the intervals on the log-count scale and then to transform the end-points. I'm afraid that I can't make the point more clearly than that. I hope this helps, John
What I want:
I am trying to make a barplot with adjusted means with SEs (error
bars), with the y axis labeled on the response scale.
#One of my GLM models (inf.level & def.level=factors, initial.size =
covariate) #used as an example.
#I was not able to make a reproducible example though. Sorry.
model <-
glm(tot.fruit~initial.size+inf.level+def.level,family=quasipoisson)
summary(model)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.9368528 0.1057948 18.308 < 2e-16 ***
initial.size 0.0015245 0.0001134 13.443 < 2e-16 ***
inf.level50 -0.3142688 0.0908063 -3.461 0.000612 ***
def.level12.5 -0.2329221 0.1236992 -1.883 0.060620 .
def.level25 -0.1722354 0.1181993 -1.457 0.146062
def.level50 -0.3543826 0.1212906 -2.922 0.003731 **
(Dispersion parameter for quasipoisson family taken to be 6.431139)
Null deviance: 2951.5 on 322 degrees of freedom
Residual deviance: 1917.2 on 317 degrees of freedom
library(effects)
def <- effect("def.level",model,se=TRUE)
summary(def)
$effect
def.level
0 12.5 25 50
11.145382 8.829541 9.381970 7.819672
$lower
def.level
0 12.5 25 50
9.495220 7.334297 7.867209 6.467627
$upper
def.level
0 12.5 25 50
13.08232 10.62962 11.18838 9.45436
#Confidence intervals makes sense and are in line with the glm model
result. Now #lets look at the standard errors. Btw, why aren't they
given with summary?
def$se
324 325 326 327
0.08144281 0.09430438 0.08949864 0.09648573
# As you can see, the SEs are very very very small.
#In a graph it would look weird in combination with the glm result.
#I thought that these values were logs. Thats why I used exp() which
seems to be wrong.
Regards,
Gustaf
Quoting John Fox <jfox at mcmaster.ca>:
Dear Brian and Gustaf,
I too have a bit of trouble following what Gustaf is doing, but I
think that
Brian's interpretation -- that Gustaf is trying to transform the
standard
errors via the inverse link rather than transforming the ends of the
confidence intervals -- is probably correct. If this is the case,
then what
Gustaf has done doesn't make sense.
It is possible to get standard errors on the scale of the response
(using,
e.g., the delta method), but it's probably better to work on the
scale of
the linear predictor anyway. This is what the summary, print, and
plot
methods in the effects package do (as is documented in the help files
for
the package -- see the transformation argument under ?effect and the
type
argument under ?summary.eff). Regards, John -------------------------------- John Fox, Professor Department of Sociology McMaster University Hamilton, Ontario, Canada L8S 4M4 905-525-9140x23604 http://socserv.mcmaster.ca/jfox
-----Original Message-----
From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk]
Sent: February-17-08 6:42 AM
To: Gustaf Granath
Cc: John Fox; r-help at r-project.org
Subject: Re: [R] Weird SEs with effect()
On Sun, 17 Feb 2008, Gustaf Granath wrote:
Hi John,
In fact I am still a little bit confused because I had read the
?effect help and the archives.
?effect says that the confidence intervals are on the linear
predictor
scale as well. Using exp() on the untransformed confidence
intervals
gives me the same values as summary(eff). My confidence intervals
seems to be correct and reflects the results from my glm models.
But when I use exp() to get the correct SEs on the response scale
I
get SEs that sometimes do not make sense at all. Interestingly I
have
What exactly are you doing here? I suspect you are not using the
correct
formula to transform the SEs (you do not just exponeniate them), but
without the reproducible example asked for we cannot tell.
found a trend. For my model with adjusted means ~ 0.5-1.5 I get
huge
SEs (SEs > 1, but my glm model shows significant differences
between
level 1 = 0.55 and level 2 = 1.15). Models with means around 10-20
my
SEs are fine with exp(). Models with means around 75-125 my SEs
get
way too small with exp().
Something is not right here (or maybe they are but I don not
understand it) so I think my best option will be to use the
confidence
intervals instead of SEs in my plot.
If you want confidence intervals, you are better off computing those
on
a
reasonable scale and transforming then. Or using a profile
likelihood
to
compute them (which will be equivariant under monotone scale
transformations).
Regards,
Gustaf
Quoting John Fox <jfox at mcmaster.ca>:
Dear Gustaf,
From ?effect, "se: a vector of standard errors for the effect, on
the scale
of the linear predictor." Does that help? Regards, John -------------------------------- John Fox, Professor Department of Sociology McMaster University Hamilton, Ontario, Canada L8S 4M4 905-525-9140x23604 http://socserv.mcmaster.ca/jfox
-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
project.org] On Behalf Of Gustaf Granath
Sent: February-16-08 11:43 AM
To: r-help at r-project.org
Subject: [R] Weird SEs with effect()
Hi all,
Im a little bit confused concerning the effect() command,
effects
package.
I have done several glm models with family=quasipoisson:
model <-glm(Y~X+Q+Z,family=quasipoisson)
and then used
results.effects <-effect("X",model,se=TRUE)
to get the "adjusted means". I am aware about the debate
concerning
adjusted means, but you guys just have to trust me - it makes
sense
for me.
Now I want standard error for these means.
results.effects$se
gives me standard error, but it is now it starts to get
confusing.
The
given standard errors are very very very small - not realistic.
I
thought that maybe these standard errors are not back
transformed
so I
used exp() and then the standard errors became realistic.
However,
for
one of my glm models with quasipoisson the standard errors make
kind
of sense without using exp() and gets way to big if I use exp().
To
be
honest, I get the feeling that Im on the wrong track here.
Basically, I want to know how SE is calculated in effect() (all
I
know
is that the reported standard errors are for the fitted values)
and
if
anyone knows what is going on here. Regards, Gustaf Granath
______________________________________________
-