mlogit and model-based recursive partitioning

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

mlogit and model-based recursive partitioning

tudor
Hello:

Has anyone tried to model-based recursive partition (using mob from package party; thanks Achim and colleagues) a data set based on a multinomial logit model (using mlogit from package mlogit; thanks Yves)?

I attempted to do so, but there are at least two reasons why I could not.  First, in mob I am not quite sure that a model of class StatModel exists for mlogit models.  Second, as mlogit uses the pipe character | to specify the model, I wonder how this would interact with mob which uses pipe to differentiate between explanatory and segmentation variables.

An example (not working) of what I would like to accomplish follows below.

Thanks a lot.
 
Tudor

library(party)
library(mlogit)
data("Fishing", package = "mlogit")
Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice = "mode")
# FIT AN mlogit MODEL
m1 <- mlogit(mode ~ price + catch, data=Fish)
# THE DESIRED END RESULT:  SEGMENT m1 BASED ON INCOME AND/OR OTHER POSSIBLE COVARIATES

Reply | Threaded
Open this post in threaded view
|

Re: mlogit and model-based recursive partitioning

Achim Zeileis-4
Tudor:

> Has anyone tried to model-based recursive partition (using mob from
> package party; thanks Achim and colleagues) a data set based on a
> multinomial logit model (using mlogit from package mlogit; thanks Yves)?

Interesting question: in principle, this is possible but I wouldn't know
of anyone who has tried this.

> I attempted to do so, but there are at least two reasons why I could
> not. First, in mob I am not quite sure that a model of class StatModel
> exists for mlogit models.  Second, as mlogit uses the pipe character |
> to specify the model, I wonder how this would interact with mob which
> uses pipe to differentiate between explanatory and segmentation
> variables.

This is one but not the only complication when trying to actually combine
mlogit and mob. I think the building blocks would have to be:

- Set up the data plus formula handling. As you point out, that would need
a three-part formula separating alternative-specific and subject-specific
regressors and partitioning variables. Furthermore you would probably need
to translate between the long format used by mlogit (subjects x
alternatives) to the wide format because mob would want to partition the
subjects.

- A StatModel object would be required. Personally, if I wanted to do it,
would try to set up the StatModel object on the fly (rather than predefine
it in a package) so that the StatModel creator can depend on the
formula/data. The formula/data processing described above can be done
inside the StatModel object.

- Finally, the required methods for the fitted model object would have to
be defined. In particular, the subject-specific gradients would be
required. I think currently, mlogit just provides the overall gradient.

So, in summary: It can be done but it would likely need more than just an
hour of coding...

hth,
Z

> An example (not working) of what I would like to accomplish follows below.
>
> Thanks a lot.
>
> Tudor
>
> library(party)
> library(mlogit)
> data("Fishing", package = "mlogit")
> Fish <- mlogit.data(Fishing, varying = c(2:9), shape = "wide", choice =
> "mode")
> # FIT AN mlogit MODEL
> m1 <- mlogit(mode ~ price + catch, data=Fish)
> # THE DESIRED END RESULT:  SEGMENT m1 BASED ON INCOME AND/OR OTHER POSSIBLE
> COVARIATES
>
>
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/mlogit-and-model-based-recursive-partitioning-tp4644743.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> [hidden email] mailing list
> 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.
>

______________________________________________
[hidden email] mailing list
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.
Reply | Threaded
Open this post in threaded view
|

Re: mlogit and model-based recursive partitioning

tudor
Hi Achim:

Excellent points.  Thank you so much for your prompt reply.

Tudor