mnrval
多項分布ロジスティック回帰値
構文
説明
例
ノミナル応答のカテゴリ確率を推定する
ノミナル結果の多項分布回帰を近似して、カテゴリ確率を推定します。
標本データを読み込みます。
load fisheriris
列ベクトル species
は、3 種類のアヤメ setosa、versicolor、virginica で構成されています。double 行列 meas
は、花に関する 4 種類の測定値、がく片の長さと幅 (cm) と花弁の長さと幅 (cm) で構成されています。
ノミナル応答変数を定義します。
sp = nominal(species); sp = double(sp);
この場合、sp
で、1、2、3 はそれぞれ、setosa、versicolor、virginica という種類を表します。
ノミナル モデルを近似し、花の測定値を予測子変数として使用して種類を推定します。
[B,dev,stats] = mnrfit(meas,sp);
測定値 (6.3, 2.8, 4.9, 1.7) をもつアヤメの花の特定の種類である確率を推定します。
x = [6.3, 2.8, 4.9, 1.7]; pihat = mnrval(B,x); pihat
pihat = 1×3
0 0.3977 0.6023
測定値 (6.3, 2.8, 4.9, 1.7) をもつアヤメの花が setosa である確率は 0、versicolor である確率は 0.3977、virginica である確率は 0.6023 です。
順序応答の確率推定に対する誤差範囲の上限と下限を推定する
カテゴリ間に自然な順序があるカテゴリカル応答について、多項分布回帰モデルを近似します。次に、カテゴリ確率推定に対する信頼限界の上限と下限を推定します。
標本データを読み込み、予測子変数を定義します。
load('carbig.mat')
X = [Acceleration Displacement Horsepower Weight];
予測子変数は、自動車の速度、エンジン排気量、馬力および重量です。応答変数は、ガロンあたりの走行マイル数 (MPG
) です。
MPG
を 9 ~ 48 mpg の 4 つのレベルに分類する順序応答変数を作成します。
miles = ordinal(MPG,{'1','2','3','4'},[],[9,19,29,39,48]); miles = double(miles);
miles では、1 はガロンあたりの走行マイル数が 9 ~ 19 の自動車を、2 はガロンあたりの走行マイル数が 20 ~ 29 の自動車を示します。同様に、3 と 4 はそれぞれガロンあたりの走行マイル数が 30 ~ 39 と 40 ~ 48 の自動車を示します。
応答変数 miles
の多項分布回帰モデルを近似します。順序モデルの場合、既定の 'link'
は logit
で、既定の 'interactions'
は 'off'
です。
[B,dev,stats] = mnrfit(X,miles,'model','ordinal');
= (12、113、110、2670) である自動車のガロンあたりの走行マイル数に対する確率信頼区間の確率推定値と 95% の誤差範囲を計算します。
x = [12,113,110,2670]; [pihat,dlow,hi] = mnrval(B,x,stats,'model','ordinal'); pihat
pihat = 1×4
0.0615 0.8426 0.0932 0.0027
カテゴリ確率推定に対する信頼限界を計算します。
LL = pihat - dlow; UL = pihat + hi; [LL;UL]
ans = 2×4
0.0073 0.7829 0.0283 -0.0003
0.1157 0.9022 0.1580 0.0057
ノミナル応答のカテゴリ カウントと誤差範囲を推定する
ノミナル結果の多項分布回帰を近似して、カテゴリ カウントを推定します。
標本データを読み込みます。
load fisheriris
列ベクトル species
は、3 種類のアヤメ setosa、versicolor、virginica で構成されています。double 行列 meas
は、花に関する 4 種類の測定値、がく片の長さと幅 (cm) と花弁の長さと幅 (cm) で構成されています。
ノミナル応答変数を定義します。
sp = nominal(species); sp = double(sp);
この場合、sp
で、1、2、3 はそれぞれ、setosa、versicolor、virginica という種類を表します。
ノミナル モデルを近似し、花の測定値に基づいて種類を推定します。
[B,dev,stats] = mnrfit(meas,sp);
測定値 (6.3, 2.8, 4.9, 1.7) をもつ 100 本のアヤメの標本について、それぞれの種類のカテゴリ数を推定します。
x = [6.3, 2.8, 4.9, 1.7]; yhat = mnrval(B,x,18)
yhat = 1×3
0 7.1578 10.8422
カウントの誤差範囲を推定します。
[yhat,dlow,hi] = mnrval(B,x,18,stats,'model','nominal');
カテゴリ確率推定に対する信頼限界を計算します。
LL = yhat - dlow; UL = yhat + hi; [LL;UL]
ans = 2×3
0 3.3019 6.9863
0 11.0137 14.6981
カウント推定をプロットします。
1 つの予測子変数と、3 つのカテゴリをもつ 1 つのカテゴリカル応答変数を含む標本データを作成します。
x = [-3 -2 -1 0 1 2 3]';
Y = [1 11 13; 2 9 14; 6 14 5; 5 10 10;...
5 14 6; 7 13 5; 8 11 6];
[Y x]
ans = 7×4
1 11 13 -3
2 9 14 -2
6 14 5 -1
5 10 10 0
5 14 6 1
7 13 5 2
8 11 6 3
予測子変数 x
の 7 つの異なる値に関する観測があります。応答変数 Y
には 3 つのカテゴリがあり、データには、x
の観測ごとに、25 の個体のうち、Y
の各カテゴリに含まれる数が示されます。たとえば、x
が -3 の場合、25 個のうち 1 個がカテゴリ 1、11 個がカテゴリ 2、13 個がカテゴリ 3 として観測されます。同様に、x
が 1 の場合、5 個がカテゴリ 1、14 個がカテゴリ 2、6 個がカテゴリ 3 として観測されます。
積み重ね表示棒グラフに、各カテゴリの数と x
値をプロットします。
bar(x,Y,'stacked');
ylim([0 25]);
個体の応答カテゴリ確率に対するノミナル モデルを、カテゴリごとに単一の予測子変数 x
で個別の勾配を使用して近似します。
betaHatNom = mnrfit(x,Y,'model','nominal',... 'interactions','on')
betaHatNom = 2×2
-0.6028 0.3832
0.4068 0.1948
betaHatOrd
の最初の行には、最初の 2 つの応答カテゴリの切片項が含まれます。2 番目の行には勾配が含まれます。mnrfit
は 3 番目のカテゴリを基準カテゴリとして受け入れるため、3 番目のカテゴリの係数はゼロと見なされます。
3 つの応答カテゴリに対する予測確率を計算します。
xx = linspace(-4,4)'; piHatNom = mnrval(betaHatNom,xx,'model','nominal',... 'interactions','on');
3 番目のカテゴリになる確率は、単純に 1 - P( = 1) - P( = 2) です。
棒グラフに、各カテゴリの推定累積数をプロットします。
line(xx,cumsum(25*piHatNom,2),'LineWidth',2);
3 番目のカテゴリに対する累積確率は常に 1 です。
累積応答カテゴリ確率の "平行" 順序のモデルを、すべてのカテゴリで共通する、単一の予測子変数 x
の勾配を使用して近似します。
betaHatOrd = mnrfit(x,Y,'model','ordinal',... 'interactions','off')
betaHatOrd = 3×1
-1.5001
0.7266
0.2642
betaHatOrd
の最初の 2 つの要素は、最初の 2 つの応答カテゴリの切片項です。betaHatOrd
の最後の要素は共通の勾配です。
最初の 2 つの応答カテゴリに対する予測累積確率を計算します。3 番目のカテゴリに対する累積確率は常に 1 です。
piHatOrd = mnrval(betaHatOrd,xx,'type','cumulative',... 'model','ordinal','interactions','off');
観測された累積数の棒グラフに推定累積数をプロットします。
figure() bar(x,cumsum(Y,2),'grouped'); ylim([0 25]); line(xx,25*piHatOrd,'LineWidth',2);
入力引数
B
— 係数推定値
mnrfit
で返されるベクトルまたは行列
多項分布ロジスティック回帰モデルの係数推定値。mnrfit
によって返されるベクトルまたは行列として指定します。これは、モデルと交互作用に応じてベクトルまたは行列になります。
例: B = mnrfit(X,y);
pihat = mnrval(B,X)
データ型: single
| double
X
— 標本データ
行列
予測子の標本データ。n 行 p 列として指定します。X
には p 個の予測子に対する n 個の観測が含まれます。
メモ
mnrval
は自動的に定数項をすべてのモデルに含めます。X
に 1 の列を入力しないでください。
例: pihat = mnrval(B,X)
データ型: single
| double
stats
— モデルの統計量
mnrfit
によって返される構造体
モデルの統計量。mnrfit
によって返される構造体として指定します。カテゴリ確率およびカウントの誤差範囲の上限と下限を計算するには、mnrval
で stats
入力引数を使用しなければなりません。
例: [B,dev,stats] = mnrfit(X,y);
[pihat,dlo,dhi] = mnrval(B,X,stats)
ssize
— 標本サイズ
正の整数の列ベクトル
予測子変数の各組み合わせに対して応答カテゴリのアイテムの数を返す標本サイズ。正の整数の n 行 1 列の列ベクトルとして指定します。
たとえば、3 つのカテゴリをもつ応答変数の場合、各カテゴリの個体の数の観測値がそれぞれ y1、y2、y3 である場合、その観測値の標本サイズ m は m = y1 + y2 + y3 になります。
n 個の観測値の標本サイズがベクトル sample
に含まれる場合、次のように標本サイズを入力できます。
例: yhat = mnrval(B,X,sample)
データ型: single
| double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'model','ordinal','link','probit','type','cumulative'
は、プロビット リンク関数をもつ順序モデルの累積確率に対する推定を mnrval
が返すことを指定します。
model
— 多項分布モデルのタイプ
'nominal'
(既定値) | 'ordinal'
| 'hierarchical'
mnrfit
で近似する多項分布モデルのタイプ。'model'
と、以下のいずれかで構成されるコンマ区切りペアとして指定します。
'nominal' | 既定の設定。応答カテゴリに順序がない場合に指定します。 |
'ordinal' | 応答カテゴリに自然な順序がある場合に指定します。 |
'hierarchical' | 応答カテゴリの選択が逐次的である場合に指定します。 |
例: 'model'
,'ordinal'
interactions
— 多項分布カテゴリと係数間の交互作用を表すインジケーター
'on'
| 'off'
mnrfit
で近似するモデルの多項分布カテゴリと係数間の交互作用を表すインジケーター。'interactions'
と、以下のいずれかで構成されるコンマ区切りペアとして指定します。
'on' | ノミナル モデルと階層モデルの既定値。カテゴリ間で異なる切片と係数をもつモデルを近似する場合に指定します。 |
'off' | 順序モデルの既定値。すべての多項分布のカテゴリ間で、切片が異なっていても予測子変数が共通する係数セットをもつモデルを近似する場合に指定します。多くの場合、これは "並列回帰" または "比例オッズ モデル" と呼ばれます。 |
例: 'interactions'
,'off'
データ型: logical
link
— リンク関数
'logit'
(既定値) | 'probit'
| 'comploglog'
| 'loglog'
mnrfit
が順序モデルと階層モデルに使用するリンク関数。'link'
と、以下のいずれかで構成されるコンマ区切りペアとして指定します。
'logit' | 既定。f(γ) = ln(γ/(1 – γ)) |
'probit' | f(γ) = Φ-1(γ) — 誤差項は分散 1 で正規分布されます。 |
'comploglog' | 相補 log-log f(γ) = ln(–ln(1 –γ)) |
'loglog' | f(γ) = ln(–ln(γ)) |
リンク関数は、応答確率と、予測子の線形結合である Xβ との関係を定義します。
γ は、モデルが順序応答または逐次的/入れ子応答のどちらに対応するかどうかに応じて、累積確率または条件付き確率の関数になります。
ノミナル モデルの場合は 'link'
パラメーターを指定できません。このモデルでは常に多項ロジット リンクを使用します。
ここで、π はカテゴリカル確率を表し、r は基準カテゴリに対応します。k は応答カテゴリの総数、p は予測子変数の数です。mnrfit
では、ノミナル モデルの基準カテゴリとして最後のカテゴリを使用します。
例: 'link'
,'loglog'
type
— 推定する確率またはカウントのタイプ
'category'
(既定値) | 'cumulative'
| 'conditional'
推定する確率またはカウントのタイプ。'type'
と、以下のいずれかを含むコンマ区切りペアとして指定します。
'category' | 既定の設定。k 個の多項分布カテゴリの確率 (またはカウント) に対する予測と誤差範囲を返す場合に指定します。 |
'cumulative' | n 行 (k – 1) 列の行列のように、最初の k – 1 個の多項分布のカテゴリの累積確率 (またはカウント) に対する予測と信頼限界を返すために指定します。k 番目の予測累積確率は常に 1 です。 |
'conditional' | 最初の k – 1 の条件付きカテゴリ確率 (カウント) (つまり、結果がカテゴリ j より高いことを前提としたカテゴリ j の確率 (カウント)) について予測および誤差範囲を返す場合に指定します。'type' が 'conditional' で、標本サイズの引数 ssize を指定した場合、X の各行で予測されるカウントは、すべてのカテゴリで対応する ssize の要素を条件とします。 |
例: 'type'
,'cumulative'
confidence
— 信頼度
0.95 (既定値) | (0,1) の範囲のスカラー値
誤差範囲の信頼度。'confidence'
と、(0,1) の範囲内のスカラー値で構成されるコンマ区切りのペアとして指定します。
たとえば、99% の誤差範囲の場合は、次のように信頼度を指定できます。
例: 'confidence'
,0.99
データ型: single
| double
出力引数
pihat
— 確率推定
n 行 (k – 1) 列の行列
各多項分布カテゴリの確率推定。n 行 (k – 1) 列の行列として返されます。ここで、n は観測の数、k は応答カテゴリの数です。
yhat
— カウント推定
n 行 k – 1 列の行列
各応答カテゴリの数のカウント推定。n 行 k – 1 列の行列として返されます。ここで、n は観測の数、k は応答カテゴリの数です。
参照
[1] McCullagh, P., and J. A. Nelder. Generalized Linear Models. New York: Chapman & Hall, 1990.
バージョン履歴
R2006b で導入
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)