LinearModel
線形回帰モデル
説明
LinearModel は、当てはめ済みの線形回帰モデル オブジェクトです。回帰モデルは、応答と予測子の間の関係を説明します。線形回帰モデルにおける線形性は、予測子の係数の線形性を意味します。
当てはめた線形回帰モデルを調べるには、LinearModel オブジェクトのプロパティを使用します。オブジェクト プロパティには、係数推定値、要約統計量、当てはめ手法および入力データに関する情報が含まれています。オブジェクト関数を使用して、応答の予測と、線形回帰モデルの修正、評価および可視化を行います。
作成
LinearModel オブジェクトの作成には、fitlm または stepwiselm を使用します。
fitlm は、固定されたモデル仕様を使用して、線形回帰モデルをデータに当てはめます。モデルに対して項を追加または削除するには、addTerms、removeTerms または step を使用します。あるいは、stepwiselm でステップワイズ線形回帰を使用してモデルを当てはめます。
プロパティ
係数推定値
この プロパティ は読み取り専用です。
係数推定値の共分散行列。p 行 p 列の数値の行列として表されます。p は、当てはめたモデル内の係数の数であり、NumCoefficients で与えられます。
詳細については、係数の標準誤差と信頼区間を参照してください。
データ型: single | double
この プロパティ は読み取り専用です。
係数の名前。対応する項の名前をそれぞれ含む文字ベクトルの cell 配列として表されます。
データ型: cell
この プロパティ は読み取り専用です。
係数の値。table を指定します。Coefficients には、各係数に対応する 1 つずつの行と次の列が格納されます。
Estimate— 推定される係数値SE— 推定の標準誤差tStat— 係数がゼロであるという帰無仮説をもつ両側検定の t 統計量pValue— t 統計量の p 値
係数に対する他の検定を実行するには、anova (線形回帰モデルの場合のみ) または coefTest を使用します。係数推定値の信頼区間を求めるには、coefCI を使用します。
ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl 内の推定された係数ベクトルを取得するには、次のようにします。
beta = mdl.Coefficients.Estimate
データ型: table
この プロパティ は読み取り専用です。
モデルの係数の数。正の整数として表されます。NumCoefficients には、モデルの項がランク落ちとなる場合にゼロに設定される係数が含まれます。
データ型: double
この プロパティ は読み取り専用です。
モデル内の推定された係数の個数。正の整数を指定します。NumEstimatedCoefficients には、モデルの項がランク落ちとなる場合にゼロに設定される係数は含まれません。NumEstimatedCoefficients は回帰の自由度です。
データ型: double
要約統計量
この プロパティ は読み取り専用です。
誤差 (残差) の自由度。推定された係数の数を観測値の数から減算した値に等しくなります。正の整数として表されます。
データ型: double
この プロパティ は読み取り専用です。
観測値の診断情報。各観測値に対応する 1 つずつの行と次の表で説明されている列がある table を指定します。
| 列 | 意味 | 説明 |
|---|---|---|
Leverage | HatMatrix の対角要素 | 各観測値の Leverage は、観測された予測子の値によってどの程度まで当てはめが決定されるかを示します。1 に近い値は、当てはめの大部分がその観測値によって決定され、他の観測値からの寄与は少ないことを示します。0 に近い値は、当てはめの大部分が他の観測値によって決定されることを示します。係数 P と観測 N のあるモデルの場合、Leverage の平均値は P/N です。2*P/N より大きい Leverage の値は、高いてこ比を示します。 |
CooksDistance | クックの距離 | CooksDistance は、当てはめた値におけるスケーリングされた変化の測定です。平均のクックの距離の 3 倍より CooksDistance が大きい観測値は、外れ値である可能性があります。 |
Dffits | 当てはめた値のスケーリングされた Delete-1 差分 | Dffits は、各観測値を当てはめから除外することによって生じる近似値の変化をスケーリングした値です。絶対値が 2*sqrt(P/N) より大きい値は、影響力が大きいと考えることができます。 |
S2_i | 1 標本を取り除いたときの分散 | S2_i は各観測を順に削除することによって取得した一連の残差分散推定値です。これらの推定値は、MSE プロパティに格納される平均二乗誤差 (MSE) の値と比較できます。 |
CovRatio | 共分散の行列式の Delete-1 比 | CovRatio は、各観測値を順番に削除した、完全なモデルの共分散行列の行列式に対する係数の共分散行列の行列式の比率です。1 + 3*P/N より大きい値と 1 – 3*P/N より小さい値は、影響力が大きい点を示します。 |
Dfbetas | 係数推定値のスケーリングされた Delete-1 差分 | Dfbetas は、各観測値を順番に除外することによって生じる係数推定値の変化をスケーリングした値が格納されている、N 行 P 列の行列です。絶対値が 3/sqrt(N) より大きい値は、対応する係数に対して観測値が有意な影響を与えることを示します。 |
HatMatrix | 観測された応答から fitted を計算するための射影行列 | HatMatrix は、Fitted = HatMatrix*Y となる N 行 N 列の行列です。ここで、Y は応答ベクトル、Fitted は応答の当てはめた値のベクトルです。 |
Diagnostics には、外れ値と影響力が大きい観測値を特定するために役立つ情報が格納されます。Delete-1 診断は、各観測値を順番に当てはめから除外することによって生じる変化を取得します。詳細については、ハット行列とてこ比、クックの距離および1 標本を取り除いたときの統計を参照してください。
観測値の診断情報をプロットするには、plotDiagnostics を使用します。
欠損値 (ObservationInfo.Missing 内) または除外された値 (ObservationInfo.Excluded 内) が原因で当てはめに使用されなかった行では、CooksDistance、Dffits、S2_i および CovRatio 列に NaN 値が、Leverage、Dfbetas、および HatMatrix 列にゼロが格納されます。
これらの列のいずれかを配列として取得するには、ドット表記を使用してプロパティのインデックスを指定します。たとえば、モデル mdl 内の Delete-1 分散ベクトルを取得するには、次のようにします。
S2i = mdl.Diagnostics.S2_i;
データ型: table
この プロパティ は読み取り専用です。
入力データに基づいて当てはめられた (予測された) 応答値。n 行 1 列の数値ベクトルとして表されます。n は入力データ内の観測値の数です。他の予測子の値についての予測を計算したり、Fitted の信頼限界を計算したりするには、predict を使用します。
データ型: single | double
この プロパティ は読み取り専用です。
応答値の対数尤度。数値を指定します。各応答値が正規分布に従うという仮定に基づきます。正規分布の平均は当てはめた (予測した) 応答値、分散は MSE です。
データ型: single | double
この プロパティ は読み取り専用です。
モデルの比較基準。次のフィールドをもつ構造体として表されます。
AIC— 赤池情報量基準。AIC = –2*logL + 2*mであり、ここでlogLは対数尤度、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
データ型: struct
この プロパティ は読み取り専用です。
回帰モデルの F 統計量。構造体を指定します。ModelFitVsNullModel 構造体には次のフィールドが含まれます。
Fstats— 当てはめたモデルとヌル モデルの F 統計量Pvalue— F 統計量の p 値NullModel— ヌル モデル タイプ
データ型: struct
この プロパティ は読み取り専用です。
平均二乗誤差 (残差)。数値を指定します。
MSE = SSE / DFE,
MSE は平均二乗誤差、SSE は残差平方和、DFE は自由度です。
データ型: single | double
この プロパティ は読み取り専用です。
当てはめたモデルの残差。各観測値に対する 1 つずつの行と次の表に記載されている列が含まれている table を指定します。
| 列 | 説明 |
|---|---|
Raw | 観測した値から当てはめた値を減算した値 |
Pearson | 生の残差を平方根平均二乗誤差 (RMSE) で除算した値 |
Standardized | 推定標準偏差で除算した生の残差 |
Studentized | 生の残差を残差標準偏差の独立した推定値で除算した値。観測値 i の残差が、観測値 i を除くすべての観測値に基づく誤差標準偏差の推定値によって除算されます。 |
残差のプロットを作成するには、plotResiduals を使用します。詳細については、残差を参照してください。
欠損値 (ObservationInfo.Missing 内) または除外された値 (ObservationInfo.Excluded 内) が原因で当てはめに使用されなかった行には、NaN 値が格納されます。
ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl 内の生の残差のベクトル r を取得するには、次のようにします。
r = mdl.Residuals.Raw
データ型: table
この プロパティ は読み取り専用です。
平方根平均二乗誤差 (残差)。数値を指定します。
RMSE = sqrt(MSE),
RMSE は平方根平均二乗誤差、MSE は平均二乗誤差です。
データ型: single | double
この プロパティ は読み取り専用です。
モデルの決定係数の値。2 つのフィールドがある構造体を指定します。
Ordinary— 通常の (自由度未調整) 決定係数Adjusted— 係数の数に対する自由度調整済み決定係数
決定係数の値は、モデルによって説明される二乗総和の比率です。通常の決定係数の値は、SSR プロパティおよび SST プロパティに関連します。
Rsquared = SSR/SST,
ここで、SST は二乗総和、SSR は回帰二乗和です。
詳細については、決定係数 (R-squared)を参照してください。
これらの値のいずれかをスカラーとして取得するには、ドット表記を使用してプロパティのインデックスを指定します。たとえば、モデル mdl の自由度調整済み決定係数の値を取得するには、次のようにします。
r2 = mdl.Rsquared.Adjusted
データ型: struct
この プロパティ は読み取り専用です。
誤差 (残差) の二乗和。数値を指定します。観測値の重みを使用して学習させたモデルの場合、SSE の計算の二乗和は重み付き二乗和です。
切片をもつ線形モデルでは、ピタゴラスの定理により、次のようになります。
SST = SSE + SSR,
SST は二乗総和、SSE は残差平方和、SSR は回帰二乗和です。
ロバスト線形モデルにおける SST の計算の詳細については、SST を参照してください。
データ型: single | double
この プロパティ は読み取り専用です。
回帰二乗和。数値を指定します。SSR は、当てはめた値と応答の平均の間における偏差の二乗和に等しい値です。観測値の重みを使用して学習させたモデルの場合、SSR の計算の二乗和は重み付き二乗和です。
切片をもつ線形モデルでは、ピタゴラスの定理により、次のようになります。
SST = SSE + SSR,
SST は二乗総和、SSE は残差平方和、SSR は回帰二乗和です。
ロバスト線形モデルにおける SST の計算の詳細については、SST を参照してください。
データ型: single | double
この プロパティ は読み取り専用です。
二乗の総和。数値を指定します。SST は、mean(y) に対する応答ベクトル y の偏差二乗和に等しい値です。観測値の重みを使用して学習させたモデルの場合、SST の計算の二乗和は重み付き二乗和です。
切片をもつ線形モデルでは、ピタゴラスの定理により、次のようになります。
SST = SSE + SSR,
SST は二乗総和、SSE は残差平方和、SSR は回帰二乗和です。
ロバスト線形モデルの場合、SST は、mean(y) に対する応答ベクトル y の偏差二乗和として計算されません。SST = SSE + SSR のように計算されます。
データ型: single | double
近似法
この プロパティ は読み取り専用です。
ロバスト近似の情報。次の表で説明されているフィールドをもつ構造体を指定します。
| フィールド | 説明 |
|---|---|
WgtFun | 'bisquare' などのロバストな重み付け関数 ('RobustOpts' を参照) |
Tune | 調整定数。WgtFun が 'ols' である場合、または、WgtFun が、既定の調整定数が 1 であるカスタム重み関数の関数ハンドルである場合、このフィールドは空 ([]) です。 |
Weights | ロバスト近似の最後の反復で使用された重みのベクトル。CompactLinearModel オブジェクトの場合、このフィールドは空です。 |
ロバスト回帰を使用してモデルを当てはめた場合を除き、この構造体は空です。
データ型: struct
この プロパティ は読み取り専用です。
ステップワイズ近似の情報。次の表で説明されているフィールドをもつ構造体を指定します。
| フィールド | 説明 |
|---|---|
Start | 開始モデルを表す式 |
Lower | 下限モデルを表す式。Lower 内の項は必ずモデルに残ります。 |
Upper | 上限モデルを表す式。Upper より多い項をモデルに含めることはできません。 |
Criterion | 'sse' などのステップワイズ アルゴリズムに使用された基準 |
PEnter | Criterion が項を追加するためのしきい値 |
PRemove | Criterion が項を削除するためのしきい値 |
History | 近似で実行されたステップを表す table |
table History には、初期の当てはめを含む各ステップに対応する 1 つずつの行と、次の表で説明されている列が含まれています。
| 列 | 説明 |
|---|---|
Action | そのステップで行われたアクション
|
TermName |
|
Terms | 項の行列内のモデル仕様 |
DF | そのステップの後の回帰自由度 |
delDF | 前のステップに対する回帰自由度の変化 (項を削除するステップの場合は負) |
Deviance | (一般化線形回帰モデルの場合のみ) そのステップにおける逸脱度 (残差二乗和) |
FStat | そのステップに導いた F 統計量 |
PValue | F 統計量の p 値 |
ステップワイズ回帰を使用してモデルを当てはめた場合を除き、この構造体は空です。
データ型: struct
入力データ
オブジェクトの作成後、このプロパティは読み取り専用になります。
モデルの情報。LinearFormula オブジェクトとして表されます。
ドット表記を使用して、当てはめたモデル mdl の式を表示します。
mdl.Formula
この プロパティ は読み取り専用です。
近似関数が当てはめで使用した観測値の個数。正の整数を指定します。NumObservations は、元の table、データセットまたは行列で指定された観測値の個数から、除外する行数 (名前と値のペアの引数 'Exclude' で設定) または欠損値が含まれている行数を減算した値です。
データ型: double
オブジェクトの作成後、このプロパティは読み取り専用になります。
モデルの当てはめに使用した予測子変数の数。正の整数として表されます。
データ型: double
オブジェクトの作成後、このプロパティは読み取り専用になります。
入力データに含まれている変数の数。正の整数として表されます。NumVariables は、元の table に含まれている変数の数、または予測子行列と応答ベクトルの列の総数です。
NumVariables には、モデルの当てはめに予測子または応答として使用していない変数もすべて含まれます。
データ型: double
この プロパティ は読み取り専用です。
観測値の情報。n 行 4 列の table として指定します。n は入力データの行数に等しくなります。ObservationInfo には、次の表で説明されている列が含まれます。
| 列 | 説明 |
|---|---|
Weights | 観測値の重み。数値として指定します。既定値は 1 です。 |
Excluded | 除外する観測値のインジケーター。logical 値として指定します。名前と値のペアの引数 'Exclude' を使用して観測値を当てはめから除外した場合、値は true です。 |
Missing | 欠損観測値のインジケーター。logical 値として指定します。観測値が欠損値である場合、値は true です。 |
Subset | 近似関数が観測値を使用するかどうかのインジケーター。logical 値として指定します。観測値が除外されず、欠損値でもない場合、つまり、近似関数が観測値を使用する場合、値は true です。 |
ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl の重みベクトル w を取得するには、次のようにします。
w = mdl.ObservationInfo.Weights
データ型: table
オブジェクトの作成後、このプロパティは読み取り専用になります。
観測値の名前。モデルの当てはめに使用した観測値の名前が含まれている文字ベクトルの cell 配列として返されます。
当てはめが観測値の名前を含む table に基づいている場合、それらの名前がこのプロパティに格納されます。
それ以外の場合、このプロパティは空の cell 配列になります。
データ型: cell
オブジェクトの作成後、このプロパティは読み取り専用になります。
モデルの当てはめに使用した予測子の名前。文字ベクトルの cell 配列として表されます。
データ型: cell
オブジェクトの作成後、このプロパティは読み取り専用になります。
応答変数の名前。文字ベクトルとして表されます。
データ型: char
オブジェクトの作成後、このプロパティは読み取り専用になります。
Variables に格納されている変数に関する情報。変数ごとに 1 つの行と以下に示す列で構成される table として表されます。
| 列 | 説明 |
|---|---|
Class | 変数のクラス。'double' や 'categorical' などの文字ベクトルによる cell 配列を指定します。 |
Range | 変数の範囲。ベクトルの cell 配列を指定します。
|
InModel | 当てはめたモデルにどの変数が含まれているかを示すインジケーター。logical ベクトルを指定します。モデルに変数が含まれている場合、値は true です。 |
IsCategorical | カテゴリカル変数のインジケーター。logical ベクトルを指定します。変数がカテゴリカルである場合、値は true です。 |
VariableInfo には、モデルの当てはめに予測子または応答として使用していない変数もすべて含まれます。
データ型: table
オブジェクトの作成後、このプロパティは読み取り専用になります。
変数の名前。文字ベクトルの cell 配列として返されます。
当てはめが table に基づいている場合、その table 内の変数の名前がこのプロパティに格納されます。
当てはめが予測子行列と応答ベクトルに基づいている場合、当てはめ手法の名前と値の引数
VarNamesによって指定された値がこのプロパティに格納されます。VarNamesの既定値は{'x1','x2',...,'xn','y'}です。
VariableNames には、モデルの当てはめに予測子または応答として使用していない変数もすべて含まれます。
データ型: cell
オブジェクトの作成後、このプロパティは読み取り専用になります。
入力データ。table として返されます。Variables には予測子と応答の両方の値が格納されます。
当てはめが table に基づいている場合、このプロパティにはその table のデータがすべて格納されます。
それ以外の場合、このプロパティは入力データ行列
Xと応答ベクトルyから作成された table です。
Variables には、モデルの当てはめに予測子または応答として使用していない変数もすべて含まれます。
データ型: table
オブジェクト関数
compact | コンパクトな線形回帰モデル |
addTerms | 線形回帰モデルへの項の追加 |
removeTerms | 線形回帰モデルからの項の削除 |
step | 項の追加または削除による線形回帰モデルの改良 |
anova | 線形回帰モデルの分散分析 |
coefCI | 線形回帰モデルの係数推定値の信頼区間 |
coefTest | 線形回帰モデルの係数に対する線形仮説検定 |
dwtest | 線形回帰モデル オブジェクトによるダービン・ワトソン検定 |
partialDependence | 部分依存の計算 |
plot | 線形回帰モデルの散布図または追加変数プロット |
plotAdded | 線形回帰モデルの追加変数プロット |
plotAdjustedResponse | 線形回帰モデルの調整応答プロット |
plotDiagnostics | 線形回帰モデルの観測値の診断情報をプロット |
plotEffects | 線形回帰モデルの予測子の主効果をプロット |
plotInteraction | 線形回帰モデルの 2 つの予測子の交互作用効果のプロット |
plotPartialDependence | 部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成 |
plotResiduals | 線形回帰モデルの残差プロット |
plotSlice | 当てはめた線形回帰面を通るスライスのプロット |
gather | Gather properties of Statistics and Machine Learning Toolbox object from GPU |
例
行列入力データ セットを使用して線形回帰モデルを当てはめます。
行列入力データ セットである carsmall データ セットを読み込みます。
load carsmall
X = [Weight,Horsepower,Acceleration];fitlm を使用して、線形回帰モデルを当てはめます。
mdl = fitlm(X,MPG)
mdl =
Linear regression model:
y ~ 1 + x1 + x2 + x3
Estimated Coefficients:
Estimate SE tStat pValue
__________ _________ _________ __________
(Intercept) 47.977 3.8785 12.37 4.8957e-21
x1 -0.0065416 0.0011274 -5.8023 9.8742e-08
x2 -0.042943 0.024313 -1.7663 0.08078
x3 -0.011583 0.19333 -0.059913 0.95236
Number of observations: 93, Error degrees of freedom: 89
Root Mean Squared Error: 4.09
R-squared: 0.752, Adjusted R-Squared: 0.744
F-statistic vs. constant model: 90, p-value = 7.38e-27
モデルの表示には、モデル式、推定された係数、およびモデルの要約統計量が含まれています。
この表示のモデル式 y ~ 1 + x1 + x2 + x3 は、 に対応します。
モデルの表示には、Coefficients プロパティに格納されている、推定された係数の情報も示されています。Coefficients プロパティを表示します。
mdl.Coefficients
ans=4×4 table
Estimate SE tStat pValue
__________ _________ _________ __________
(Intercept) 47.977 3.8785 12.37 4.8957e-21
x1 -0.0065416 0.0011274 -5.8023 9.8742e-08
x2 -0.042943 0.024313 -1.7663 0.08078
x3 -0.011583 0.19333 -0.059913 0.95236
Coefficient プロパティには、以下の列が含まれています。
Estimate— モデル内の対応する各項の係数推定値。たとえば、定数項 (intercept) の推定値は 47.977 です。SE— 係数の標準誤差。tStat— 各係数の t 統計量。モデル内の他の予測子が与えられた場合に、対応する係数が 0 ではないという対立仮説に対して係数が 0 であるという帰無仮説を検定するために使用します。tStat = Estimate/SEであることに注意してください。たとえば、切片の t 統計量は 47.977/3.8785 = 12.37 です。pValue— 両側仮説検定の "t" 統計量に対する "p" 値。たとえば、x2の t 統計量の p 値は 0.05 より大きいので、この項はモデル内の他の項に対して 5% の有意水準では有意ではありません。
モデルの要約統計量は以下のとおりです。
Number of observations—NaN値が含まれていない行の数。この例では、XとMPGの行数が 100 であり、異なる観測値についてデータ ベクトルMPGには 6 つのNaN値、データ ベクトルHorsepowerには 1 つのNaN値があるので、Number of observationsは 93 です。Error degrees of freedom— n – p。ここで、n は観測値の個数、p はモデル内の係数の個数 (切片を含む) です。たとえば、モデルには 4 つの予測子があるため、Error degrees of freedomは 93 – 4 = 89 となります。Root mean squared error— 平均二乗誤差の平方根。誤差分布の標準偏差の推定に使用します。R-squaredおよびAdjusted R-squared— それぞれ決定係数および調整後の決定係数。たとえば、R-squared値からは、応答変数MPGのばらつきの約 75% をこのモデルで説明できることがわかります。F-statistic vs. constant model— 回帰モデルに対する F 検定の検定統計量。この検定では、定数項のみから構成される縮退したモデルより回帰モデルの方が有意に優れているかどうかを検定します。p-value— モデルに対する F 検定の p 値。たとえば、p 値が 7.3816e-27 なので、このモデルは有意です。
これらの統計量はモデルのプロパティ (NumObservations、DFE、RMSE および Rsquared) に含まれており、関数 anova を使用して取得できます。
anova(mdl,'summary')ans=3×5 table
SumSq DF MeanSq F pValue
______ __ ______ ______ __________
Total 6004.8 92 65.269
Model 4516 3 1505.3 89.987 7.3816e-27
Residual 1488.8 89 16.728
plot を使用して、定数 (切片) 項を除くモデル全体に対する追加変数プロット (偏回帰のてこ比のプロット) を作成します。
plot(mdl)

カテゴリカル予測子が含まれている線形回帰モデルを当てはめます。モデルの基準水準を制御するため、カテゴリカル予測子のカテゴリの順序を並べ替えます。次に、anovaを使用してカテゴリカル変数の有意性を検定します。
カテゴリカル予測子をもつモデル
carsmall データ セットを読み込み、Model_Year の関数として MPG の線形回帰モデルを作成します。数値ベクトル Model_Year をカテゴリカル変数として扱うため、名前と値のペアの引数 'CategoricalVars' を使用して予測子を指定します。
load carsmall mdl = fitlm(Model_Year,MPG,'CategoricalVars',1,'VarNames',{'Model_Year','MPG'})
mdl =
Linear regression model:
MPG ~ 1 + Model_Year
Estimated Coefficients:
Estimate SE tStat pValue
________ ______ ______ __________
(Intercept) 17.69 1.0328 17.127 3.2371e-30
Model_Year_76 3.8839 1.4059 2.7625 0.0069402
Model_Year_82 14.02 1.4369 9.7571 8.2164e-16
Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56
R-squared: 0.531, Adjusted R-Squared: 0.521
F-statistic vs. constant model: 51.6, p-value = 1.07e-15
この表示のモデル式 MPG ~ 1 + Model_Year は、次の式に対応します。
,
と は指標変数であり、それぞれ Model_Year の値が 76 および 82 である場合に値が 1 になります。変数 Model_Year には 3 種類の値が格納されます。これは、関数 unique を使用してチェックできます。
unique(Model_Year)
ans = 3×1
70
76
82
fitlm は、基準水準として Model_Year の最小値 ('70') を選択し、2 つの指標変数 および を作成します。3 つの指標変数 (各水準について 1 つ) と切片項をモデルに含めると計画行列がランク落ちとなるので、このモデルには 2 つの指標変数のみが含まれています。
すべての指標変数をもつモデル
mdl のモデル式は、3 つの指標変数があり切片項はない次のようなモデルとして解釈できます。
.
または、手動で指標変数を作成しモデル式を指定することにより、3 つの指標変数があり切片項はないモデルを作成できます。
temp_Year = dummyvar(categorical(Model_Year));
Model_Year_70 = temp_Year(:,1);
Model_Year_76 = temp_Year(:,2);
Model_Year_82 = temp_Year(:,3);
tbl = table(Model_Year_70,Model_Year_76,Model_Year_82,MPG);
mdl = fitlm(tbl,'MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 - 1')mdl =
Linear regression model:
MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82
Estimated Coefficients:
Estimate SE tStat pValue
________ _______ ______ __________
Model_Year_70 17.69 1.0328 17.127 3.2371e-30
Model_Year_76 21.574 0.95387 22.617 4.0156e-39
Model_Year_82 31.71 0.99896 31.743 5.2234e-51
Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56
モデルの基準水準の選択
カテゴリカル変数のカテゴリの順序を変更することにより、基準水準を選択できます。まず、カテゴリカル変数 Year を作成します。
Year = categorical(Model_Year);
関数categoriesを使用して、カテゴリの順序をチェックします。
categories(Year)
ans = 3×1 cell
{'70'}
{'76'}
{'82'}
Year を予測子変数として使用する場合、fitlm は 1 番目のカテゴリ '70' を基準水準として選択します。関数reordercatsを使用して Year を並べ替えます。
Year_reordered = reordercats(Year,{'76','70','82'});
categories(Year_reordered)ans = 3×1 cell
{'76'}
{'70'}
{'82'}
Year_reordered の 1 番目のカテゴリは '76' です。Year_reordered の関数として MPG の線形回帰モデルを作成します。
mdl2 = fitlm(Year_reordered,MPG,'VarNames',{'Model_Year','MPG'})
mdl2 =
Linear regression model:
MPG ~ 1 + Model_Year
Estimated Coefficients:
Estimate SE tStat pValue
________ _______ _______ __________
(Intercept) 21.574 0.95387 22.617 4.0156e-39
Model_Year_70 -3.8839 1.4059 -2.7625 0.0069402
Model_Year_82 10.136 1.3812 7.3385 8.7634e-11
Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56
R-squared: 0.531, Adjusted R-Squared: 0.521
F-statistic vs. constant model: 51.6, p-value = 1.07e-15
mdl2 は、'76' を基準水準として使用し、2 つの指標変数 および を含めます。
カテゴリカル予測子の評価
mdl2 のモデル表示には、対応する係数がゼロに等しいかどうかをテストするための p 値が各項について含まれています。各 p 値は各指標変数を検定します。カテゴリカル変数 Model_Year を指標変数のグループとして調べるには、anovaを使用します。定数項を除くモデル内の各変数の ANOVA 統計量が含まれている成分 ANOVA 表を返すため、'components' (既定の設定) オプションを使用します。
anova(mdl2,'components')ans=2×5 table
SumSq DF MeanSq F pValue
______ __ ______ _____ __________
Model_Year 3190.1 2 1595.1 51.56 1.0694e-15
Error 2815.2 91 30.936
成分 ANOVA 表には変数 Model_Year の p 値が含まれており、指標変数の p 値より小さくなっています。
hald データ セットを読み込みます。これは、セメントの硬化熱に対してセメントの組成が与える影響を測定したデータです。
load haldこのデータ セットには、変数 ingredients および heat が含まれています。行列 ingredients には、セメントに含まれている 4 種類の化学物質の組成率が格納されています。ベクトル heat には、各セメント標本に対する 180 日後の硬化熱の値が格納されています。
ロバスト線形回帰モデルをデータに当てはめます。
mdl = fitlm(ingredients,heat,'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
詳細については、ロバスト近似と標準的な最小二乗近似の結果を比較しているロバスト回帰を使用した外れ値の影響の低減のトピックを参照してください。
hald データ セットを読み込みます。これは、セメントの硬化熱に対してセメントの組成が与える影響を測定したデータです。
load haldこのデータ セットには、変数 ingredients および heat が含まれています。行列 ingredients には、セメントに含まれている 4 種類の化学物質の組成率が格納されています。ベクトル heat には、各セメント標本に対する 180 日後の硬化熱の値が格納されています。
ステップワイズ線形回帰モデルをデータに当てはめます。モデルに項を追加する基準のしきい値として 0.06 を指定します。
mdl = stepwiselm(ingredients,heat,'PEnter',0.06)1. Adding x4, FStat = 22.7985, pValue = 0.000576232 2. Adding x1, FStat = 108.2239, pValue = 1.105281e-06 3. Adding x2, FStat = 5.0259, pValue = 0.051687 4. Removing x4, FStat = 1.8633, pValue = 0.2054
mdl =
Linear regression model:
y ~ 1 + x1 + x2
Estimated Coefficients:
Estimate SE tStat pValue
________ ________ ______ __________
(Intercept) 52.577 2.2862 22.998 5.4566e-10
x1 1.4683 0.1213 12.105 2.6922e-07
x2 0.66225 0.045855 14.442 5.029e-08
Number of observations: 13, Error degrees of freedom: 10
Root Mean Squared Error: 2.41
R-squared: 0.979, Adjusted R-Squared: 0.974
F-statistic vs. constant model: 230, p-value = 4.41e-09
既定では、開始モデルは定数モデルです。stepwiselm は前方選択を実行し、x4、x1 および x2 の各項を (この順番で) 追加します。これは対応する p 値が PEnter の値 0.06 より小さいためです。その後、stepwiselm は後退消去を使用して x4 をモデルから削除します。これは、x2 がモデル内にあると、PRemove の既定値である 0.1 より x4 の p 値が大きくなるためです。
詳細
"項行列" T は、モデル内の項を指定する t 行 (p + 1) 列の行列です。ここで、t は項の数、p は予測子変数の数であり、+1 は応答変数に相当します。T(i,j) の値は、項 i の変数 j の指数です。
たとえば、3 つの予測子変数 x1、x2、x3 と応答変数 y が x1、x2、x3、y という順序で入力に含まれていると仮定します。T の各行は 1 つの項を表します。
[0 0 0 0]— 定数項 (切片)[0 1 0 0]—x2(x1^0 * x2^1 * x3^0と等価)[1 0 1 0]—x1*x3[2 0 0 0]—x1^2[0 1 2 0]—x2*(x3^2)
各項の最後の 0 は、応答変数を表します。一般に、項行列内のゼロの列ベクトルは、応答変数の位置を表します。予測子変数と応答変数が行列と列ベクトルにそれぞれ格納されている場合、各行の最後の列に応答変数を示す 0 を含めなければなりません。
代替機能
高次元データ セットに対する計算時間を短縮するには、関数
fitrlinearを使用して線形回帰モデルを当てはめます。回帰を正則化するには、
fitrlinear、lasso、ridgeまたはplsregressを使用します。fitrlinearは、LASSO またはリッジ回帰を使用して、高次元データの回帰を正則化します。lassoは、LASSO または Elastic Net を使用して、線形回帰の冗長な予測子を削除します。ridgeは、リッジ回帰を使用して、相関する項がある回帰を正則化します。plsregressは、部分最小二乗を使用して、相関する項がある回帰を正則化します。
拡張機能
使用上の注意および制限:
LinearModelモデルのオブジェクト関数は GPU 配列を完全にサポートしています。
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2012a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)