主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

一般化線形モデルによるデ,タの近似

この例では,glmfitglmvalを使用して,一般化線形モデルの当てはめと評価を行う方法を示します。通常の線形回帰を使用すると,直線,またはパラメーターにおいて線形である任意の関数を,正規分布した誤差を伴うデータにあてはめることができます。これは最もよく使用されている回帰モデルですが,必ずしも現実的なモデルであるとは限りません。一般化線形モデルは,線形モデルを2の方法で拡張したものです。第1に,リンク関数を導入することで,パラメ,タ,における線形性の仮定が緩和されます。第2に,正規分布以外の誤差分布をモデル化できます。

一般化線形モデル

回帰モデルは,応答変数(一般にyで示される)の分布を,1つまたは複数の予測子変数(一般にx1, x2などで示される)を使用して定義します。最もよく使用されている回帰モデルである通常の線形回帰は,正規確率変数としてyをモデル化します。この変数の平均は予測子の線形関数b0 + b1*x1 +…であり,この変数の分散は定数です。予測子xが1つのみという最も単純なケースでは,このモデルは,各点の周囲にガウス分布をもつ直線として表されます。

Mu = @(x) -1.9+.23*x;X = 5:.1:15;Yhat = (x);Dy = -3.5:.1:3.5;Sz =大小(dy);K =(长度(dy)+1)/2;X1 = 7*ones(sz);Y1 = mu(x1)+dy;Z1 = normpdf(y1,mu(x1),1);X2 = 10*ones(sz); y2 = mu(x2)+dy; z2 = normpdf(y2,mu(x2),1); x3 = 13*ones(sz); y3 = mu(x3)+dy; z3 = normpdf(y3,mu(x3),1); plot3(x,yhat,zeros(size(x)),“b -”...(x1, y1, z1,的r -, x1([k k]),y1([k k]),[0 z1(k)],“:”...x2, y2、z2的r -, x2([k k]),y2([k k]),[0 z2(k)],“:”...x3, y3、z3、的r -, x3([k k]),y3([k k]),[0 z3(k)],“:”);zlim ([0 1]);包含(“X”);ylabel (“Y”);zlabel (的概率密度);网格;视图(45 [-45]);

一般化線形モデルでは,応答の平均は,予測子の線形関数g (b0 + b1 * x1 +…)の単調非線形変換としてモデル化されます。変換gの逆は,“链接”関数として知られています。例として、logit (シグモイド) リンクや log リンクが挙げられます。また、y が、二項分布やポアソン分布といった非正規分布をもつこともあります。たとえば、log リンクと単一の予測子 x を含むポアソン回帰は、各点の周囲にポアソン分布をもつ指数曲線として表すことができます。

Mu = @(x) exp(-1.9+.23*x);X = 5:.1:15;Yhat = (x);X1 = 7*ones(1,5);Y1 = 0:4;Z1 = poisspdf(y1,mu(x1));X2 = 10*ones(1,7);Y2 = 0:6;Z2 = poisspdf(y2,mu(x2));X3 = 13*ones(1,9); y3 = 0:8; z3 = poisspdf(y3,mu(x3)); plot3(x,yhat,zeros(size(x)),“b -”...[x1;x1],[日元;y1]、[z1;0(大小(y1))),的r -(x1, y1, z1,“r”。...[x2;x2]、[y2;y2]、[z2;0(大小(y2))),的r -x2, y2, z2,“r”。...[x3;x3]、[y3;y3]、[z3;0(大小(y3))),的r -z3、x3 y3,“r”。);zlim ([0 1]);包含(“X”);ylabel (“Y”);zlabel (“概率”);网格;视图(45 [-45]);

ロジスティック回帰の近似

この例には,燃費テストで不合格になった,さまざまな重量の自動車の割合をモデル化するのに役立つ実験が含まれています。デ,タには,重量,テストした自動車の台数,および不合格台数の観測値が含まれています。

一套汽车砝码重量= [2100 2300 2500 2700 2900 3100 3300 3500 3700 3900 4100 4300]';每种重量测试的汽车数量。%测试= [48 42 31 34 31 21 23 23 21 16 17 21]';每个重量下未通过测试的汽车数量。Failed = [1 2 0 3 8 8 14 17 19 15 17 21]';每种重量下不合格的汽车的比例。比例=失败。/测试;情节(重量、比例、“年代”)包含(“重量”);ylabel (“比例”);

このグラフは,不合格の自動車の比率を重量の関数として表したものです。不合格台数は,重量と共に値が大きくなる確率パラメーターPを使用して二項分布から得られると仮定するのが合理的です。しかし,どの程度正確にpが重量に比例すべきでしょうか。

これらのデ,タへの直線のあてはめを試みることができます。

linearCoef = polyfit(权重,比例,1);linearFit = polyval(线性系数,权重);情节(重量、比例、“年代”、重量、linearFit的r -,[2000 4500],[0 0],凯西:”,[2000 4500],[1 1],凯西:”)包含(“重量”);ylabel (“比例”);

この線形近似には,以下の2の問題があります。

1)線が予測する比率が,0未満の範囲と,1を超える範囲である。

2)比率には必ず境界があるため,比率が正規分布していない。これは,単純な線形回帰モデルの近似に必要とされる仮定の1に違反します。

高次多項式が役立ように思われます。

[cubicCoef,stats,ctr] = polyfit(权重,比例,3);cubicFit = polyval(cubicCoef,weight,[],ctr);情节(重量、比例、“年代”、重量、cubicFit的r -,[2000 4500],[0 0],凯西:”,[2000 4500],[1 1],凯西:”)包含(“重量”);ylabel (“比例”);

しかし,この近似にも同様の問題があります。グラフからわかるように,近似された比率は,重量が4000を上回ると下がり始めます。実際,この比率は,重量値がさらに増えると負になります。これも当然ながら,正規分布の仮定に違反します。

高次の多項式の代わりにglmfitを使用する方が,ロジスティック回帰モデルを近似するのに適しています。ロジスティック回帰は一般化線形モデルの特殊なケースであり,以下の2つの理由から,これらのデータにとっては線形回帰よりも適切です。第1の理由は,二項分布に適した近似手法が採用されているからです。第2の理由は,予測される比率がロジスティックリンクによって範囲[0,1]に制限されるからです。

ロジスティック回帰の場合は,予測子行列と,不合格台数を含む列およびテストした台数を含む列をそれぞれ1つもつ行列を指定します。また,二項分布とロジットリンクも指定します。

[logitCoef,dev] = glmfit(重量,[失败的测试],“二”分对数的);logitFit = glmval(logitCoef,weight,分对数的);情节(重量、比例、“废话”、重量、logitFit的r -);包含(“重量”);ylabel (“比例”);

このプロットで示されているように,近似された比率は,重量の増減に伴って1または0に近づく漸近線となります。

モデル診断

関数glmfitは,近似を調べモデルをテストするための出力を多数備えています。たとえば2つのモデルの逸脱度を比較することで,二乗項によって近似が大幅に向上するかどうかを判断できます。

[logitCoef2,dev2] = glmfit([weight重量。]^ 2],(未测试)“二”分对数的);Pval = 1 - chi2cdf(dev-dev2,1)
Pval = 0.4019

p値が大きいことからわかるように,これらのデータについては,2次項によって近似が大幅に向上することはありません。2 .の近似のプロットは,これらの近似に大差がないことを示しています。

logitFit2 = glmval(logitCoef2,[weight weight.^2],分对数的);情节(重量、比例、“废话”、重量、logitFit的r -、重量、logitFit2“g -”);传奇(“数据”“线性条件”“线性和二次项”“位置”“西北”);

ピアソン残差の確率プロットを調べることで,適合度を確認できます。これらの残差は正規化されているため,モデルがデータへの適切なあてはめである場合に,概ね標準正規分布をもちます(この標準化がなければ,残差はさまざまな分散をもつことになります)。

[logitCoef,dev,stats] = glmfit(weight,[失败的测试],“二”分对数的);normplot (stats.residp);

この残差プロットは,正規分布と十分適合していることを示しています。

モデル予測の評価

満足できるモデルが得られれば,それを使用して,信頼限界の計算などの予測を行うことができます。ここでは,100台のう何台の自動車が,4の重量での燃費テストに不合格となるかを予測します。

weightPred = 2500:500:4000;[failedPred,dlo,dhi] = glmval(logitCoef,weightPred,分对数的统计,.95,100);dlo errorbar (weightPred failedPred,济,“:”);

2項モデル向けのリンク関数

glmfitがサポトする5の分布それぞれにいて,(既定)。二項分布の場合,基準リンクはlogitです。また,2項モデルに適したリンクが他にも3あります。これら4のリンクすべてが,平均応答を区間[0,1]ます。

Eta = -5:.1:5;Plot (eta,1 ./ (1 + exp(-eta)),“- - -”埃塔,normcdf (eta),“- - -”...1 -exp(-exp(Eta))“- - -”埃塔,exp (exp (eta)),“- - -”);包含(“预测因子的线性函数”);ylabel (“预测平均反应”);传奇(分对数的“probit”互补的双对数的“对数”“位置”“东”);

たとえば,probitリンクを使用した場合の近似とロジットリンクを使用した場合の近似を比較できます。

probitCoef = glmfit(重量,[测试失败],“二”“probit”);probitFit = glmval(probitCoef,权重,“probit”);情节(重量、比例、“废话”、重量、logitFit的r -、重量、probitFit“g -”);传奇(“数据”“Logit模型”“Probit模型”“位置”“西北”);

多くの場合,これら4つのリンク関数をデータによって区別するのは難しいため,どのリンク関数を選択するかは,理論的な理由に基づいて決められます。