井出草平の研究ノート

ブートストラップを伴ったロジスティック回帰分析[Mplus]

Mplusで行うロジスティック回帰分析をブートストラップ500回の反復をするバージョン。

ides.hatenablog.com

データやデータの中身については先のエントリを参照のこと。

title: logit regression for coalminers

data:
    file =coalminer.dat;

variable:
    names = x u w;
    categorical = u;
    freqweight = w;

define:
    x = x/10;

analysis:
    estimator = ml;
    bootstrap = 500;

model:
    u on x (beta);

model constraint:
    new(or);
    or = exp(beta);

output:
    tech1 sampstat standardized
    cinterval(bootstrap);

先の分析と違うの下記の部分。

ブートストラップのオプションと反復回数。

analysis: bootstrap = 500;

モデルの制約の場所に、新しいパラメータorが定義されている。(beta)は回帰係数である。orはオッズ比のことでexp(beta)と定義されている通りである。

model constraint: new(or); or = exp(beta);

cinterval(bootstrap);はブートストラップ信頼区間を表示させるコードである。

オッズ比は制約を課さなくても、結果が表示されるが、わざわざ書く理由は95%信頼区間にオッズ比の信頼区間も表示できるという利点がある。オッズ比の95%信頼区間が不要であれば、(beta)model constraintの部分は必要がない。

CONFIDENCE INTERVALS OF MODEL RESULTS

                  Lower .5%  Lower 2.5%    Lower 5%    Estimate    Upper 5%  Upper 2.5%   Upper .5%

 U        ON
    X                0.965       0.982       0.989       1.025       1.063       1.071       1.080

 Thresholds
    U$1              6.256       6.345       6.379       6.564       6.755       6.801       6.861

New/Additional Parameters
    OR               2.624       2.669       2.688       2.787       2.896       2.919       2.945

以下は推定値(Estimate)の際の息切れの確率の計算。

 L = - \hat{\tau} + \hat{\beta}_1x = -6.564 +1.025 \times x
 P(u=1|x)=\frac{1}{1+e^{-L}}

10年が単位になっているので、62歳の場合はxが6.2になる。

 L_{62} = - 6.564 + 1.025 \times 6.2=-0.209
 P(u=1|age62) = \frac{1}{1 + e^{0.209}}=0.448

62歳で息切れする確率が0.448ということが分かる。

 L_{42} = - 6.564 + 1.025 \times 4.2=-2.259$
 P(u=1|age42) = \frac{1}{1 + e^{2.259}}=0.095

62歳時の息切れの確率は、42歳時の息切れの確率の5倍程度であることがわかる。下限値、上限値は値を置き換えて計算できる。