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
Dear Gustaf,>From ?effect, "se: a vector of standard errors for the effect, on the scaleof 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 > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting- > guide.html > and provide commented, minimal, self-contained, reproducible code.
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 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. 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 >> >> ______________________________________________ >> R-help at r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide http://www.R-project.org/posting- >> guide.html >> and provide commented, minimal, self-contained, reproducible code. > >
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 haveWhat 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 >>> >>> ______________________________________________ >>> R-help at r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-help >>> PLEASE do read the posting guide http://www.R-project.org/posting- >>> guide.html >>> and provide commented, minimal, self-contained, reproducible code. >> >> > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
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?
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
>> >>>
>> >>> ______________________________________________
>> >>> R-help at r-project.org mailing list
>> >>> https://stat.ethz.ch/mailman/listinfo/r-help
>> >>> PLEASE do read the posting guide
http://www.R-project.org/posting-
>> >>> guide.html
>> >>> and provide commented, minimal, self-contained,
reproducible code.
>
Apparently Analagous Threads
- Strange results with anova.glm()
- Djjlölkjhfyn kb noknkkkkokljjyikkk hyjjjjjkjjjjkjkkpooololåååååååååååååååääääkkuiivjkoööklopipållällnbbbn mml ömmmm
- rstandard.glm() in base/R/lm.influence.R
- How to calculate GLM least square means?
- How to get two y-axises in a bar plot?