「Liver Cancer.jmp」サンプルデータには、136 名の患者の「結節数」の値がまとめられています。また、関連があると考えられる6つの変数、「BMI」・「年齢」・「時間」・「マーカー」・「肝炎」・「黄疸」も含まれています。これらの変数については、データテーブルの各列の「ノート」列プロパティに説明があります。「ノート」列プロパティを表示するには、列名を右クリックし、[列情報]を選択して、[列プロパティ]のリストで[ノート]を選択します。
この例では、6つの説明変数を使って「結節数」の予測モデルを作成します。その際、「結節数」の確率分布をPoisson分布としてモデル化します。
1. [ヘルプ]>[サンプルデータライブラリ]を選択し、「Liver Cancer.jmp」を開きます。
2. [分析]>[モデルのあてはめ]を選択します。
3. 「列の選択」リストで「結節数」を選択し、[Y]をクリックします。
4. 「BMI」から「黄疸」までを選択し、[マクロ]>[設定された次数まで]をクリックします。
これにより、2次までのすべての項がモデルに追加されます(「2」は、[次数]ボックスのデフォルト値です)。
5. 「列の選択」リストで「検証」を選択し、[検証]をクリックします。
6. 「手法」のリストから[一般化回帰]を選択します。
7. 「分布」リストから[Poisson]を選択します。
8. [実行]をクリックします。
「一般化回帰」レポートが開き、「モデルの比較」レポート、「モデルの設定」パネル、「最尤法 (検証法: 検証列, 分布: Poisson)」レポートが表示されます。デフォルトの「推定法」はLassoになっています。
9. [適応型]チェックボックスを選択します。
10. [実行]をクリックします。
11. 「適応型Lasso (検証法: 検証列, 分布: Poisson)」の赤い三角ボタンをクリックし、[非ゼロの項を選択]を選択します。
「パラメータ推定値の経路」は図7.1のようになります。パラメータ推定値がゼロではない項の経路が強調表示されています。パラメータ推定値の経路は、プロット上を右から左へ見てください。一番右側は最尤推定値です。罰則が大きくなるにつれて、プロットの左側へと移動していき、最終的に、すべてのパラメータ推定値はゼロに縮小していきます。いくつかの項は、かなり早い時点でゼロに縮小しています。
「パラメータ推定値の経路」プロットの縦軸は、標準化した説明変数に対するパラメータ推定値を示しています。赤い縦線は、検証データによって選択されたモデルを示しています。この選択されたモデルでは、11個の項においてパラメータ推定値がゼロではありません。また、右側のプロットを見ると、この選択されたモデルでは、検証セットにおける負の対数尤度が最小化されているのがわかります。
図7.1 非ゼロの項が強調表示された、適応型Lassoの経路
「元の説明変数に対する推定値」レポート(図7.2)には、標準化していない元の説明変数に対するパラメータ推定値が表示されます。パラメータ推定値がゼロでない11個の項が強調表示されます。これには、交互作用の効果も含まれています。データテーブルで選択されている6つの列は、ゼロではないパラメータ推定値の項を含む列です。
「効果の検定」レポートでは、パラメータ推定値がゼロである10個の項が「削除」されています。「効果の検定」レポートを見ると、5%の有意水準において有意な効果は「年齢*マーカー」の1つだけです。
図7.2 非ゼロの項が強調表示されたパラメータ推定値レポート
12. 「元の説明変数に対するパラメータ推定値」レポートで、「(年齢 ‐ 56.3994)*マーカー[0-1]」をクリックします。
すると、「パラメータ推定値の経路」プロットで対応する経路が強調表示されます。このとき、データテーブルでは「年齢」列と「マーカー」列が選択されます。
13. 「適応型Lasso (検証法: 検証列, 分布: Poisson)」レポートの赤い三角ボタンをクリックし、[列の保存]>[予測式の保存]と[列の保存]>[分散計算式の保存]を選択します。
データテーブルに、「結節数 予測式」と「分散 結節数」という2つの列が追加されます。
14. 計算式を確認するには、データテーブルでどちらかの列の見出しを右クリックし、[計算式]を選択します。または、「列」パネルの列名の右側にある+記号をクリックします。
「結節数 予測式」列の計算式は、モデルの線形式に指数関数を適用したものになっています。「分散 結節数」の計算式は、予測式と同じ計算式によって求められます。同じ計算式になっているのは、Poisson分布の分散は、その平均と等しいからです。