2 votes

erreur lors de l'utilisation de 'mlogit' dans R pour estimer des données de choix discret : argument 'times' invalide

J'obtiens cette erreur chaque fois que j'essaie d'exécuter un modèle logit mixte à l'aide de "mlogit" sur ces données, et je ne parviens pas à comprendre ce qui m'échappe. Il s'agit de données de choix discrets provenant d'une enquête conjointe sur les véhicules. Les données sont codées à l'aide du codage des effets. Voici comment je prépare les données pour mlogit :

DATA <- mlogit.data(data, id.var="id", shape="long", choice="choice", alt.var="alt")

> head(DATA)
    id Task alt Answer choice Price2 Price3 Price4 Price5 American Japanese
1.1  1    1   1      3  FALSE      0      0      1      0        0        0
1.2  1    1   2      3  FALSE      0      0      0      1        0        0
1.3  1    1   3      3   TRUE     -1     -1     -1     -1       -1       -1
2.1  1    2   1      1   TRUE     -1     -1     -1     -1        0        0
2.2  1    2   2      1  FALSE      0      1      0      0        1        0
2.3  1    2   3      1  FALSE      0      0      1      0        0        1
    Chinese SKorean HEV PHEV10 PHEV20 PHEV40 EV75 EV100 EV150 F20 F30 FNA s6
1.1       0       1   0      1      0      0    0     0     0   1   0   0  1
1.2       1       0   0      0      0      1    0     0     0   0   1   0 -1
1.3      -1      -1   0      0      0      0    1     0     0   0   0   1  1
2.1       1       0   0      1      0      0    0     0     0   0   1   0 -1
2.2       0       0   0      0      0      0    0     1     0   1   0   0  1
2.3       0       0   0      0      1      0    0     0     0  -1  -1  -1  0
    s10 eff2 eff3 eff4 accel2 accel3 accel4
1.1   0    0    0    1      1      0      0
1.2  -1   -1   -1   -1      0      0      1
1.3   0    1    0    0     -1     -1     -1
2.1  -1    0    1    0      1      0      0
2.2   0    0    1    0     -1     -1     -1
2.3   1   -1   -1   -1      0      1      0

Lorsque je l'exécute, voici l'erreur que j'obtiens :

> mixed.est <- mlogit(choice ~ Price2 + Price3 + Price4 + Price5 + American + Japanese + 
Chinese + SKorean + HEV + PHEV10 + PHEV20 + PHEV40 + EV75 + EV100 + EV150 + F20 + F30 +  
FNA + s6 + s10 + eff2 + eff3 + eff4 + accel2 + accel3 + accel4|0, DATA, 
rpar=c(Price2='n', Price3='n', Price4='n', Price5='n', American='n', Japanese='n', 
Chinese='n', SKorean='n', HEV='n', PHEV10='n', PHEV20='n', PHEV40='n', EV75='n', 
EV100='n', EV150='n', F20='n', F30='n', FNA='n', S6='n', S10='n', eff2='n', eff3='n', 
eff4='n', accel2='n', accel3='n', accel4='n'), R=100, halton=NA, print.level=0, panel=F)

Error in rep(halt, prime - 1) : invalid 'times' argument

2voto

user2025860 Points 21

Je pense que vous utilisez trop de paramètres aléatoires (25). J'ai eu le même problème en utilisant plus de 9. Néanmoins, les anciennes versions de mlogit pouvaient estimer des modèles avec de grandes dimensions de paramètres, mais de nombreux paramètres = des tirages de Halton fortement corrélés (sur les dimensions), de sorte que les "tirages de Halton standard" peuvent être une mauvaise idée pour votre objectif. (voir Train 2009, pp. 231-235) Meilleurs vœux dg

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X