(This article was first published on DiffusePrioR » R, and kindly contributed to R-bloggers)
A commenter on my previous blog entry has drawn my attention to an R function called hetglm() that estimates heteroskedastic probit models. This function is contained in the glmx package. The glmx package is not available on CRAN yet, but thankfully can be downloaded here.
The hetglm() function has a number of computational advantages compared with the crude method outlined in my previous post. The following example replicates the previous analysis showing the speed advantage associated with using the hetglm() function.
rm(list=ls()) # clear ws library(maxLik) library(glmx) n <- 1000 # no. obs x1 <- runif(n,-1,1) # predictor 1 x2 <- runif(n,-1,1) # " 2 e1 <- rnorm(n,0,1) # normal error e2 <- (1 + 0.45*(x1+x2))*e1 # hetero error y <- ifelse(0.5 + 0.5*x1 -0.5*x2 - e2 >0, 1, 0) # outcome # estimate normal probit r1 <- glm(y~x1+x2,family=binomial(link="probit")) system.time(ml1 <- maxLik(hll,start=c(0,0,0,0,0))) # maximize system.time(h1 <- hetglm(y ~ x1 + x2))
# output > system.time(ml1 <- maxLik(hll,start=c(0,0,0,0,0))) # maximize user system elapsed 4.43 0.00 4.59 > system.time(h1 <- hetglm(y ~ x1 + x2)) user system elapsed 0.11 0.00 0.11
To leave a comment for the author, please follow the link and comment on his blog: DiffusePrioR » R.
R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...

Zero Inflated Models and Generalized Linear Mixed Models with R.
Zuur, Saveliev, Ieno (2012).