dmr {distrom} | R Documentation |
Distributed Multinomial Regression
Description
Gamma-lasso path estimation for a multinomial logistic regression factorized into independent Poisson log regressions.
Usage
dmr(cl, covars, counts, mu=NULL, bins=NULL, verb=0, cv=FALSE, ...)
## S3 method for class 'dmr'
coef(object, ...)
## S3 method for class 'dmr'
predict(object, newdata,
type=c("link","response","class"), ...)
Arguments
cl |
A |
covars |
A dense |
counts |
A dense |
mu |
Pre-specified fixed effects for each observation in the Poisson regression linear equation. If |
bins |
Number of bins into which we will attempt to collapse each column of |
verb |
Whether to print some info. |
cv |
A flag for whether to use |
type |
For |
newdata |
A Matrix with the same number of columns as |
... |
Additional arguments to |
object |
A |
Details
dmr
fits multinomial logistic regression by assuming that, unconditionally on the ‘size’ (total count across categories) each individual category count has been generated as a Poisson
We [default] plug-in estimate , where
and
is the dimension of
. Then each individual is outsourced to Poisson regression in the
gamlr
package via the parLapply
function of the parallel
library. The output from dmr
is a list of gamlr
fitted models.
coef.dmr
builds a matrix of multinomial logistic regression
coefficients from the length(object)
list of gamlr
fits. Default selection under cv=FALSE
uses an
information criteria via AICc
on Poisson deviance for each
individual response dimension (see gamlr
). Combined coefficients
across all dimensions are then returned as a dmrcoef
s4-class
object.
predict.dmr
takes either a dmr
or dmrcoef
object and returns predicted values for newdata
on the scale defined by the type
argument.
Value
dmr
returns the dmr
s3 object: an ncol(counts)
-length list of fitted gamlr
objects, with the added attributes nlambda
, mu
, and nobs
.
Author(s)
Matt Taddy mataddy@gmail.com
References
Taddy (2015 AoAS) Distributed Multinomial Regression
Taddy (2017 JCGS) One-step Estimator Paths for Concave Regularization, the Journal of Computational and Graphical Statistics
Taddy (2013 JASA) Multinomial Inverse Regression for Text Analysis
See Also
dmrcoef-class
, cv.dmr
, AICc
, and the gamlr
and textir
packages.
Examples
library(MASS)
data(fgl)
## make your cluster
## FORK is faster but memory heavy, and doesn't work on windows.
cl <- makeCluster(2,type=ifelse(.Platform$OS.type=="unix","FORK","PSOCK"))
print(cl)
## fit in parallel
fits <- dmr(cl, fgl[,1:9], fgl$type, verb=1)
## its good practice stop the cluster once you're done
stopCluster(cl)
## Individual Poisson model fits and AICc selection
par(mfrow=c(3,2))
for(j in 1:6){
plot(fits[[j]])
mtext(names(fits)[j],font=2,line=2) }
## AICc model selection
B <- coef(fits)
## Fitted probability by true response
par(mfrow=c(1,1))
P <- predict(B, fgl[,1:9], type="response")
boxplot(P[cbind(1:214,fgl$type)]~fgl$type,
ylab="fitted prob of true class")