Main Content

多変量一般線形モデル

この例では、mvregress を使用して推定の多変量一般線形モデルを設定する方法を示します。

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

このデータには、1985 年における 205 台の輸入自動車の標本に関する測定値が含まれています。

ここでは、都市とハイウェイの MPG (列 14 と 15) の二変量応答をモデル化します。

予測子には、ホイール ベース (列 3)、車両総重量 (列 7)、燃料タイプ (列 18) を使用します。最初の 2 つの予測子は連続的で、この例ではセンタリングおよびスケーリングされています。燃料タイプは、2 つのカテゴリ (1120) を含むカテゴリカル変数であるため、回帰にはダミー指標変数が必要です。

load('imports-85')
Y = X(:,14:15);
[n,d] = size(Y);

X1 = zscore(X(:,3));
X2 = zscore(X(:,7));
X3 = X(:,18)==20;

Xmat = [ones(n,1) X1 X2 X3];

変数 X3 は、燃料タイプ 20 については 1 の値、それ以外については 0 の値を使用するようにコード化されます。

便宜上、3 つの予測子 (ホイール ベース、車両総重量、燃料タイプのインジケーター) を 1 つの計画行列に結合し、1 つの切片項を追加します。

計画行列を設定する。

これらの予測子が与えられると、二変量 MPG 応答の多変量一般線形モデルは次のようになります。

[y11y12y21y22yn1yn2]=[1x11x12x131x21x22x231xn1xn2xn3][β01β02β11β12β21β22β31β32]+[ϵ11ϵ12ϵ21ϵ22ϵn1ϵn2],

ここで、ϵi=(ϵi1,ϵi2)-MVN(0,Σ) です。合計で K=8 個の回帰係数があります。

mvregress で使用するため、2 行 8 列 (d 行 K 列) の行列から構成される長さ n=205 の cell 配列を作成します。cell 配列の i 番目の行列は次のようになります。

X(i)=[10xi10xi20xi30010xi10xi20xi3].

Xcell = cell(1,n);
for i = 1:n
    Xcell{i} = [kron([Xmat(i,:)],eye(d))];
end

この仕様の計画行列の場合、対応するパラメーター ベクトルは次のようになります。

β=[β01β02β11β12β21β22β31β32].

回帰係数を推定する。

最尤推定法を使用してモデルを当てはめます。

[beta,sigma,E,V] = mvregress(Xcell,Y);
beta
beta = 8×1

   33.5476
   38.5720
    0.9723
    0.3950
   -6.3064
   -6.3584
   -9.2284
   -8.6663

これらの係数推定では、以下が示されます。

  • 平均ホイール ベース、車両総重量および燃料タイプ 11 の車両に対して予想される MPG は、都市とハイウェイでそれぞれ 33.5 および 38.6 です。燃料タイプ 20 の場合、予想される MPG は都市とハイウェイで 33.5476 - 9.2284 = 24.3192 および 38.5720 - 8.6663 = 29.9057 です。

  • 車両総重量の標準偏差が 1 増加すると、予想される MPG に対して都市とハイウェイでほぼ同じ影響があります。他のすべてが等しいと仮定すると、都市とハイウェイの両方における MPG に関して、予想される MPG は車両総重量の標準偏差が 1 増加するたびに約 6.3 減少します。

  • 他のすべてが等しい場合、ホイール ベースの標準偏差が 1 増加するたびに、都市の予想される MPG は 0.972 増加しますが、ハイウェイの予想される MPG は 0.395 だけ増加します。

標準誤差の計算

回帰係数の標準誤差は、この分散共分散行列 V の対角の平方根になります。

se = sqrt(diag(V))
se = 8×1

    0.7365
    0.7599
    0.3589
    0.3702
    0.3497
    0.3608
    0.7790
    0.8037

係数行列の形状の変更

回帰係数は元の 4 行 2 列の行列の形状に簡単に変更することができます。

B = reshape(beta,2,4)'
B = 4×2

   33.5476   38.5720
    0.9723    0.3950
   -6.3064   -6.3584
   -9.2284   -8.6663

モデルの仮定をチェックする。

モデルの仮定では、z=EΣ-1/2 は独立しており、二変量標準正規分布に従います。この 2 次元の例では、散布図を使用してこの仮定の有効性を評価できます。

z = E/chol(sigma);
figure()
plot(z(:,1),z(:,2),'.')
title('Standardized Residuals')
hold on

% Overlay standard normal contours
z1 = linspace(-5,5);
z2 = linspace(-5,5);
[zx,zy] = meshgrid(z1,z2);
zgrid = [reshape(zx,100^2,1),reshape(zy,100^2,1)];
zn = reshape(mvnpdf(zgrid),100,100);
[c,h] = contour(zx,zy,zn);
clabel(c,h)

Figure contains an axes object. The axes object with title Standardized Residuals contains 2 objects of type line, contour. One or more of the lines displays its values using only markers

いくつかの残差が予想よりも大きくても、全体としては、多変量正規性の仮定に対する証拠はほとんどありません。

参考

|

関連する例

詳細