Hi R-helpers, I was working with some count data using gamlss() and glm(), and noticed that the standard errors from the two functions correspond when extracting from either the model summary for both functions, or using vcov for both functions, but the standard errors between those methods do not correspond. I have been lead to believe that in SAS and Stata, the SEs do correspond between the different methods. Can anyone assist me in understanding what's different between the two types of SEs I seem to be encountering when using R with either glm or gamlss? I feel like I'm missing something obvious. I have included a small reproducible example below. library(COUNT) # for myTable() library(gamlss) len<-50 seeder<-250 set.seed(seeder) # reproducible example dat<-rpois(c(1:len), lambda=2) myTable(dat) fac<-gl(n=2, k=1, length=len, labels = c("control","treat")) # Fit gamlss() and glm() models fit1<-gamlss(dat~fac, family="PO") fit2<-glm(dat~fac, family="poisson") # Extract SEs from model summaries SESum1<-summary(fit1)[,"Std. Error"] SESum2<-coef(summary(fit2))[,"Std. Error"] cbind(SESum1, SESum2) # Corresponds # Extract SEs via vcov() SEvcov1<-exp(coef(fit1)) *sqrt(diag(vcov(fit1))) SEvcov2<-exp(coef(fit2))*sqrt(diag(vcov(fit2))) cbind(SEvcov1, SEvcov2) # Corresponds # Compare between summary() and vcov() extraction. Missmatch. cbind(SESum1, SEvcov1)
Peter Dalgaard
2018-Jul-04 10:11 UTC
[R] gamlss() vs glm() standard errors via summary() vs vcov()
> # Extract SEs via vcov() > SEvcov1<-exp(coef(fit1)) *sqrt(diag(vcov(fit1))) > SEvcov2<-exp(coef(fit2))*sqrt(diag(vcov(fit2)))What makes you think that you need to multiply with exp(coef(....)) here??? -pd> On 4 Jul 2018, at 11:08 , 1/k^c <kchamberln at gmail.com> wrote: > > Hi R-helpers, > > I was working with some count data using gamlss() and glm(), and > noticed that the standard errors from the two functions correspond > when extracting from either the model summary for both functions, or > using vcov for both functions, but the standard errors between those > methods do not correspond. I have been lead to believe that in SAS and > Stata, the SEs do correspond between the different methods. Can anyone > assist me in understanding what's different between the two types of > SEs I seem to be encountering when using R with either glm or gamlss? > I feel like I'm missing something obvious. I have included a small > reproducible example below. > > library(COUNT) # for myTable() > library(gamlss) > len<-50 > seeder<-250 > set.seed(seeder) # reproducible example > dat<-rpois(c(1:len), lambda=2) > myTable(dat) > fac<-gl(n=2, k=1, length=len, labels = c("control","treat")) > > # Fit gamlss() and glm() models > fit1<-gamlss(dat~fac, family="PO") > fit2<-glm(dat~fac, family="poisson") > > # Extract SEs from model summaries > SESum1<-summary(fit1)[,"Std. Error"] > SESum2<-coef(summary(fit2))[,"Std. Error"] > cbind(SESum1, SESum2) # Corresponds > > # Extract SEs via vcov() > SEvcov1<-exp(coef(fit1)) *sqrt(diag(vcov(fit1))) > SEvcov2<-exp(coef(fit2))*sqrt(diag(vcov(fit2))) > cbind(SEvcov1, SEvcov2) # Corresponds > > # Compare between summary() and vcov() extraction. Missmatch. > cbind(SESum1, SEvcov1) > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.-- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
Thank you, Peter! Sincerely, KeithC. On Wed, Jul 4, 2018 at 4:11 AM, Peter Dalgaard <pdalgd at gmail.com> wrote:>> # Extract SEs via vcov() >> SEvcov1<-exp(coef(fit1)) *sqrt(diag(vcov(fit1))) >> SEvcov2<-exp(coef(fit2))*sqrt(diag(vcov(fit2))) > > What makes you think that you need to multiply with exp(coef(....)) here??? > > -pd > >> On 4 Jul 2018, at 11:08 , 1/k^c <kchamberln at gmail.com> wrote: >> >> Hi R-helpers, >> >> I was working with some count data using gamlss() and glm(), and >> noticed that the standard errors from the two functions correspond >> when extracting from either the model summary for both functions, or >> using vcov for both functions, but the standard errors between those >> methods do not correspond. I have been lead to believe that in SAS and >> Stata, the SEs do correspond between the different methods. Can anyone >> assist me in understanding what's different between the two types of >> SEs I seem to be encountering when using R with either glm or gamlss? >> I feel like I'm missing something obvious. I have included a small >> reproducible example below. >> >> library(COUNT) # for myTable() >> library(gamlss) >> len<-50 >> seeder<-250 >> set.seed(seeder) # reproducible example >> dat<-rpois(c(1:len), lambda=2) >> myTable(dat) >> fac<-gl(n=2, k=1, length=len, labels = c("control","treat")) >> >> # Fit gamlss() and glm() models >> fit1<-gamlss(dat~fac, family="PO") >> fit2<-glm(dat~fac, family="poisson") >> >> # Extract SEs from model summaries >> SESum1<-summary(fit1)[,"Std. Error"] >> SESum2<-coef(summary(fit2))[,"Std. Error"] >> cbind(SESum1, SESum2) # Corresponds >> >> # Extract SEs via vcov() >> SEvcov1<-exp(coef(fit1)) *sqrt(diag(vcov(fit1))) >> SEvcov2<-exp(coef(fit2))*sqrt(diag(vcov(fit2))) >> cbind(SEvcov1, SEvcov2) # Corresponds >> >> # Compare between summary() and vcov() extraction. Missmatch. >> cbind(SESum1, SEvcov1) >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. > > -- > Peter Dalgaard, Professor, > Center for Statistics, Copenhagen Business School > Solbjerg Plads 3, 2000 Frederiksberg, Denmark > Phone: (+45)38153501 > Office: A 4.23 > Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com > > > > > > > > >