このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
GeneralizedLinearModel
一般化線形回帰モデル クラス
説明
GeneralizedLinearModel
は、当てはめ済みの一般化線形回帰モデルです。一般化線形回帰モデルは、応答と予測子の間の非線形関係を記述する非線形モデルの特別なクラスです。一般化線形回帰モデルには、線形回帰モデルの一般的な特徴があります。応答変数は、平均応答 μ を含むパラメーターをもつ、正規分布、二項分布、ポアソン分布、ガンマ分布、または逆ガウス分布に従います。リンク関数 f は、μ と予測子の線形結合との間の関係を定義します。
当てはめ済みの一般化線形回帰モデルを調べるには、GeneralizedLinearModel
オブジェクトのプロパティを使用します。オブジェクト プロパティには、係数推定値、要約統計量、当てはめ手法および入力データに関する情報が含まれています。オブジェクト関数を使用して応答を予測し、モデルの修正、評価、および可視化を行います。
作成
GeneralizedLinearModel
オブジェクトの作成には、fitglm
または stepwiseglm
を使用します。
fitglm
は、固定されたモデル仕様を使用して、一般化線形回帰モデルをデータに当てはめます。モデルに対して項を追加または削除するには、addTerms
、removeTerms
または step
を使用します。あるいは、stepwiseglm
でステップワイズ一般化線形回帰を使用してモデルを当てはめます。
プロパティ
係数推定値
CoefficientCovariance
— 係数推定値の共分散行列
数値行列
この プロパティ は読み取り専用です。
係数推定値の共分散行列。p 行 p 列の数値の行列を指定します。p は、当てはめたモデルの係数の個数で、NumCoefficients
で与えられます。
詳細については、係数の標準誤差と信頼区間を参照してください。
データ型: single
| double
CoefficientNames
— 係数の名前
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
係数の名前。対応する項の名前が含まれている文字ベクトルの cell 配列を指定します。
データ型: cell
Coefficients
— 係数の値
テーブル
この プロパティ は読み取り専用です。
係数の値。table を指定します。Coefficients
には、各係数に対応する 1 つずつの行と次の列が格納されます。
Estimate
— 推定される係数値SE
— 推定の標準誤差tStat
— 係数がゼロであるという帰無仮説をもつ両側検定の t 統計量pValue
— t 統計量の p 値
coefTest
を使用して、係数に線形仮説検定を実行します。係数推定値の信頼区間を求めるには、coefCI
を使用します。
ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl
内の推定された係数ベクトルを取得するには、次のようにします。
beta = mdl.Coefficients.Estimate
データ型: table
NumCoefficients
— モデルの係数の数
正の整数
この プロパティ は読み取り専用です。
モデルの係数の個数。正の整数を指定します。NumCoefficients
には、モデルの項がランク落ちとなる場合にゼロに設定される係数が含まれます。
データ型: double
NumEstimatedCoefficients
— 推定された係数の数
正の整数
この プロパティ は読み取り専用です。
モデル内の推定された係数の個数。正の整数を指定します。NumEstimatedCoefficients
には、モデルの項がランク落ちとなる場合にゼロに設定される係数は含まれません。NumEstimatedCoefficients
は回帰の自由度です。
データ型: double
要約統計量
Deviance
— 当てはめの逸脱度
数値
この プロパティ は読み取り専用です。
当てはめの逸脱度。数値を指定します。逸脱度は、一方のモデルが他方のモデルの特別なケースである 2 つのモデルを比較するために役立ちます。2 つのモデルの逸脱度の差異は、2 つのモデル間に推定されるパラメーター数の差異と等しい自由度をもつカイ二乗分布になります。詳細は、逸脱度を参照してください。
データ型: single
| double
DFE
— 誤差に対する自由度
正の整数
この プロパティ は読み取り専用です。
誤差 (残差) の自由度。推定された係数の個数を観測値の個数から減算した値に等しくなります。正の整数を指定します。
データ型: double
Diagnostics
— 観測値の診断情報
テーブル
この プロパティ は読み取り専用です。
観測値の診断情報。各観測値に対応する 1 つずつの行と次の表で説明されている列がある table を指定します。
列 | 意味 | 説明 |
---|---|---|
Leverage | HatMatrix の対角要素 | 各観測値の Leverage は、観測された予測子の値によってどの程度まで当てはめが決定されるかを示します。1 に近い値は、当てはめの大部分がその観測値によって決定され、他の観測値からの寄与は少ないことを示します。0 に近い値は、当てはめの大部分が他の観測値によって決定されることを示します。係数 P と観測 N のあるモデルの場合、Leverage の平均値は P/N です。2*P/N より大きい Leverage の値は、高いてこ比を示します。 |
CooksDistance | 当てはめた値におけるスケーリングされた変化のクックの距離 | CooksDistance は、当てはめた値におけるスケーリングされた変化の測定です。平均のクックの距離の 3 倍より CooksDistance が大きい観測値は、外れ値である可能性があります。 |
HatMatrix | 観測された応答から近似を計算するための射影行列 | HatMatrix は、Fitted = HatMatrix*Y となる N 行 N 列の行列です。ここで、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
Dispersion
— 応答の分散のスケール係数
数値スカラー
この プロパティ は読み取り専用です。
応答の分散のスケール係数。数値スカラーとして指定します。
fitglm
または stepwiseglm
の名前と値のペアの引数 'DispersionFlag'
が true
である場合、関数は、応答の分散を計算する際にスケール係数 Dispersion
を推定します。応答の分散は、スケール係数を乗算した理論的分散に等しくなります。
たとえば、二項分布の分散関数は p(1–p)/n です。ここで p は確率パラメーターで、n は標本サイズのパラメーターです。Dispersion
が 1
に近い場合、データの分散は二項分布の理論的分散に一致して見えます。Dispersion
が 1
より大きい場合、データ セットは二項分布に比べて "過剰に分散" しています。
データ型: double
DispersionEstimated
— 分散のスケール係数の使用を示すフラグ
論理値
この プロパティ は読み取り専用です。
fitglm
が Dispersion
のスケール係数を使用して Coefficients.SE
の係数の標準誤差を計算したかどうかを示すフラグ。論理値を指定します。DispersionEstimated
が false
であれば、fitglm
は分散の理論値を使用しました。
二項分布およびポアソン分布の場合のみ、
DispersionEstimated
はfalse
になる可能性があります。fitglm
またはstepwiseglm
の名前と値のペアの引数'DispersionFlag'
を設定することによって、DispersionEstimated
を設定します。
データ型: logical
Fitted
— 入力データを基に当てはめを行った応答値
テーブル
この プロパティ は読み取り専用です。
入力データに基づいて当てはめ (予測) を行った値。各観測値に対応する行と次の表で説明されている列がある table として指定します。
列 | 説明 |
---|---|
Response | 応答のスケール上の予測値 |
LinearPredictor | 予測子の線形結合がもつスケール上の予測値 (Response 当てはめた値に適用されるリンク関数と同じ) |
Probability | 当てはめの確率 (二項分布でのみ含まれます) |
ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl
で応答スケール上の当てはめられた値のベクトル f
を取得するには、次のようにします。
f = mdl.Fitted.Response
predict
を使用して、他の予測子の値の予測を計算するか、Fitted
で信頼限界を計算します。
データ型: table
LogLikelihood
— 対数尤度
数値
この プロパティ は読み取り専用です。
応答値におけるモデルの分布の対数尤度。数値として指定します。平均はモデルから当てはめられ、他のパラメーターはモデルの当てはめに伴って推定されます。
データ型: single
| double
ModelCriterion
— モデルの比較基準
構造体
この プロパティ は読み取り専用です。
モデルの比較基準。次のフィールドがある構造体を指定します。
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
Residuals
— 当てはめたモデルの残差
テーブル
この プロパティ は読み取り専用です。
当てはめたモデルの残差。各観測値に対する 1 つずつの行と次の表に記載されている列が含まれている table を指定します。
列 | 説明 |
---|---|
Raw | 観測した値から当てはめた値を減算した値 |
LinearPredictor | 調整応答値から予測子の当てはめた線形結合を減算した値に等しい、線形予測子のスケールでの残差 |
Pearson | 生の残差を応答の推定標準偏差で除算した値 |
Anscombe | 歪度を削除するために選択した変換で変換データに対して定義された残差 |
Deviance | 観測の逸脱度への寄与に基づく残差。 |
ObservationInfo.Missing
内の欠損値のために当てはめに使用されなかった行には、次を例外として NaN
値が含まれます。
ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl
内にある通常の生の残差ベクトル r
を取得するには、次のようにします。
r = mdl.Residuals.Raw
データ型: table
Rsquared
— モデルの決定係数の値
構造体
この プロパティ は読み取り専用です。
モデルの決定係数の値。5 つのフィールドがある構造体を指定します。
フィールド | 説明 | 式 |
---|---|---|
Ordinary | 通常の (自由度未調整) 決定係数 |
|
Adjusted | 係数の数に対する自由度調整済み決定係数 |
N は観測値の個数 ( |
LLR | 対数尤度比 |
L は当てはめたモデルの対数尤度 ( |
Deviance | 逸脱度決定係数 |
D は当てはめたモデルの逸脱度 ( |
AdjGeneralized | 一般化された自由度調整済み決定係数 |
R2AdjGeneralized は、ロジスティック回帰モデルに関して Maddala [3]、Cox-Snell [4]、および Magee [5]が提唱する式に Nagelkerke の調整[2]を加えたものです。 |
これらの値のいずれかをスカラーとして取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl
の自由度調整済み決定係数の値を取得するには次のように入力します。
r2 = mdl.Rsquared.Adjusted
データ型: struct
SSE
— 誤差の二乗和
数値
この プロパティ は読み取り専用です。
誤差 (残差) の二乗和。数値を指定します。観測値の重みを使用して学習させたモデルの場合、SSE
の計算の二乗和は重み付き二乗和です。
データ型: single
| double
SSR
— 回帰二乗和
数値
この プロパティ は読み取り専用です。
回帰二乗和。数値を指定します。SSR
は、当てはめた値と応答の平均の間における偏差の二乗和に等しい値です。観測値の重みを使用して学習させたモデルの場合、SSR
の計算の二乗和は重み付き二乗和です。
データ型: single
| double
SST
— 二乗の総和
数値
この プロパティ は読み取り専用です。
二乗の総和。数値を指定します。SST
は、mean(y)
に対する応答ベクトル y
の偏差二乗和に等しい値です。観測値の重みを使用して学習させたモデルの場合、SST
の計算の二乗和は重み付き二乗和です。
データ型: single
| double
当てはめ情報
Steps
— ステップワイズ近似の情報
構造体
この プロパティ は読み取り専用です。
ステップワイズ近似の情報。次の表で説明されているフィールドをもつ構造体を指定します。
フィールド | 説明 |
---|---|
Start | 開始モデルを表す式 |
Lower | 下限モデルを表す式。Lower 内の項は必ずモデルに残ります。 |
Upper | 上限モデルを表す式。Upper より多い項をモデルに含めることはできません。 |
Criterion | 'sse' などのステップワイズ アルゴリズムに使用された基準 |
PEnter | Criterion が項を追加するためのしきい値 |
PRemove | Criterion が項を削除するためのしきい値 |
History | 近似で実行されたステップを表すテーブル |
table History
には、初期の当てはめを含む各ステップに対応する 1 つずつの行と、次の表で説明されている列が含まれています。
列 | 説明 |
---|---|
Action | そのステップで行われたアクション
|
TermName |
|
Terms | 項の行列内のモデル仕様 |
DF | そのステップの後の回帰自由度 |
delDF | 前のステップに対する回帰自由度の変化 (項を削除するステップの場合は負) |
Deviance | (一般化線形回帰モデルの場合のみ) そのステップにおける逸脱度 (残差二乗和) |
FStat | そのステップに導いた F 統計量 |
PValue | F 統計量の p 値 |
ステップワイズ回帰を使用してモデルを当てはめた場合を除き、この構造体は空です。
データ型: struct
入力データ
Distribution
— 一般化分布の情報
構造体
この プロパティ は読み取り専用です。
一般化分布の情報。次の表で説明されているフィールドをもつ構造体として指定します。
フィールド | 説明 |
---|---|
Name | 分布の名前: 'normal' 、'binomial' 、'poisson' 、'gamma' 、または 'inverse gaussian' |
DevianceFunction | 当てはめを行ったパラメーター値とその応答値との関数として逸脱度の成分を計算する関数 |
VarianceFunction | 当てはめを行ったパラメーター値の関数として分布の理論的分散を計算する関数。DispersionEstimated が true である場合、係数の標準誤差を計算するときに分散関数に Dispersion が乗算されます。 |
データ型: struct
Formula
— モデルの情報
LinearFormula
オブジェクト
この プロパティ は読み取り専用です。
モデルの情報。LinearFormula
オブジェクトを指定します。
ドット表記を使用して、当てはめたモデル mdl
の式を表示します。
mdl.Formula
LikelihoodPenalty
— 尤度推定のペナルティ
"none"
(既定値) | "jeffreys-prior"
尤度推定のペナルティ。"none"
または "jeffreys-prior"
として指定します。
"none"
— モデルの当てはめ時に尤度推定にペナルティを課しません。"jeffreys-prior"
— ジェフリーズ事前分布を使用して尤度推定にペナルティを課します。
ロジスティック モデルでは、LikelihoodPenalty
を "jeffreys-prior"
に設定することを "Firth 回帰" と呼びます。標本の数が少ない場合や可分データ セットで二項 (ロジスティック) 回帰を実行する場合の係数推定バイアスを減らすには、学習時に LikelihoodPenalty
を "jeffreys-prior"
に設定します。
例: LikelihoodPenalty="jeffreys-prior"
データ型: char
| string
Link
— リンク関数
構造体
この プロパティ は読み取り専用です。
リンク関数。次の表で説明されているフィールドをもつ構造体として指定します。
フィールド | 説明 |
---|---|
Name | リンク関数の名前。文字ベクトルとして指定します。関数ハンドルを使用してリンク関数を指定する場合、Name は '' となります。 |
Link | リンク関数を定義する関数 f。関数ハンドルとして指定します。 |
Derivative | f の導関数。関数ハンドルとして指定します。 |
Inverse | f の逆数。関数ハンドルとして指定します。 |
リンク関数は、分布パラメーター μ を予測子の当てはめられた線形結合 Xb にリンクさせる関数 f です。
f(μ) = Xb.
データ型: struct
NumObservations
— 観測値の数
正の整数
この プロパティ は読み取り専用です。
近似関数が当てはめで使用した観測値の個数。正の整数を指定します。NumObservations
は、元の table、データセットまたは行列で指定された観測値の個数から、除外する行数 (名前と値のペアの引数 'Exclude'
で設定) または欠損値が含まれている行数を減算した値です。
データ型: double
NumPredictors
— 予測子変数の数
正の整数
この プロパティ は読み取り専用です。
モデルの当てはめに使用した予測子変数の個数。正の整数を指定します。
データ型: double
NumVariables
— 変数の数
正の整数
この プロパティ は読み取り専用です。
入力データに含まれている変数の個数。正の整数を指定します。NumVariables
は、元の table またはデータセットに含まれている変数の個数、または予測子行列と応答ベクトルの列の総数です。
NumVariables
には、予測子または応答としてモデルの当てはめに使用される変数ではないものも含まれます。
データ型: double
ObservationInfo
— 観測値の情報
テーブル
この プロパティ は読み取り専用です。
観測値の情報。n 行 4 列の table として指定します。n は入力データの行数に等しくなります。ObservationInfo
には、次の表で説明されている列が含まれます。
列 | 説明 |
---|---|
Weights | 観測値の重み。数値として指定します。既定値は 1 です。 |
Excluded | 除外する観測値のインジケーター。logical 値として指定します。名前と値のペアの引数 'Exclude' を使用して観測値を当てはめから除外した場合、値は true です。 |
Missing | 欠損観測値のインジケーター。logical 値として指定します。観測値が欠損値である場合、値は true です。 |
Subset | 近似関数が観測値を使用するかどうかのインジケーター。logical 値として指定します。観測値が除外されず、欠損値でもない場合、つまり、近似関数が観測値を使用する場合、値は true です。 |
ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl
の重みベクトル w
を取得するには、次のようにします。
w = mdl.ObservationInfo.Weights
データ型: table
ObservationNames
— 観測値の名前
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
観測値の名前。当てはめで使用した観測値の名前が含まれている文字ベクトルの cell 配列を指定します。
近似が観測名を含むテーブルまたはデータセットに基づいている場合、
ObservationNames
はそれらの名前を使用します。それ以外の場合、
ObservationNames
は空の cell 配列になります。
データ型: cell
Offset
— オフセット変数
数値ベクトル
この プロパティ は読み取り専用です。
オフセット変数。データの行数と同じ長さの数値ベクトルとして指定します。Offset
は、fitglm
または stepwiseglm
から名前と値のペア引数 'Offset'
で渡されます。近似関数は、1
で固定した係数値をもつ追加の予測子変数として Offset
を使用します。つまり、当てはめのための式は次のようになります
f(μ) ~ Offset + (terms involving real predictors)
ここで、f はリンク関数です。予測子 Offset
の係数は 1
です。
たとえば、ポアソン回帰モデルを検討してください。カウントの数が理論上の理由により予測子 A
に対して比例していることがわかっていると仮定します。log リンク関数を使用し、オフセットに log(A)
を指定することにより、この理論上の制約を満たすことをモデルに強制できます。
データ型: double
PredictorNames
— モデルの当てはめに使用した予測子の名前
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
モデルの当てはめに使用した予測子の名前。文字ベクトルの cell 配列を指定します。
データ型: cell
ResponseName
— 応答変数名
文字ベクトル
この プロパティ は読み取り専用です。
応答変数名。文字ベクトルを指定します。
データ型: char
VariableInfo
— 変数に関する情報
テーブル
この プロパティ は読み取り専用です。
Variables
に格納されている入力変数に関する情報。各変数に対応する 1 つずつの行と次の表で説明されている列がある table を指定します。
列 | 説明 |
---|---|
Class | 変数のクラス。'double' や 'categorical' などの文字ベクトルによる cell 配列を指定します。 |
Range | 変数の範囲。ベクトルの cell 配列を指定します。
|
InModel | 当てはめたモデルにどの変数が含まれているかを示すインジケーター。logical ベクトルを指定します。モデルに変数が含まれている場合、値は true です。 |
IsCategorical | カテゴリカル変数のインジケーター。logical ベクトルを指定します。変数がカテゴリカルである場合、値は true です。 |
VariableInfo
には、予測子または応答としてモデルの当てはめに使用される変数ではないものも含まれます。
データ型: table
VariableNames
— 変数の名前
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
変数の名前。文字ベクトルの cell 配列を指定します。
当てはめが table またはデータセットに基づいている場合、このプロパティはその table またはデータセット内の変数の名前を与えます。
当てはめが予測行列と応答ベクトルに基づいている場合、近似メソッドの名前と値のペアの引数
'VarNames'
によって指定された値がVariableNames
に格納されます。'VarNames'
の既定値は{'x1','x2',...,'xn','y'}
です。
VariableNames
には、予測子または応答としてモデルの当てはめに使用される変数ではないものも含まれます。
データ型: cell
Variables
— 入力データ
テーブル
この プロパティ は読み取り専用です。
入力データ。table を指定します。Variables
には予測子と応答の両方の値が格納されます。当てはめが table またはデータセット配列に基づいている場合、Variables
にはその table またはデータセット配列のデータがすべて格納されます。それ以外の場合、Variables
は入力データ行列 X
と応答ベクトル y
から作成された table です。
Variables
には、予測子または応答としてモデルの当てはめに使用される変数ではないものも含まれます。
データ型: table
オブジェクト関数
CompactGeneralizedLinearModel
の作成
compact | コンパクトな一般化線形回帰モデル |
一般化線形モデルからの項の追加または削除
addTerms | 一般化線形回帰モデルへの項の追加 |
removeTerms | 一般化線形回帰モデルからの項の削除 |
step | 項の追加または削除による一般化線形回帰モデルの改良 |
応答予測
一般化線形モデルの評価
coefCI | 一般化線形回帰モデルの係数推定の信頼区間 |
coefTest | 一般化線形回帰モデルの係数に対する線形仮説検定 |
devianceTest | 一般化線形回帰モデルの逸脱度の分析 |
partialDependence | 部分依存の計算 |
一般化線形モデルと要約統計量の可視化
plotDiagnostics | 一般化線形回帰モデルの観測値の診断情報のプロット |
plotPartialDependence | 部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成 |
plotResiduals | 一般化線形回帰モデルの残差プロット |
plotSlice | 当てはめられた一般化線形回帰面を通るスライスのプロット |
一般化線形モデルのプロパティの収集
gather | GPU からの Statistics and Machine Learning Toolbox オブジェクトのプロパティの収集 |
例
一般化線形回帰モデルの作成
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
stepwiseglm
は x5
、x10
、および x15
という 3 つの正しい予測子を検出します。
詳細
正準リンク関数
一般化線形モデルの既定のリンク関数は、"正準リンク関数" です。名前と値のペアの引数 'Link'
を使用して、fitglm
または stepwiseglm
でモデルを当てはめるときにリンク関数を指定できます。
分布 | 正準リンク関数名 | リンク関数 | 平均 (逆) 関数 |
---|---|---|---|
'normal' | 'identity' | f(μ) = μ | μ = Xb |
'binomial' | 'logit' | f(μ) = log(μ/(1 – μ)) | μ = exp(Xb) / (1 + exp(Xb)) |
'poisson' | 'log' | f(μ) = log(μ) | μ = exp(Xb) |
'gamma' | -1 | f(μ) = 1/μ | μ = 1/(Xb) |
'inverse gaussian' | -2 | f(μ) = 1/μ2 | μ = (Xb)–1/2 |
クックの距離
クックの距離は当てはめた値におけるスケーリングされた変化であり、予測子変数に対する観測値から外れ値を特定する場合に便利です。クックの距離は、当てはめた応答値に対する各観測値の影響を示します。平均のクックの距離の 3 倍を超える観測は外れ値の可能性があります。
観測値 i のクックの距離 Di は
ここで
は分散パラメーター (推定値または理論値) です。
ei は線形予測子の残差 です。ここで
g はリンク関数です。
yi は、観測された応答です。
xi は、観測です。
は推定した係数ベクトルです。
p は回帰モデルの係数の数です。
hii は、ハット行列 H の i 番目の対角要素です。
てこ比
てこ比は、入力空間で特定の観測の位置が原因で発生した、回帰予測におけるその観測値の影響を測定します。
観測値 i のてこ比はハット行列 H の i 番目の対角項 hii の値です。てこ比値の合計は p (回帰モデルの係数の個数) なので、てこ比が p/n (n は観測値の個数) を大幅に超える場合、観測値 i は外れ値であると考えることができます。
ハット行列
ハット行列は、応答観測値のベクトルを予測値のベクトルに射影する射影行列です。
ハット行列 H は、データ行列 X の項と対角重み付け行列 W の項で定義されます。
H = X(XTWX)–1XTWT.
W には対角要素 wi があります。
ここで
g は yi を xib にマップするリンク関数です。
はリンク関数 g の導関数です。
V は分散関数です。
μi は i 番目の平均です。
対角要素 Hii は次を満たします
ここで n は観測の数 (X の行) であり、p は回帰モデルの係数の数です。
逸脱度
逸脱度は、残差二乗和を汎化したものです。飽和モデルと比較した適合度を測定します。
モデル M1 の逸脱度は、モデル M1 の対数尤度と飽和モデル Ms の対数尤度の差の 2 倍です。飽和モデルは、推定可能な最大数のパラメーターを含むモデルです。
たとえば、n 個の観測値 (yi, i = 1, 2, ..., n) があり、XiTβ の値が異なる可能性がある場合、n 個のパラメーターを含む飽和モデルを定義できます。L(b,y) がパラメーター b をもつモデルの尤度関数の最大値を示しているものとします。この場合、モデル M1 の逸脱度は以下のようになります。
ここで、b1 および bs には、それぞれモデル M1 および飽和モデルの推定パラメーターが含まれます。逸脱度は自由度 n – p のカイ二乗分布になります。ここで、n は飽和モデルのパラメーター数、p はモデル M1 のパラメーター数です。
2 つの異なる一般化線形回帰モデル M1 および M2 があり、M1 は M2 内の項のサブセットをもつと仮定します。モデルの当てはめは、それらの逸脱度 D1 と D2 を比較することによって評価できます。逸脱度の差異は以下のとおりです。
差異 D は漸近的にカイ二乗分布となりますが、その自由度 v は、M1 および M2 で推定されたパラメーター数の差異に等しくなります。この検定の p 値は 1 — chi2cdf(D,v)
を使用して取得できます。
通常は、定数項をもち予測子をもたないモデル M2 を使用して D を調べます。そのため、D は自由度が p – 1 のカイ二乗分布となります。分散を推定する場合、推定された分散で除算した差異は、分子の自由度が p – 1、分母の自由度が n – p の F 分布となります。
項の行列
項行列 T
は、モデル内の項を指定する t 行 (p + 1) 列の行列です。t は項の数、p は予測子変数の数であり、+1 は応答変数に相当します。T(i,j)
の値は、項 i
の変数 j
の指数です。
たとえば、3つの予測子変数 x1
、x2
、x3
と応答変数 y
が x1
、x2
、x3
、y
という順序で入力に含まれていると仮定します。T
の各行は 1 つの項を表します。
[0 0 0 0]
— 定数項 (切片)[0 1 0 0]
—x2
(x1^0 * x2^1 * x3^0
と等価)[1 0 1 0]
—x1*x3
[2 0 0 0]
—x1^2
[0 1 2 0]
—x2*(x3^2)
各項の最後の 0
は、応答変数を表します。一般に、項行列内のゼロの列ベクトルは、応答変数の位置を表します。行列と列ベクトルに予測子と応答変数がある場合、各行の最後の列に応答変数を示す 0
を含めなければなりません。
参照
[1] McFadden, Daniel. "Conditional logit analysis of qualitative choice behavior." in Frontiers in Econometrics, edited by P. Zarembka,105–42. New York: Academic Press, 1974.
[2] Nagelkerke, N. J. D. "A Note on a General Definition of the Coefficient of Determination." Biometrika 78, no. 3 (1991): 691–92.
[3] Maddala, Gangadharrao S. Limited-Dependent and Qualitative Variables in Econometrics. Econometric Society Monographs. New York, NY: Cambridge University Press, 1983.
[4] Cox, D. R., and E. J. Snell. Analysis of Binary Data. 2nd ed. Monographs on Statistics and Applied Probability 32. London; New York: Chapman and Hall, 1989.
[5] Magee, Lonnie. "R 2 Measures Based on Wald and Likelihood Ratio Joint Significance Tests." The American Statistician 44, no. 3 (August 1990): 250–53.
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
fitglm
またはstepwiseglm
を使用してモデルを当てはめる場合、名前と値のペアの引数'Link'
のLink
、Derivative
、およびInverse
フィールドを無名関数として指定することはできません。つまり、リンクに無名関数を使用して作成された一般化線形モデルを使用するコードを生成することはできません。代わりに、リンク コンポーネント用の関数を定義します。
詳細は、コード生成の紹介を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
GeneralizedLinearModel
モデルのオブジェクト関数は GPU 配列を完全にサポートしています。
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2012a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)