作者KirinGuess (Kirin)
看板Statistics
标题Re: [问题] stata 逻辑回归的预测机率
时间Mon Dec 7 06:13:02 2009
举例来说(资料是虚拟的),有三个变数:
1.有没有投票(Vote),0是没有投票,1是有投票;
2.年龄(Age);
3.受教育年数(Edu)。
执行logit和prgen後会出现画面如下:
. logit Vote Age Edu
Logistic regression Number of obs = 9120
LR chi2(2) = 46.47
Prob > chi2 = 0.0000
Log likelihood = -3126.0974 Pseudo R2 = 0.0074
-------------------------------------------------------------------
vote | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------+-----------------------------------------------------------
Age | .0125808 .0018889 6.66 0.000 .0088787 .0162829
Edu | .0021033 .0114655 0.18 0.854 -.0203687 .0245753
_cons | -2.722784 .1936766 -14.06 0.000 -3.102383 -2.343184
-------------------------------------------------------------------
. prgen Age, gen(Age)
logit: Predicted values as Age varies from 18 to 89.
Age Edu
x= 46.082018 12.635088
这两个值代表分析资料的平均年龄是46.08岁,
平均受教育年数是12.64年。
在资料画面里(browse)会多出三个变数,
每个都有11个观察值,如下:
Agex Agep0 Agep1
18 .921994 .078006
25.1 .9153228 .0846772
32.2 .9081377 .0918622
39.3 .9004094 .0995906
46.4 .8921082 .1078918
53.5 .8832047 .1167953
60.6 .8736706 .1263294
67.7 .8634785 .1365215
74.8 .8526028 .1473972
81.9 .8410203 .1589797
89 .8287104 .1712896
Agex是把资料内全部受访者的年龄全距分为11等分。
你并不一定要用全距,也不一定要用11等分,例如:
「prgen Age, f(1) t(100) ncases(20) gen(Age)」
这个语法就是从1岁到100岁分为20等分,
那麽Agex、Agep0、Agep1就都会产生20个观察值。
agep1是指在「Age=Agex」且「Edu=平均数」时有去投票的机率。
第1列的Agep1是:
0.078006=1/{1+exp[-1*(-2.7227 + 0.0126 * 18 + 0.0021 * 12.6351)]}
------- ------ -- ------ -------
_cons Age Agex Edu Edu
coef. coef. mean
agep0是指在「Age=Agex」且「Edu=平均数」时没去投票的机率。
第1列的Agep0则是:
0.921994=1-0.078006
必须注意的是,这11列资料排列与原本资料并没有关系。
所以你会发现在原本资料里,
第1列的受访者并不是18岁,第2列的也并不是25.1岁,
而Agex、Agep0和Agep1的资料从第12个受访者起就都是遗漏值。
如果想估计原资料内每位受访者去投票的机率要用「predict p1」,
这个语法会依照每位受访者实际的年龄和教育程度来估计投票机率。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.33.213.179