Re: [問題] stata 邏輯迴歸的預測機率
舉例來說(資料是虛擬的),有三個變數:
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
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):