ドキュメンテーション

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

glmfit

一般化線形モデル回帰

構文

b = glmfit(X,y,distr)
b = glmfit(X,y,distr,param1,val1,param2,val2,...)
[b,dev] = glmfit(...)
[b,dev,stats] = glmfit(...)

説明

b = glmfit(X,y,distr) は、分布 distr を使用して、X 内の予測子に対する y 内の応答の一般化線形回帰における係数推定値が含まれている (p + 1) 行 1 列のベクトル b を返します。X は、n 個の観測値のそれぞれに対する p 個の予測子から構成される np 列の行列です。distr には、'binomial''gamma''inverse gaussian''normal' (既定)、'poisson' のいずれかを指定できます。

多くの場合、y は、観測される応答の "n" 行 1 列のベクトルです。二項分布の場合の y は、観測ごとの成功や失敗を示すバイナリ ベクトルか、1 列目が観測ごとの成功数を示し、2 列目が観測ごとの試行回数を示す 2 列の行列になります。

この構文では、基準リンク (下記参照) を使用して分布パラメーターを予測子に関連付けています。

メモ

既定の設定では、glmfit は、モデルの定数項に対応する最初の複数の 1 の列を X に追加します。X に数値 1 だけを続けた列を直接入力しないでください。glmfit の既定の設定の動作は、以下のように 'constant' パラメーターを使用して変更できます。

glmfit は、X または yNaN 値を欠損値として扱い、無視します。

b = glmfit(X,y,distr,param1,val1,param2,val2,...) を使用すると、オプションのパラメーター名/値のペアを指定し、モデルの近似を制御できます。指定可能なパラメーターを次に示します。

パラメーター説明
'link'

'identity'、分布の既定の設定 'normal'

µ = Xb

'log'、分布の既定の設定 'poisson'

log(µ) = Xb

'logit'、分布の既定の設定 'binomial'

log(µ/(1 – µ)) = Xb

'probit'

norminv(µ) = Xb

'comploglog'

log( -log(1 – µ)) = Xb

'reciprocal'、分布の既定の設定 'gamma'

1/µ = Xb

'loglog'

log(-log(µ)) = Xb

p (数値)、'inverse gaussian' 分布の既定の設定 (p = -2)

µp = Xb

リンク (FL)、リンクの微分 (FD)、逆リンク (FI) を定義する @ を使用して作成される 3 つの関数ハンドルを含んでいる形式 {FL FD FI} の cell 配列です。

カスタム定義のリンク関数。以下を指定しなければなりません。

  • FL(mu)

  • FD = dFL(mu)/dmu

  • FI = FL^(-1)

次のフィールドがある構造体配列

  • 'Link' — リンク関数

  • 'Derivative' — リンク関数の導関数

  • 'Inverse' — リンク関数の逆関数

各フィールドの値は、パス上にある関数または (@ を使用して作成した) 関数ハンドルに対応する文字ベクトルです。

カスタム定義のリンク関数、その導関数および逆関数。
'estdisp''on'

二項分布またはポアソン分布の分散パラメーターを推定。

'off' (二項分布またはポアソン分布の既定の設定)

これらの分布に対して理論値 1.0 を使用。

'offset'

ベクトル

追加の予測子変数として使用。ただし、1.0 で固定した係数値をもちます。

'weights'

各観測の相対分散の逆となるようなあらかじめ与えられた重みのベクトルです。

 
'constant'

'on' (既定の設定)

モデル内の定数項を含む。定数項の係数は b の最初の要素です。

'off'

定数項を省略。

[b,dev] = glmfit(...) は、解ベクトルでのあてはめの逸脱度 dev を返します。逸脱度は、残差二乗和を汎化したものです。逸脱度の分析によって、各モデルが他の部分集合となっている複数のモデルを比較できます。また、項数の多いモデルが項数の少ないモデルよりも特に良いかどうかを調べることもできます。

[b,dev,stats] = glmfit(...) は、devstats を返します。

stats は、以下のフィールドをもつ構造体です。

  • beta — 係数推定値 b

  • dfe — 誤差に対する自由度

  • sfit — 推定された分散パラメーター

  • s — 理論的または推定された分散パラメーター

  • estdisp'estdisp' 名前と値のペアの引数の値が 'off' の場合は 0、'estdisp' 名前と値のペアの引数の値が 'on' の場合は 1。

  • covb — B に対して推定された共分散行列

  • se — 係数推定値の標準誤差のベクトル b

  • coeffcorr — 以下に対する相関行列 b

  • tb の t 統計量

  • pb"p"

  • resid — 残差のベクトル

  • residp — ピアソン残差のベクトル

  • residd — 逸脱度残差のベクトル

  • resida — Anscombe 残差のベクトル

二項分布またはポアソン分布に分散パラメーターを推定する場合、stats.sstats.sfit と等しく設定します。また、stats.se の要素とそれらの理論値には、要因 stats.s の分だけ差異が生じます。

すべて折りたたむ

標本データを入力します。

x = [2100 2300 2500 2700 2900 3100 ...
     3300 3500 3700 3900 4100 4300]';
n = [48 42 31 34 31 21 23 23 21 16 17 21]';
y = [1 2 0 3 8 8 14 17 19 15 17 21]';

y の各値は対応する n の試行回数に対する成功回数であり、x には予測子変数の値が格納されています。

x における y についてのプロビット回帰モデルをあてはめます。

b = glmfit(x,[y n],'binomial','link','probit');

推定成功回数を計算します。観測された成功率と推定された成功率を x の値に対してプロットします。

yfit = glmval(b,x,'probit','size',n);
plot(x, y./n,'o',x,yfit./n,'-','LineWidth',2)

標本データを読み込みます。

load fisheriris

列ベクトル species は、3 種類のアヤメ setosa、versicolor、virginica で構成されています。double 行列 meas は、花に関する 4 種類の測定値、がく片の長さと幅 (cm) と花弁の長さと幅 (cm) で構成されています。

応答変数と予測子変数を定義します。

X = meas(51:end,:);
y = strcmp('versicolor',species(51:end));

@ を使用して作成される 3 つの関数ハンドルを定義します。これらで、ロジット リンク関数に対するリンク、リンクの導関数、逆リンクを定義します。これらを cell 配列に格納します。

link = @(mu) log(mu ./ (1-mu));
derlink = @(mu) 1 ./ (mu .* (1-mu));
invlink = @(resp) 1 ./ (1 + exp(-resp));
F = {link, derlink, invlink};

定義したリンク関数と glmfit を使用して、ロジスティック回帰をあてはめます。

b = glmfit(X,y,'binomial','link',F)
b = 5×1

   42.6378
    2.4652
    6.6809
   -9.4294
  -18.2861

リンク関数 logit を使用して一般化線形モデルをあてはめ、結果を比較します。

b = glmfit(X,y,'binomial','link','logit')
b = 5×1

   42.6378
    2.4652
    6.6809
   -9.4294
  -18.2861

参考文献

[1] Dobson, A. J. An Introduction to Generalized Linear Models. New York: Chapman & Hall, 1990.

[2] McCullagh, P., and J. A. Nelder. Generalized Linear Models. New York: Chapman & Hall, 1990.

[3] Collett, D. Modeling Binary Data. New York: Chapman & Hall, 2002.

R2006a より前に導入