Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

GeneralizedLinearModel

一般化線形回帰モデル クラス

説明

GeneralizedLinearModel は、あてはめ済みの一般化線形回帰モデルです。一般化線形回帰モデルは、応答と予測子の間の非線形関係を記述する非線形モデルの特別なクラスです。一般化線形回帰モデルには、線形回帰モデルの一般的な特徴があります。応答変数は、平均応答 μ を含むパラメーターをもつ、正規分布、二項分布、ポアソン分布、ガンマ分布、または逆ガウス分布に従います。リンク関数 f は、μ と予測子の線形結合との間の関係を定義します。

あてはめ済みの一般化線形回帰モデルを調べるには、GeneralizedLinearModel オブジェクトのプロパティを使用します。オブジェクト プロパティには、係数推定値、要約統計、あてはめ手法および入力データに関する情報が含まれています。オブジェクト関数を使用して応答を予測し、モデルの修正、評価、および可視化を行います。

作成

GeneralizedLinearModel オブジェクトの作成には、fitglm または stepwiseglm を使用します。

fitglm は、固定されたモデル仕様を使用して、一般化線形回帰モデルをデータにあてはめます。モデルに対して項を追加または削除するには、addTermsremoveTerms または step を使用します。あるいは、stepwiseglm でステップワイズ一般化線形回帰を使用してモデルをあてはめます。

プロパティ

すべて展開する

係数推定値

このプロパティは読み取り専用です。

係数推定値の共分散行列。p 行 p 列の数値の行列を指定します。p は、あてはめたモデルの係数の個数です。

詳細については、係数の標準誤差と信頼区間を参照してください。

データ型: single | double

このプロパティは読み取り専用です。

係数の名前。対応する項の名前が含まれている文字ベクトルの cell 配列を指定します。

データ型: cell

このプロパティは読み取り専用です。

係数の値。table を指定します。Coefficients には、各係数に対応する 1 つずつの行と次の列が格納されます。

  • Estimate — 推定される係数値

  • SE — 推定の標準誤差

  • tStat — 係数が 0 であるかどうかに対する検定の t 統計量

  • pValue — t 統計量の p 値

coefTest を使用して、係数に線形仮説検定を実行します。係数推定値の信頼区間を求めるには、coefCI を使用します。

ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl 内の推定された係数ベクトルを取得するには、次のようにします。

beta = mdl.Coefficients.Estimate

データ型: table

このプロパティは読み取り専用です。

モデルの係数の個数。正の整数を指定します。NumCoefficients には、モデルの項がランク落ちとなる場合にゼロに設定される係数が含まれます。

データ型: double

このプロパティは読み取り専用です。

モデル内の推定された係数の個数。正の整数を指定します。NumEstimatedCoefficients には、モデルの項がランク落ちとなる場合にゼロに設定される係数は含まれません。NumEstimatedCoefficients は回帰の自由度です。

データ型: double

要約統計

このプロパティは読み取り専用です。

あてはめの逸脱度。数値を指定します。逸脱度は、一方のモデルが他方のモデルの特別なケースである 2 つのモデルを比較するために役立ちます。2 つのモデルの逸脱度の差異は、2 つのモデル間に推定されるパラメーター数の差異と等しい自由度をもつカイ二乗分布になります。詳細は、逸脱度を参照してください。

データ型: single | double

このプロパティは読み取り専用です。

誤差 (残差) の自由度。推定された係数の個数を観測値の個数から減算した値に等しくなります。正の整数を指定します。

データ型: double

このプロパティは読み取り専用です。

観測値の診断情報。各観測値に対応する 1 つずつの行と次の表で説明されている列がある table を指定します。

意味説明
LeverageHatMatrix の対角要素各観測値の Leverage は、観測された予測子の値によってどの程度まであてはめが決定されるかを示します。1 に近い値は、あてはめの大部分がその観測値によって決定され、他の観測値からの寄与は少ないことを示します。0 に近い値は、あてはめの大部分が他の観測値によって決定されることを示します。係数 P と観測 N のあるモデルの場合、Leverage の平均値は P/N です。2*P/N より大きい Leverage の値は、高いてこ比を示します。
CooksDistanceあてはめた値におけるスケーリングされた変化のクックの距離CooksDistance は、あてはめた値におけるスケーリングされた変化の測定です。平均のクックの距離の 3 倍より CooksDistance が大きい観測値は、外れ値である可能性があります。
HatMatrix観測された応答からあてはめを計算するための射影行列HatMatrix は、Fitted = HatMatrix*Y となる NN 列の行列です。ここで、Y は応答ベクトル、Fitted は応答のあてはめた値のベクトルです。

ソフトウェアは、Fitted プロパティおよび Residuals プロパティの LinearPredictor フィールドに格納された、予測子の線形結合のスケールでこれらの値を計算します。たとえば、ソフトウェアは、モデル mdl からあてはめられた応答値および調整された応答値を使用して、診断値を計算します。

Yfit = mdl.Fitted.LinearPredictor
Yadjusted = mdl.Fitted.LinearPredictor + mdl.Residuals.LinearPredictor

Diagnostics には、外れ値と影響力が大きい観測値を特定するために役立つ情報が格納されます。詳細については、てこ比クックの距離およびハット行列を参照してください。

観測値の診断情報をプロットするには、plotDiagnostics を使用します。

欠損値 (ObservationInfo.Missing 内) または除外された値 (ObservationInfo.Excluded 内) が原因であてはめに使用されなかった行では、CooksDistance 列に NaN 値が、Leverage 列および HatMatrix 列にゼロが格納されます。

これらの列のいずれかを配列として取得するには、ドット表記を使用してプロパティのインデックスを指定します。たとえば、モデル mdl のハット行列を取得するには、次のようにします。

HatMatrix = mdl.Diagnostics.HatMatrix;

データ型: table

このプロパティは読み取り専用です。

応答の分散のスケール係数。数値スカラーとして指定します。

fitglm または stepwiseglm の名前と値のペアの引数 'DispersionFlag'true である場合、関数は、応答の分散を計算する際にスケール係数 Dispersion を推定します。応答の分散は、スケール係数を乗算した理論的分散に等しくなります。たとえば、二項分布の分散関数は p(1–p)/n です。ここで p は確率パラメーターで、n は標本サイズのパラメーターです。Dispersion1 に近い場合、データの分散は二項分布の理論的分散に一致して見えます。Dispersion1 より大きい場合、データセットは二項分布に比べて "過剰に分散" しています。

データ型: double

このプロパティは読み取り専用です。

fitglmDispersion のスケール係数を使用して Coefficients.SE の係数の標準誤差を計算したかどうかを示すフラグ。論理値を指定します。DispersionEstimatedfalse であれば、fitglm は分散の理論値を使用しました。

  • 二項分布およびポアソン分布の場合のみ、DispersionEstimatedfalse になる可能性があります。

  • fitglm または stepwiseglm の名前と値のペアの引数 'DispersionFlag' を設定することによって、DispersionEstimated を設定します。

データ型: logical

このプロパティは読み取り専用です。

入力データに基づいてあてはめ (予測) を行った値。各観測値に対応する行と次の表で説明されている列がある table として指定します。

説明
Response応答のスケール上の予測値
LinearPredictor予測子の線形結合がもつスケール上の予測値 (Response あてはめた値に適用されるリンク関数と同じ)
Probabilityあてはめの確率 (二項分布でのみ含まれます)

ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl で応答スケール上の近似値のベクトル f を取得するには、次のようにします。

f = mdl.Fitted.Response

predict を使用して、他の予測値の予測を計算するか、Fitted で信頼限界を計算します。

データ型: table

このプロパティは読み取り専用です。

応答値におけるモデルの分布の対数尤度。数値として指定します。平均はモデルからあてはめられ、他のパラメーターはモデルのあてはめに伴って推定されます。

データ型: single | double

このプロパティは読み取り専用です。

モデルの比較基準。次のフィールドがある構造体を指定します。

  • AIC — 赤池情報量基準。AIC = –2*logL + 2*m であり、ここで logL は対数尤度、m は推定パラメーターの数です。

  • AICc — 標本サイズについて修正された赤池情報量基準。AICc = AIC + (2*m*(m + 1))/(n – m – 1) であり、ここで n は観測値の数です。

  • BIC — ベイズ情報量基準。BIC = –2*logL + m*log(n) です。

  • CAIC — 一貫した赤池情報量基準。CAIC = –2*logL + m*(log(n) + 1) です。

情報量基準は、同じデータにあてはめた複数のモデルを比較するために使用できるモデル選択ツールです。これらの基準は、尤度に基づくモデルのあてはめの尺度であり、複雑度 (特にパラメーター数) に対するペナルティが含まれています。情報量基準が異なるとペナルティの形式が異なります。

複数のモデルを比較した場合に、情報量基準の値が最も小さいモデルが最適なあてはめのモデルです。最適なあてはめのモデルは、モデルの比較に使用する基準によって変化する可能性があります。

これらの基準値のいずれかをスカラーとして取得するには、ドット表記を使用してプロパティのインデックスを指定します。たとえば、モデル mdl の AIC 値 aic を取得するには、次のようにします。

aic = mdl.ModelCriterion.AIC

データ型: struct

このプロパティは読み取り専用です。

あてはめたモデルの残差。各観測値に対する 1 つずつの行と次の表に記載されている列が含まれている table を指定します。

説明
Raw観測した値からあてはめた値を減算した値
LinearPredictor調整応答値から予測子のあてはめた線形結合を減算した値に等しい、線形予測子のスケールでの残差
Pearson生の残差を応答の推定標準偏差で除算した値
Anscombe歪度を削除するために選択した変換で変換データに対して定義された残差
Deviance観測の逸脱度への寄与に基づく残差。

ObservationInfo.Missing 内の欠損値のためにあてはめに使用されなかった行には、次を例外として NaN 値が含まれます。

ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl 内にある通常の生の残差ベクトル r を取得するには、次のようにします。

r = mdl.Residuals.Raw

データ型: table

このプロパティは読み取り専用です。

モデルの決定係数の値。5 つのフィールドがある構造体を指定します。

  • Ordinary — 通常の (自由度未調整) 決定係数

  • Adjusted — 係数の数に対する自由度調整済み決定係数

  • LLR — 対数尤度比

  • Deviance — 逸脱度

  • AdjGeneralized — 一般化された自由度調整済み決定係数

決定係数の値は、モデルによって説明される二乗総和の比率です。通常の決定係数値は、SSR および SST のプロパティに関係します。

Rsquared = SSR/SST

これらの値のいずれかをスカラーとして取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl の自由度調整済み決定係数の値を取得するには、次のようにします。

r2 = mdl.Rsquared.Adjusted

データ型: struct

このプロパティは読み取り専用です。

誤差 (残差) の二乗和。数値を指定します。

データ型: single | double

このプロパティは読み取り専用です。

回帰二乗和。数値を指定します。回帰二乗和は、あてはめた値の平均に対する近似値の偏差二乗和に等しい値です。

データ型: single | double

このプロパティは読み取り専用です。

二乗総和。数値を指定します。二乗総和は、mean(y) に対する応答ベクトル y の偏差二乗和に等しい値です。

データ型: single | double

あてはめ情報

このプロパティは読み取り専用です。

ステップワイズ近似の情報。次の表で説明されているフィールドをもつ構造体を指定します。

フィールド説明
Start開始モデルを表す式
Lower下限モデルを表す式。Lower 内の項は必ずモデルに残ります。
Upper上限モデルを表す式。Upper より多い項をモデルに含めることはできません。
Criterion'sse' などのステップワイズ アルゴリズムに使用された基準
PEnterCriterion が項を追加するためのしきい値
PRemoveCriterion が項を削除するためのしきい値
Historyあてはめで実行されたステップを表すテーブル

table History には、初期のあてはめを含む各ステップに対応する 1 つずつの行と、次の表で説明されている列が含まれています。

説明
Action

そのステップで行われたアクション

  • 'Start' — 最初のステップ

  • 'Add' — 項が 1 つ追加されます

  • 'Remove' — 項が 1 つ削除されます

TermName
  • Action'Start' である場合、TermName は開始モデル仕様を指定します。

  • Action'Add' または 'Remove' である場合、TermName はそのステップで追加または削除した項を指定します。

Terms項の行列内のモデル仕様
DFそのステップの後の回帰自由度
delDF前のステップに対する回帰自由度の変化 (項を削除するステップの場合は負)
Deviance(一般化線形回帰モデルの場合のみ) そのステップにおける逸脱度 (残差二乗和)
FStatそのステップに導いた F 統計量
PValueF 統計量の p

ステップワイズ回帰を使用してモデルをあてはめた場合を除き、この構造体は空です。

データ型: struct

入力データ

このプロパティは読み取り専用です。

一般化分布の情報。次の表で説明されているフィールドをもつ構造体として指定します。

フィールド説明
Name分布の名前: 'normal''binomial''poisson''gamma'、または 'inverse gaussian'
DevianceFunctionあてはめを行ったパラメーター値とその応答値との関数として逸脱度の成分を計算する関数
VarianceFunctionあてはめを行ったパラメーター値の関数として分布の理論的分散を計算する関数。DispersionEstimatedtrue である場合、Dispersion は係数の標準誤差を計算するときに分散関数を乗算します。

データ型: struct

このプロパティは読み取り専用です。

モデルの情報。LinearFormula オブジェクトを指定します。

ドット表記を使用して、あてはめたモデル mdl の式を表示します。

mdl.Formula

このプロパティは読み取り専用です。

近似関数があてはめで使用した観測値の個数。正の整数を指定します。NumObservations は、元の table、データセットまたは行列で指定された観測値の個数から、除外する行数 (名前と値のペアの引数 'Exclude' で設定) または欠損値が含まれている行数を減算した値です。

データ型: double

このプロパティは読み取り専用です。

モデルのあてはめに使用した予測子変数の個数。正の整数を指定します。

データ型: double

このプロパティは読み取り専用です。

入力データに含まれている変数の個数。正の整数を指定します。NumVariables は、元の table またはデータセットに含まれている変数の個数、または予測子行列と応答ベクトルの列の総数です。

NumVariables には、予測子または応答としてモデルのあてはめに使用される変数ではないものも含まれます。

データ型: double

このプロパティは読み取り専用です。

観測値の情報。n 行 4 列の table として指定します。n は入力データの行数に等しくなります。ObservationInfo には、次の表で説明されている列が含まれます。

説明
Weights観測値の重み。数値として指定します。既定値は 1 です。
Excluded除外する観測値のインジケーター。logical 値として指定します。名前と値のペアの引数 'Exclude' を使用して観測値をあてはめから除外した場合、値は true です。
Missing欠損観測値のインジケーター。logical 値として指定します。観測値が欠損値である場合、値は true です。
Subset近似関数が観測値を使用するかどうかのインジケーター。logical 値として指定します。観測値が除外されず、欠損値でもない場合、つまり、近似関数が観測値を使用する場合、値は true です。

ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl の重みベクトル w を取得するには、次のようにします。

w = mdl.ObservationInfo.Weights

データ型: table

このプロパティは読み取り専用です。

観測値の名前。あてはめで使用した観測値の名前が含まれている文字ベクトルの cell 配列を指定します。

  • あてはめが観測名を含むテーブルまたはデータセットに基づいている場合、ObservationNames はそれらの名前を使用します。

  • それ以外の場合、ObservationNames は空の cell 配列になります。

データ型: cell

このプロパティは読み取り専用です。

オフセット変数。データの行数と同じ長さの数値ベクトルとして指定します。Offset は、fitglm または stepwiseglm から名前と値のペア引数 'Offset' で渡されます。近似関数は、1 で固定した係数値をもつ追加の予測子変数として Offset を使用します。つまり、あてはめのための式は次のようになります

f(μ) ~ Offset + (terms involving real predictors)

ここで、f はリンク関数です。予測子 Offset の係数は 1 です。

たとえば、ポアソン回帰モデルを検討してください。カウントの数が理論上の理由により予測子 A に対して比例していることがわかっていると仮定します。log リンク関数を使用し、オフセットに log(A) を指定することにより、この理論上の制約を満たすことをモデルに強制できます。

データ型: double

このプロパティは読み取り専用です。

モデルのあてはめに使用した予測子の名前。文字ベクトルの cell 配列を指定します。

データ型: cell

このプロパティは読み取り専用です。

応答変数名。文字ベクトルを指定します。

データ型: char

このプロパティは読み取り専用です。

Variables に格納されている入力変数に関する情報。各変数に対応する 1 つずつの行と次の表で説明されている列がある table を指定します。

説明
Class変数のクラス。'double''categorical' などの文字ベクトルによる cell 配列を指定します。
Range

変数の範囲。ベクトルの cell 配列を指定します。

  • 連続変数 — 2 因子ベクトル [min,max]、最小値と最大値

  • カテゴリカル変数 — 異なる変数値のベクトル

InModelあてはめたモデルにどの変数が含まれているかを示すインジケーター。logical ベクトルを指定します。モデルに変数が含まれている場合、値は true です。
IsCategoricalカテゴリカル変数のインジケーター。logical ベクトルを指定します。変数がカテゴリカルである場合、値は true です。

VariableInfo には、予測子または応答としてモデルのあてはめに使用される変数ではないものも含まれます。

データ型: table

このプロパティは読み取り専用です。

変数の名前。文字ベクトルの cell 配列を指定します。

  • あてはめが table またはデータセットに基づいている場合、このプロパティはその table またはデータセット内の変数の名前を与えます。

  • あてはめが予測行列と応答ベクトルに基づいている場合、近似メソッドの名前と値のペアの引数 'VarNames' によって指定された値が VariableNames に格納されます。'VarNames' の既定値は {'x1','x2',...,'xn','y'} です。

VariableNames には、予測子または応答としてモデルのあてはめに使用される変数ではないものも含まれます。

データ型: cell

このプロパティは読み取り専用です。

入力データ。table を指定します。Variables には予測子と応答の両方の値が格納されます。あてはめが table またはデータセット配列に基づいている場合、Variables にはその table またはデータセット配列のデータがすべて格納されます。それ以外の場合、Variables は入力データ行列 X と応答ベクトル y から作成された table です。

Variables には、予測子または応答としてモデルのあてはめに使用される変数ではないものも含まれます。

データ型: table

オブジェクト関数

すべて展開する

compactコンパクトな一般化線形回帰モデル
addTerms一般化線形回帰モデルへの項の追加
removeTerms一般化線形回帰モデルからの項の削除
step項の追加または削除による一般化線形回帰モデルの改良
feval各予測子について 1 つずつ入力を使用して一般化線形回帰モデルの応答を予測
predict一般化線形回帰モデルの応答予測
randomランダム ノイズがある応答を一般化線形回帰モデルに対するシミュレート
coefCI一般化線形回帰モデルの係数推定の信頼区間
coefTest一般化線形回帰モデルの係数に対する線形仮説検定
devianceTest一般化線形回帰モデルの逸脱度の分析
plotDiagnostics一般化線形回帰モデルの観測値の診断情報のプロット
plotPartialDependence部分従属プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成
plotResiduals一般化線形回帰モデルの残差プロット
plotSlice近似された一般化線形回帰面を通るスライスのプロット

すべて折りたたむ

2 次交互作用モデルを使用し、年齢、体重、性別を関数とする喫煙可能性のロジスティック回帰モデルをあてはめます。

hospital データセットを読み込みます。

load hospital

データセット配列をテーブルに変換します。

tbl = dataset2table(hospital);

2 次交互作用および低次項を含む式を使用したモデルを指定します。

modelspec = 'Smoker ~ Age*Weight*Sex - Age:Weight:Sex';

一般化線形モデルを作成します。

mdl = fitglm(tbl,modelspec,'Distribution','binomial')
mdl = 
Generalized linear regression model:
    logit(Smoker) ~ 1 + Sex*Age + Sex*Weight + Age*Weight
    Distribution = Binomial

Estimated Coefficients:
                        Estimate         SE         tStat      pValue 
                       ___________    _________    ________    _______

    (Intercept)            -6.0492       19.749     -0.3063    0.75938
    Sex_Male               -2.2859       12.424    -0.18399    0.85402
    Age                    0.11691      0.50977     0.22934    0.81861
    Weight                0.031109      0.15208     0.20455    0.83792
    Sex_Male:Age          0.020734      0.20681     0.10025    0.92014
    Sex_Male:Weight        0.01216     0.053168     0.22871     0.8191
    Age:Weight         -0.00071959    0.0038964    -0.18468    0.85348


100 observations, 93 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 5.07, p-value = 0.535

大きい p 値は、モデルが定数と統計的には異なっていない可能性があることを示しています。

20 個の予測子変数のうち 3 つを使って応答データを作成し、stepwiseglm が正しい予測子を検出しているかどうかを確認するために、定数モデルからステップワイズ回帰を使用して一般化線形モデルを作成します。

20 個の予測子変数をもつ標本データを生成します。3 つの予測子を使用して、ポアソン応答変数を生成します。

rng default % for reproducibility
X = randn(100,20);
mu = exp(X(:,[5 10 15])*[.4;.2;.3] + 1);
y = poissrnd(mu);

ポアソン分布を使用して一般化線形回帰モデルをあてはめます。定数 (切片) 項だけを含むモデルとして、開始モデルを指定します。また、名前と値のペアの引数 'Upper' を使用して、あてはめを考慮する最大モデルとして、各予測子の切片および線形項をもつモデルを指定します。

mdl =  stepwiseglm(X,y,'constant','Upper','linear','Distribution','poisson')
1. Adding x5, Deviance = 134.439, Chi2Stat = 52.24814, PValue = 4.891229e-13
2. Adding x15, Deviance = 106.285, Chi2Stat = 28.15393, PValue = 1.1204e-07
3. Adding x10, Deviance = 95.0207, Chi2Stat = 11.2644, PValue = 0.000790094
mdl = 
Generalized linear regression model:
    log(y) ~ 1 + x5 + x10 + x15
    Distribution = Poisson

Estimated Coefficients:
                   Estimate       SE       tStat       pValue  
                   ________    ________    ______    __________

    (Intercept)     1.0115     0.064275    15.737    8.4217e-56
    x5             0.39508     0.066665    5.9263    3.0977e-09
    x10            0.18863      0.05534    3.4085     0.0006532
    x15            0.29295     0.053269    5.4995    3.8089e-08


100 observations, 96 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 91.7, p-value = 9.61e-20

stepwiseglmx5x10、および x15 という 3 つの正しい予測子を検出します。

詳細

すべて展開する

拡張機能

R2012a で導入