ドキュメンテーション

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

LinearModel クラス

スーパークラス: CompactLinearModel

線形回帰モデルのクラス

説明

線形回帰の学習データ、モデル記述子、診断情報および近似係数からなるオブジェクト。predict メソッドまたは feval メソッドを使用してモデル応答を予測します。

構築

mdl = fitlm(tbl) または mdl = fitlm(X,y) は、テーブルまたはデータセット配列 tbl の線形モデル、またはデータ行列 X に対する応答 y の線形モデルを作成します。詳細は、関数 fitlm を参照してください。

mdl = stepwiselm(tbl) または mdl = stepwiselm(X,y) は、重要でない予測子を除外してテーブルまたはデータセット配列 tbl の線形モデル、またはデータ行列 X に対する応答 y の線形モデルを作成します。詳細は、関数 stepwiselm を参照してください。

入力引数

すべて展開する

入力データ。テーブルまたはデータセット配列として指定します。modelspecformula の場合、予測子および応答として使用される変数が指定されます。それ以外の場合、予測子変数と応答変数を指定しないときは、既定では、最後の変数が応答変数で、その他の変数が予測子変数になります。

予測子変数は数値、あるいは論理またはカテゴリカルなどのグループ化変数の型にできます (グループ化変数を参照してください)。応答は数値または論理でなければなりません。

応答変数として異なる列を設定するには、名前と値のペア引数 ResponseVar を使用します。列のサブセットを予測子として使用するには、名前と値のペア引数 PredictorVars を使用します。

n 行 p 列の行列として指定される予測子変数。ここで、n は観測値の数、p は予測子変数の数です。X の各列が 1 つの変数を表し、各行が 1 つの観測値を表します。

既定では、明示的に削除しない限り、モデルには定数項があるので、1 の列を X に含めないでください。

データ型: single | double | logical

n 行 1 列のベクトルとして指定される応答変数。ここで、n は観測値の数です。y の各エントリは X の対応する行に対する応答です。

データ型: single | double | logical

プロパティ

すべて展開する

係数推定値の共分散行列。p 行 p 列の数値の行列として格納されます。p は近似済みモデルの係数の数です。

係数の名前。各係数のラベルが含まれている文字ベクトルの cell 配列として格納されます。

係数の値。テーブルとして格納されます。Coefficients には、係数ごとに 1 つの行と次の列があります。

  • Estimate — 推定される係数値

  • SE — 推定の標準誤差

  • tStat — 係数が 0 である検定の t 統計

  • pValue — t 統計量の p 値

ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、mdl 内の推定された係数ベクトルは次のようになります。

beta = mdl.Coefficients.Estimate

coefTest を使用して係数に他の検定を実行します。

誤差 (残差) の自由度。推定された係数の数を観測値の数から減算した値に等しくなります。正の整数値として格納されます。

診断値。入力データ (tbl または X) と同じ行数の表として格納されます。Diagnostics には、外れ値と影響が大きい観測値を特定するために役立つ診断が格納されます。多くの診断は、単一の観測を削除する近似への効果を説明しています。Diagnostics には以下のフィールドが含まれます。

フィールド意味ユーティリティ
LeverageHatMatrix の対角要素Leverage は、観測の予測値が、どの程度までその観測の観測値によって決定されるかを示します。1 に近い値は、他の観測からの寄与がわずかしかなく、予測がその観測によって大部分決定されることを示します。0 に近い値は、近似が他の観測によって大部分決定されることを示します。係数 P と観測 N のあるモデルの場合、Leverage の平均値は P/N です。2*P/N より大きな Leverage をもつ観測は、てこ比が高いと認識されます。
CooksDistance近似値におけるスケーリングされた変化のクックの測定CooksDistance は、近似値におけるスケーリングされた変化の測定です。平均のクックの距離よりも 3 倍長い CooksDistance の観測は外れ値にできます。
Dffits近似値と観測数の差をスケーリングした Delete-1Dffits は、各観測で近似した値がスケーリングされた変化であり、近似から観測を除外すると発生します。2*sqrt(P/N) より大きい絶対値をもつ値は、重要性が高いと見なすことができます。
S2_i観測数に対する分散の Delete-1S2_i は各観測を順に削除することによって取得した一連の残差分散推定値です。これらの値は MSE プロパティの値と比較できます。
CovRatio観測数に対する共変量の行列式の Delete-1 比CovRatio は、フル モデルに対する共分散行列の行列式に対する、順に削除された各観測の係数共変量行列の行列式の比です。1+3*P/N より大きいか、1-3*P/N より小さい値は、影響力をもつ点を示します。
Dfbetas共分散推定値と観測数の差をスケーリングした Delete-1DfbetasNP 列の行列で、各観測を順に除外した場合に発生する係数推定値のスケーリングされた変化です。絶対値が 3/sqrt(N) より大きい値は、その観測が対応する係数に大きな影響力をもつことを示します。
HatMatrix観測された応答から近似を計算するための射影行列HatMatrix は、Fitted = HatMatrix*Y となる NN 列の行列です。ここで、Y は応答ベクトル、Fitted は応答の近似値のベクトルです。

ObservationInfo.Missing 内の欠損値のために近似に使用されなかった行には、次を例外として NaN 値が含まれます。

(ObservationInfo.Excluded において値が除外されたことが原因で近似に使用されなかった行には、NaN 値が格納されます。ただし、その観測値 (行) が近似に含まれているかどうかに関係なく、Delete-1 診断で統計量を参照している場合は例外となります。これらの診断は重要な観測の識別に役立ちます。

入力データに基づいてあてはめた (予測した) 応答値。n 行 1 列の数値ベクトルとして格納されます。n は入力データの観測値数です。predict を使用して、他の予測値の予測を計算するか、Fitted で信頼限界を計算します。

モデルの情報。LinearFormula オブジェクトまたは NonLinearFormula オブジェクトとして格納されます。線形または一般化線形回帰モデルをあてはめる場合、FormulaLinearFormula オブジェクトです。非線形回帰モデルをあてはめる場合、FormulaNonLinearFormula オブジェクトです。

応答値におけるモデルの分布の対数尤度。数値として格納されます。平均はモデルからあてはめられ、他のパラメーターはモデルのあてはめに伴って推定されます。

モデルの比較基準。次のフィールドがある構造体として格納されます。

  • AIC — 赤池情報量基準。AIC = –2*logL + 2*mlogL は対数尤度、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

平均二乗誤差 (残差)。数値として格納されます。平均二乗誤差は MSE = SSE / DFE により計算されます。ここで、MSE は平均二乗誤差、SSE は誤差の二乗和、DFE は自由度です。

モデルの係数の数。正の整数として格納されます。NumCoefficients には、モデルの項がランク落ちとなる場合にゼロに設定される係数が含まれています。

モデル内の推定された係数の数。正の整数として格納されます。NumEstimatedCoefficients には、モデルの項がランク落ちとなる場合にゼロに設定される係数は含まれていません。NumEstimatedCoefficients は回帰の自由度です。

近似関数があてはめに使用した観測値の数。正の整数として格納されます。これは、元のテーブル、データセットまたは行列に入力された観測の数から、除外された行 (Excluded 名前と値のペアで設定) または欠損値のある行を差し引いたものです。

モデルのあてはめに使用した予測子変数の数。正の整数として格納されます。

入力データに含まれている変数の数。正の整数として格納されます。NumVariables は、元のテーブルまたはデータセットに含まれている変数の数であるか、近似が予測子行列と応答ベクトルに基づいている場合は、これらの配列の列の総数です。これは、予測子または応答としては使用されない変数があればそれら含みます。

観測値の情報。n 行 4 列のテーブルとして格納されます。n は入力データの行数に等しくなります。ObservationInfo の 4 列には、以下が格納されます。

フィールド説明
Weights観測値の重み。既定の設定はすべて 1 です。
Excluded論理値 1 は、Exclude の名前と値のペアで近似から除外した観測を示します。
Missing論理値 1 は入力に欠損値があることを示します。欠損値は近似に使用されません。
Subset論理値 1 は、観測が除外または欠損ではないことを示すため、近似に使用されます。

観測値の名前。あてはめで使用した観測値の名前が含まれている文字ベクトルの cell 配列として格納されます。

  • 近似が観測名を含むテーブルまたはデータセットに基づいている場合、ObservationNames はそれらの名前を使用します。

  • それ以外の場合は、ObservationNames は空の cell 配列になります。

モデルのあてはめに使用した予測子の名前。文字ベクトルの cell 配列として格納されます。

あてはめたモデルの残差。観測値ごとに 1 つの行と次の列が含まれているテーブルとして格納されます。

フィールド説明
Raw観測した値からあてはめた値を減算した値。
Pearson生の残差を RMSE で除算した値。
Standardized生の残差を推定標準偏差で除算した値。
Studentized残差標準偏差の独立した推定値で除算された残差。観測 i は、観測 i を除くすべての観測に基づく標準偏差による誤差の推定値で除算されます。

ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl では、通常の生の残差ベクトル r は次のようになります

r = mdl.Residuals.Raw

ObservationInfo.Missing 内の欠損値のために近似に使用されなかった行には、次を例外として NaN 値が含まれます。

ObservationInfo.Excluded において除外された値が原因で近似に使用されなかった行は、次を例外として NaN 値が含まれます。

  • raw は、観測値と予測値の間の差を含みます。

  • standardized は残差であり通常の方法で標準化されています。

  • studentized は、この残差が残差標準偏差の予測には使用されないため、標準化された値と一致します。

応答変数名。文字ベクトルとして格納されます。

平方根平均二乗誤差 (残差)。数値として格納されます。平方根平均二乗誤差 (RMSE) は RMSE = sqrt(MSE) に等しい値です。ここで、MSE は平均二乗誤差です。

ロバスト近似の情報。次のフィールドがある構造体として格納されます。

フィールド説明
WgtFun'bisquare' などのロバストな重み付け関数 (robustfit を参照)
Tuneパラメーター調整のために指定された値 ([] で表記)
Weightsロバスト近似の最終反復で使用された重みのベクトル。コンパクトな CompactLinearModel モデルの場合、このフィールドは空です。

fitlm がロバスト回帰を使用してモデルを構築した場合を除き、この構造体は空です。

モデルの決定係数の値。構造体として格納されます。

線形モデルまたは非線形モデルの場合、Rsquared は次の 2 つのフィールドをもつ構造体です。

  • Ordinary — 通常の (自由度未調整) 決定係数

  • Adjusted — 係数の数に対する自由度調整済み決定係数

一般化線形モデルの場合、Rsquared は次の 5 つのフィールドをもつ構造体です。

  • Ordinary — 通常の (自由度未調整) 決定係数

  • Adjusted — 係数の数に対する自由度調整済み決定係数

  • LLR — 対数尤度比

  • Deviance — 逸脱度

  • AdjGeneralized — 一般化された自由度調整済み決定係数

決定係数の値は、モデルによって説明される二乗総和の比率です。通常の決定係数値は、SSR および SST のプロパティに関係します。

Rsquared = SSR/SST = 1 - SSE/SST

これらの値のいずれかをスカラーとして取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、mdl 内の自由度調整済み決定係数は、

r2 = mdl.Rsquared.Adjusted

誤差 (残差) の二乗和。数値として格納されます。

ピタゴラスの定理が示すもの

SST = SSE + SSR

回帰二乗和。数値として格納されます。回帰二乗和は、近似値の平均に対する近似値の偏差二乗和に等しい値です。

ピタゴラスの定理が示すもの

SST = SSE + SSR

二乗総和。数値として格納されます。二乗総和は、mean(y) に対する応答ベクトル y の偏差二乗和に等しい値です。

ピタゴラスの定理が示すもの

SST = SSE + SSR

ステップワイズ近似の情報。次のフィールドがある構造体として格納されます。

フィールド説明
Start開始モデルを表す式
Lower下限モデルを表す式であり、モデルに残らなければならないこれらの項
Upper上限モデルを表す式であり、モデルは Upper よりも多くの項を含むことはできません
Criterion'sse' などのステップワイズ アルゴリズムに使用された基準
PEnter0.05 など、パラメーターの値
PRemove0.10 など、パラメーターの値
History近似で実行されたステップを表すテーブル

History テーブルには、ステップごとに初期近似を含む 1 つの行があり、また次の変数 (列) があります。

フィールド説明
Action

このステップ中に行われたアクションで、次のいずれかです。

  • 'Start' — 最初のステップ

  • 'Add' — 項が 1 つ追加されます

  • 'Remove' — 項が 1 つ削除されます

TermName
  • 'Start' ステップ: 開始モデル仕様

  • 'Add' または 'Remove' ステップ: そのステップで移動した項

Terms項の行列 (fitlmmodelspec を参照してください)
DFこのステップの後の回帰自由度
delDF回帰自由度の、前のステップからの変更 (項を削除するステップの場合は負)
Devianceそのステップでの逸脱度 (残差二乗和)
FStatこのステップに導く F 統計量
PValueF 統計量の p

stepwiselm または stepwiseglm を使用してモデルをあてはめた場合を除き、この構造体は空になります。

Variables に格納されている入力変数に関する情報。モデル項ごとに 1 つの行と以下の列があるテーブルとして格納されます。

フィールド説明
Class'double' などの変数クラスを指定する文字ベクトル
Range

変数範囲を指定する cell 配列:

  • 連続変数 — 2 因子ベクトル [min,max]、最小値と最大値

  • カテゴリカル変数 — 異なる変数値の cell 配列

InModellogical ベクトル、true は変数がモデル内にあることを示す
IsCategoricallogical ベクトル、true はカテゴリカル変数であることを示す

あてはめに使用する変数の名前。文字ベクトルの cell 配列として格納されます。

  • 近似がテーブルまたはデータセットに基づいている場合、このプロパティはそのテーブルまたはデータセット内の変数の名前を指定します。

  • 近似が予測行列および応答行列に基づいている場合、VariableNames は近似手法の VarNames の名前と値のペアにある値です。

  • それ以外の場合、変数は既定の近似名になります。

モデルのあてはめに使用したデータ。テーブルとして格納されます。Variables には観測値と応答値の両方が格納されます。近似がテーブルまたはデータセット配列に基づいている場合、Variables には当該のテーブルまたはデータセット配列のすべてのデータが格納されます。それ以外の場合、Variables は入力データ行列 X と応答ベクトル y から作成されたテーブルです。

メソッド

addTerms線形回帰モデルに項を追加
compactコンパクトな線形回帰モデル
dwtest線形モデルのダービン・ワトソン検定
fit線形回帰モデルの作成
plot線形モデルの散布図または追加変数プロット
plotAdded線形モデルの追加変数プロットまたはてこ比のプロット
plotAdjustedResponse線形回帰モデルの調整済み応答プロット
plotDiagnostics線形回帰モデルの診断のプロット
plotResiduals線形回帰モデルの残差プロット
removeTerms線形モデルからの項の削除
step項の追加または削除による線形回帰モデルの改良
stepwiseステップワイズ回帰による線形回帰モデルの作成

継承メソッド

anova線形モデルの分散分析
coefCI線形モデルの係数推定の信頼区間
coefTest線形回帰モデルの係数に対する線形仮説検定
disp線形回帰モデルの表示
feval線形回帰モデルの予測の評価
plotEffects線形回帰モデルの各予測子の主効果をプロットします。
plotInteraction線形回帰モデルの 2 つの予測子の交互作用効果のプロット
plotSlice近似線形回帰面を通るスライスのプロット
predict線形回帰モデルの応答予測
random線形回帰モデルの応答のシミュレーション

コピーのセマンティクス

値。これがクラスの使用にどのように影響するかの詳細については、『MATLAB® オブジェクト指向プログラミング』ドキュメンテーションのハンドル クラスと値クラスの比較 (MATLAB)を参照してください。

すべて折りたたむ

Hald データの線形モデルで近似する

データを読み込みます。

load hald
X = ingredients; % Predictor variables
y = heat; % Response

既定の線形モデルをデータにあてはめる

mdl = fitlm(X,y)
mdl = 
Linear regression model:
    y ~ 1 + x1 + x2 + x3 + x4

Estimated Coefficients:
                   Estimate      SE        tStat       pValue 
                   ________    _______    ________    ________

    (Intercept)      62.405     70.071      0.8906     0.39913
    x1               1.5511    0.74477      2.0827    0.070822
    x2              0.51017    0.72379     0.70486      0.5009
    x3              0.10191    0.75471     0.13503     0.89592
    x4             -0.14406    0.70905    -0.20317     0.84407


Number of observations: 13, Error degrees of freedom: 8
Root Mean Squared Error: 2.45
R-squared: 0.982,  Adjusted R-Squared 0.974
F-statistic vs. constant model: 111, p-value = 4.76e-07

カテゴリカル予測子を含むテーブルのモデルをあてはめます。

carsmall データを読み込みます。

load carsmall

連続予測子変数 Weight、ノミナル予測子変数 Year および応答変数 MPG を含むテーブルを構築します。

tbl = table(MPG,Weight);
tbl.Year = nominal(Model_Year);

YearWeight および Weight^2 の関数として MPG の近似モデルを作成します。WeightWeight^2 より次数が低い項なので明示的に式に含める必要はなく、自動的に含まれます。

mdl = fitlm(tbl,'MPG ~ Year + Weight^2')
mdl = 
Linear regression model:
    MPG ~ 1 + Weight + Year + Weight^2

Estimated Coefficients:
                    Estimate         SE         tStat       pValue  
                   __________    __________    _______    __________

    (Intercept)        54.206        4.7117     11.505    2.6648e-19
    Weight          -0.016404     0.0031249    -5.2493    1.0283e-06
    Year_76            2.0887       0.71491     2.9215     0.0044137
    Year_82            8.1864       0.81531     10.041    2.6364e-16
    Weight^2       1.5573e-06    4.9454e-07      3.149     0.0022303


Number of observations: 94, Error degrees of freedom: 89
Root Mean Squared Error: 2.78
R-squared: 0.885,  Adjusted R-Squared 0.88
F-statistic vs. constant model: 172, p-value = 5.52e-41

fitlm は、ノミナル変量 Year のダミー (インジケーター) 変数を 2 つ作成します。ダミー変数 Year_76 は、モデル年度が 1976 の場合に値 1 を取り、そうでない場合に値 0 を取ります。ダミー変数 Year_82 は、モデル年度が 1982 の場合に値 1 を取り、そうでない場合に値 0 を取ります。1970 年が基準の年となります。対応するモデルは以下のとおりです。

ロバスト近似法を使用して線形回帰モデルをあてはめます。

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

load hald

hald は、セメントの硬化熱に対してセメントの組成が与える影響を測定したデータです。行列 ingredients には、セメントに含まれている 4 種類の化学物質の組成率が格納されています。配列 heat には、各セメント標本について 180 日後の硬化熱が格納されています。

データをロバスト線形モデルで近似します。

mdl = fitlm(ingredients,heat,'linear','RobustOpts','on')
mdl = 
Linear regression model (robust fit):
    y ~ 1 + x1 + x2 + x3 + x4

Estimated Coefficients:
                   Estimate      SE        tStat       pValue 
                   ________    _______    ________    ________

    (Intercept)       60.09     75.818     0.79256      0.4509
    x1               1.5753    0.80585      1.9548    0.086346
    x2               0.5322    0.78315     0.67957     0.51596
    x3              0.13346     0.8166     0.16343     0.87424
    x4             -0.12052     0.7672    -0.15709     0.87906


Number of observations: 13, Error degrees of freedom: 8
Root Mean Squared Error: 2.65
R-squared: 0.979,  Adjusted R-Squared 0.969
F-statistic vs. constant model: 94.6, p-value = 9.03e-07

詳細

すべて展開する

アルゴリズム

主な近似アルゴリズムは QR 分解です。ロバスト近似の場合、アルゴリズムは robustfit です。

代替方法

LASSO または Elastic Net を使用した線形回帰で冗長な予測子を削除するには、関数 lasso を使用します。

リッジ回帰を使用して相関する項を含む回帰を正則化するには、関数 ridge または lasso を使用します。

部分最小二乗を使用して相関のある項をもつ回帰を正則化するには、関数 plsregress を使用します。

拡張機能

R2012a で導入