我今天来找你是因为我面临一个我无法解释的大问题。
我对行为数据运行了多项逻辑回归(使用 mlgit 包)。我通过做准备数据
mlogit <- mlogit.data(Merge, choice = "Choice", shape = "long", alt.var = "Comp",
drop.index = TRUE)
在我的合并数据上。
这给了我以下信息:
Date Time ActivityX ActivityY Temp Behavior Valley Age Month Year kid Individual Choice
1.F 01/05/2012 00:00:00 80 58 10 F Fuorn 8 5 2012 Y 26 TRUE
1.R 01/05/2012 00:00:00 80 58 10 F Fuorn 8 5 2012 Y 26 FALSE
1.M 01/05/2012 00:00:00 80 58 10 F Fuorn 8 5 2012 Y 26 FALSE
1.RUN 01/05/2012 00:00:00 80 58 10 F Fuorn 8 5 2012 Y 26 FALSE
2.F 01/05/2012 00:05:00 90 76 10 F Fuorn 8 5 2012 Y 26 TRUE
2.R 01/05/2012 00:05:00 90 76 10 F Fuorn 8 5 2012 Y 26 FALSE
2.M 01/05/2012 00:05:00 90 76 10 F Fuorn 8 5 2012 Y 26 FALSE
2.RUN 01/05/2012 00:05:00 90 76 10 F Fuorn 8 5 2012 Y 26 FALSE
3.F 01/05/2012 00:10:00 51 47 10 M Fuorn 8 5 2012 Y 26 FALSE
3.R 01/05/2012 00:10:00 51 47 10 M Fuorn 8 5 2012 Y 26 FALSE
3.M 01/05/2012 00:10:00 51 47 10 M Fuorn 8 5 2012 Y 26 TRUE
3.RUN 01/05/2012 00:10:00 51 47 10 M Fuorn 8 5 2012 Y 26 FALSE
4.F 01/05/2012 00:15:00 0 0 10 R Fuorn 8 5 2012 Y 26 FALSE
4.R 01/05/2012 00:15:00 0 0 10 R Fuorn 8 5 2012 Y 26 TRUE
4.M 01/05/2012 00:15:00 0 0 10 R Fuorn 8 5 2012 Y 26 FALSE
4.RUN 01/05/2012 00:15:00 0 0 10 R Fuorn 8 5 2012 Y 26 FALSE
5.F 01/05/2012 00:20:00 0 0 9 R Fuorn 8 5 2012 Y 26 FALSE
5.R 01/05/2012 00:20:00 0 0 9 R Fuorn 8 5 2012 Y 26 TRUE
5.M 01/05/2012 00:20:00 0 0 9 R Fuorn 8 5 2012 Y 26 FALSE
5.RUN 01/05/2012 00:20:00 0 0 9 R Fuorn 8 5 2012 Y 26 FALSE
然后我进行了回归:
m1 <- mlogit(Choice ~ 1 |Temp + Valley + Age + kid + Month , mlogit)
它给了我显着的结果:
Estimate Std. Error t-value Pr(>|t|)
M:(intercept) -4.2153e-01 5.7533e-02 -7.3268 2.358e-13 ***
R:(intercept) 6.2325e-01 3.4958e-02 17.8284 < 2.2e-16 ***
RUN:(intercept) -1.2275e+01 4.0526e-01 -30.2895 < 2.2e-16 ***
M:Temp 1.5371e-02 9.8680e-04 15.5764 < 2.2e-16 ***
R:Temp -3.9871e-02 6.7926e-04 -58.6975 < 2.2e-16 ***
RUN:Temp -4.4532e-02 6.8696e-03 -6.4825 9.023e-11 ***
M:ValleyTrupchun -3.6154e-01 1.6362e-02 -22.0968 < 2.2e-16 ***
R:ValleyTrupchun -4.0186e-02 9.7968e-03 -4.1020 4.096e-05 ***
RUN:ValleyTrupchun 1.2895e+00 8.5357e-02 15.1066 < 2.2e-16 ***
M:Age -1.1026e-02 2.6902e-03 -4.0985 4.158e-05 ***
R:Age 1.9465e-02 1.6479e-03 11.8119 < 2.2e-16 ***
RUN:Age 5.5473e-02 1.6661e-02 3.3294 0.0008703 ***
M:kidY 6.0686e-02 2.2638e-02 2.6807 0.0073460 **
R:kidY -4.1638e-01 1.2391e-02 -33.6024 < 2.2e-16 ***
RUN:kidY 6.2311e-01 1.0410e-01 5.9854 2.158e-09 ***
M:Month -2.0466e-01 8.4448e-03 -24.2346 < 2.2e-16 ***
R:Month 2.4148e-02 5.2317e-03 4.6157 3.917e-06 ***
RUN:Month 9.8715e-01 5.6209e-02 17.5622 < 2.2e-16 ***
这些结果与我期望在文学中找到的结果一致,所以我很高兴。
我的下一步是绘制我的结果,这是我遇到麻烦的时候。
首先,当我绘制原始数据并将其与回归结果进行比较时,我发现了一些巨大的差异。例如,当我根据年龄绘制行为中花费的时间百分比(M 表示移动,F 表示进食,R 表示休息,跑步表示跑步,在我的回归中 F 是参考)随年龄变化时,我发现年龄越大的个人得到,他们休息得越多,他们就会移动得越多,但我从回归中得到的估计表明,他们应该休息更多(当他们变老时)但移动得更少。总而言之,我的原始数据图表与我从回归中得到的结果相反。
我不知道这是否正常,因为我不知道我是否可以将我的原始数据与我的回归结果进行比较,以使我的回归显示从彼此切换到行为的概率我的变量增长一个单位的时间。
所以我想使用该predict()功能,但我不知道该怎么做。我希望在这里得到一些帮助。