[R] weighted regression inside FOREACH loop

Bos, Roger roger.bos at rothschild.com
Fri Oct 7 15:24:31 CEST 2016


I have a foreach loop that runs regressions in parallel and works fine, but when I try to add the weights parameter to the regression the coefficients don’t get stored in the “models” variable like they are supposed to.  Below is my reproducible example:

library(doParallel)
cl <- makeCluster(4)
registerDoParallel(cl)
fmla <- as.formula("y ~ .")
models <- foreach(d=1:10, .combine=rbind, .errorhandling='remove') %dopar% {
  datdf <- data.frame(y = 1:100+2*rnorm(100), x = 1:100+rnorm(100))
  weights <- rep(c(1,2), 50)
  mod <- lm(fmla, data=datdf, weights=weights)
  #mod <- lm(fmla, data=datdf)
  return(mod$coef)
}
models

You can change the commenting on the two “mod <-“ lines to see that the non-weighted one works and the weighted regression doesn’t work.  I tried using .export="weights" in the foreach line, but R says that weights is already being exported.

Thanks in advance for any suggestions.





***************************************************************
This message and any attachments are for the intended recipient's use only.
This message may contain confidential, proprietary or legally privileged
information. No right to confidential or privileged treatment
of this message is waived or lost by an error in transmission.
If you have received this message in error, please immediately
notify the sender by e-mail, delete the message, any attachments and all
copies from your system and destroy any hard copies.  You must
not, directly or indirectly, use, disclose, distribute,
print or copy any part of this message or any attachments if you are not
the intended recipient.



More information about the R-help mailing list