dmr | R Documentation |
Gamma-lasso path estimation for a multinomial logistic regression factorized into independent Poisson log regressions.
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"), ...)
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 |
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
x_{ij} \sim Po(exp[μ_i + α_j + β v_i ]).
We [default] plug-in estimate \hatμ_i = log(m_i), where m_i = ∑_j x_{ij} and p is the dimension of x_i. 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.
dmr
returns the dmr
s3 object: an ncol(counts)
-length list of fitted gamlr
objects, with the added attributes nlambda
, mu
, and nobs
.
Matt Taddy mataddy@gmail.com
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
dmrcoef-class
, cv.dmr
, AICc
, and the gamlr
and textir
packages.
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")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.