fitlm
説明
例
D 最適計画を生成し、計画点に対する応答データをいくつか生成します。
dopt = optimalDOE(5,20); pts = dopt.Design; h = height(pts); response = 2*pts.Factor1+3*pts.Factor2+pts.Factor3+0.01*randn(h,1);
dopt は、生成された D 最適計画に関する情報を含む optimalDOE オブジェクトです。response は応答データのベクトルです。
dopt の計画点を予測子データ、response を応答データとして使用して、線形モデルを当てはめます。
mdl = fitlm(dopt,response)
mdl =
Linear regression model:
y ~ 1 + Factor1 + Factor2 + Factor3 + Factor4 + Factor5
Estimated Coefficients:
Estimate SE tStat pValue
___________ _________ ________ __________
(Intercept) -0.00045125 0.001709 -0.26404 0.7956
Factor1 2.0012 0.001709 1171 2.4234e-36
Factor2 2.9954 0.001709 1752.7 8.5516e-39
Factor3 0.99767 0.0017443 571.97 5.5036e-32
Factor4 -0.0020275 0.0017443 -1.1624 0.26452
Factor5 0.0016909 0.001709 0.9894 0.33926
Number of observations: 20, Error degrees of freedom: 14
Root Mean Squared Error: 0.00764
R-squared: 1, Adjusted R-Squared: 1
F-statistic vs. constant model: 9.57e+05, p-value = 3.27e-38
mdl は、線形モデルをデータに当てはめた結果を含むLinearModelオブジェクトです。モデルの表示には、モデル式、推定された係数、およびモデルの要約統計量が含まれています。
混合計画を生成し、計画点に対する応答データをいくつか作成します。
dmix = mixtureDOE(3); pts = dmix.Design; h = height(pts); Y = 2*pts.Factor1+pts.Factor2.*pts.Factor3+5+0.001*randn(h,1);
dmix は、生成された混合計画に関する情報を含む mixtureDOE オブジェクトです。ベクトル Y には応答データが格納されます。
dmix の計画点を予測子データ、Y を応答データとして使用して、線形モデルを当てはめます。当てはめる実験モデルを指定します。
mdl = fitlm(dmix,Y,"y~Factor1+Factor2:Factor3")mdl =
Linear regression model:
y ~ 1 + Factor1 + Factor2:Factor3
Estimated Coefficients:
Estimate SE tStat pValue
________ __________ ______ __________
(Intercept) 4.9999 0.00096562 5177.9 8.3471e-15
Factor1 2.0009 0.0017544 1140.5 3.5465e-12
Factor2:Factor3 0.99501 0.0067547 147.31 1.2739e-08
Number of observations: 7, Error degrees of freedom: 4
Root Mean Squared Error: 0.00148
R-squared: 1, Adjusted R-Squared: 1
F-statistic vs. constant model: 7e+05, p-value = 8.16e-12
mdl は、実験モデルをデータに当てはめた結果を含むLinearModelオブジェクトです。pValue 列の値は、モデルの各項が応答に対して統計的に有意な影響を与えることを示しています。
完全実施要因計画を生成し、計画点に対する応答データをいくつか作成します。
dff = fullFactorialDOE(3); pts = dff.Design; h = height(pts); Y = 2*pts.Factor1+3*pts.Factor2+pts.Factor3+0.01*randn(h,1);
dff は、生成された完全実施要因計画に関する情報を含む fullFactorialDOE オブジェクトです。ベクトル Y には応答データが格納されます。
dff の計画点を予測子データ、Y を応答データとして使用して、線形モデルを当てはめます。
mdl1 = fitlm(dff,Y)
mdl1 =
Linear regression model:
y ~ 1 + Factor1 + Factor2 + Factor3
Estimated Coefficients:
Estimate SE tStat pValue
___________ _________ _________ __________
(Intercept) -0.00013126 0.0051434 -0.025521 0.98086
Factor1 1.9974 0.0051434 388.34 2.6379e-10
Factor2 2.9964 0.0051434 582.57 5.209e-11
Factor3 1.0045 0.0051434 195.29 4.1244e-09
Number of observations: 8, Error degrees of freedom: 4
Root Mean Squared Error: 0.0145
R-squared: 1, Adjusted R-Squared: 1
F-statistic vs. constant model: 1.76e+05, p-value = 1.07e-10
mdl1 は、線形モデルをデータに当てはめた結果を含むLinearModelオブジェクトです。モデルの表示には、モデル式、推定された係数、およびモデルの要約統計量が含まれています。切片項の "p" 値が大きく、切片項が応答に対して統計的に有意な影響を与えないことを示しています。
切片項がない線形モデルをデータに当てはめます。
mdl2 = fitlm(dff,Y,Intercept=0)
mdl2 =
Linear regression model:
y ~ Factor1 + Factor2 + Factor3
Estimated Coefficients:
Estimate SE tStat pValue
________ _________ ______ __________
Factor1 1.9974 0.0046008 434.15 1.2305e-12
Factor2 2.9964 0.0046008 651.28 1.6198e-13
Factor3 1.0045 0.0046008 218.32 3.8258e-11
Number of observations: 8, Error degrees of freedom: 5
Root Mean Squared Error: 0.013
mdl2 には、切片項がない線形モデルを当てはめた結果が格納されます。
各モデルの対数尤度を調べます。
loglikelihoods = [mdl1.LogLikelihood,mdl2.LogLikelihood]
loglikelihoods = 1×2
25.2636 25.2629
出力から、mdl1 は mdl2 よりも対数尤度がわずかに大きいことがわかります。この結果は、切片項を削除しても、データに対するモデルの適合に有意な影響を与えないことを示しています。
入力引数
計画。fullFactorialDOE オブジェクト、mixtureDOE オブジェクト、optimalDOE オブジェクト、または taguchiDOE オブジェクトとして指定します。fitlm は、dobj.Design の計画点を予測子として使用して線形回帰モデルを当てはめます。
応答変数。p 行 1 列の数値ベクトルとして指定します。ここで、p は dobj の計画点の数です。Y の各エントリは dobj.Design の対応する行に対する応答です。
データ型: single | double
実験モデル。次の値のいずれかとして指定します。
モデルの名前の文字ベクトルまたは string スカラー。
値 モデルの説明 "linear"切片と各因子の線形項がモデルに含まれます。 "constant"定数 (切片) 項のみがモデルに含まれます。 "interactions"切片、各因子の線形項、および異なる因子のペアすべての積がモデルに含まれます (二乗項はありません)。 "purequadratic"切片項と各因子の線形項および二乗項がモデルに含まれます。 "quadratic"切片項、各因子の線形項、二乗項、および異なる因子のペアすべての積がモデルに含まれます。 "scheffe-linear"各因子の線形項がモデルに含まれ、切片項は含まれません。
"scheffe-quad"モデルは次の式で与えられます。
"scheffe-special-cubic"モデルは次の式で与えられます。
"polyijk"モデルは多項式であり、1 番目の因子には次数 iまでのすべての項、2 番目の因子には次数jまでのすべての項が含まれます。3 番目以降についても同様です。0 ~ 9 の数値を使用して、各因子の最大次数を指定します。モデルには交互作用項が含まれますが、各交互作用項の次数は、指定された次数の最大値を超えません。たとえば、"poly13"には、切片、x1、x2、x22、x23、x1*x2 および x1*x22 の各項が含まれます。x1 および x2 はそれぞれ 1 番目および 2 番目の因子です。上記の表の xi は、計画の i 番目の因子にそれぞれ対応します。bi、bij、bijk、および dij はモデルの項に対する係数です。
ウィルキンソンの表記法による文字ベクトルまたは string スカラーの式。式の因子名は
dobjの作成時に名前と値の引数FactorNamesで指定された因子名でなければなりません。t 行 n 列の項行列。ここで、t は項の数、n は計画内の因子の数です。項行列は、因子の数が多いときに項をプログラムで生成する場合に便利です。項行列の詳細については、項の行列を参照してください。
modelspec の既定値は dobj.ModelSpecification です。
例: "quadratic"
例: "x1 + x2^2 + x1:x2"
データ型: single | double | char | string
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: fitlm(dobj,Y,Intercept=false,ResponseVar="OxygenLevel") は、切片項がない線形モデルを予測子データ dobj と Y の応答変数 "OxygenLevel" に当てはめます。
当てはめから除外する観測値。数値ベクトルまたは logical ベクトルとして指定します。ベクトルの要素は、当てはめから除外する dobj.Design の行を示します。
例: Exclude=[2,3]
例: Exclude=logical([0 1 1 0 0 0])
データ型: single | double | logical
当てはめにおける定数項 (切片) のインジケーター。定数項を含める場合は数値または logical の 1 (true)、定数項をモデルから削除する場合は 0 (false) として指定します。dobj.ModelSpecification に切片項が含まれる場合、切片に対する既定値は true です。そうでない場合、既定値は false となります。
Intercept を指定できるのは、modelspec がモデル名の場合だけです。
例: Intercept=false
データ型: logical
応答変数の名前。string または文字ベクトルとして指定します。ResponseVar の既定値は "y" です。
例: ResponseVar="yield"
データ型: char | string
使用するロバスト近似のタイプ。次の値のいずれかとして指定します。
"off"— ロバスト近似を使用しない。fitlmは通常の最小二乗を使用します。"on"— 既定の調整定数で"bisquare"重み関数を使用するロバスト近似。文字ベクトルまたは string スカラー — 以下の表に記載されているロバスト近似重み関数の名前。
fitlmは、対応する既定の調整定数を使用します。RobustWgtFunおよびTuneという 2 つのフィールドをもつ構造体。RobustWgtFunフィールドには、次の表に記載されているロバスト近似重み関数の名前、またはカスタム重み関数の関数ハンドルを格納します。Tuneフィールドには、調整定数を格納します。Tuneフィールドを設定しない場合、fitlmは対応する既定の調整定数を使用します。
| 重み関数 | 説明 | 既定の設定の調整定数 |
|---|---|---|
"andrews" | w = (abs(r)<pi) .* sin(r) ./ r | 1.339 |
"bisquare" | w = (abs(r)<1) .* (1 - r.^2).^2 (biweight とも呼ばれます) | 4.685 |
"cauchy" | w = 1 ./ (1 + r.^2) | 2.385 |
"fair" | w = 1 ./ (1 + abs(r)) | 1.400 |
"huber" | w = 1 ./ max(1, abs(r)) | 1.345 |
"logistic" | w = tanh(r) ./ r | 1.205 |
"ols" | 通常の最小二乗 (重み関数なし) | なし |
"talwar" | w = 1 * (abs(r)<1) | 2.795 |
"welsch" | w = exp(-(r.^2)) | 2.985 |
| 関数ハンドル | スケーリングされた残差のベクトル r を受け入れ、r と同じサイズの重みのベクトルを返す、カスタム重み関数 | 1 |
応答が正規分布に従っており、外れ値がない場合、組み込み重み関数の既定の調整定数を使用すると、統計的な効率が通常の最小二乗推定の約 95% である係数推定値が得られます。調整定数を小さくすると、大きな残差に割り当てられる重みの削減量が増えます。調整定数を大きくすると、大きな残差に割り当てられる重みの削減量が減ります。
重み関数の値 r は以下によって決まります。
r = resid/(tune*s*sqrt(1–h)),
ここで、resid は前回の反復の残差のベクトル、tune は調整定数、h は最小二乗近似のてこ比の値のベクトルです。s は以下によって与えられる誤差項の標準偏差の推定値です。
s = MAD/0.6745.
MAD は、残差の中央値に対する残差の中央絶対偏差です。定数 0.6745 は、推定を正規分布に対して不偏にします。X に p 個の列がある場合、中央値を計算するときに、最小のものから p 個の絶対偏差が除外されます。
ロバスト近似の場合、fitlm は M 推定を使用して推定式を定式化し、反復的に再重み付けした最小二乗 (IRLS) 法を使用してこの式を解きます。
例: RobustOpts="andrews"
データ型: char | string | struct
観測値の重み。非負のスカラー値の p 行 1 列のベクトルとして指定します。ここで、p は計画点の数です。
データ型: single | double
出力引数
当てはめ後のモデル。LinearModel オブジェクトとして返されます。
名前と値の引数 RobustOpts が設定されていないか "ols" として指定されている場合、モデルは最小二乗近似になります。それ以外の場合、fitlm は RobustOpts で指定されたロバスト近似関数を使用してモデルを当てはめます。
詳細
項行列 T は、モデル内の項を指定する t 行 n 列の行列です。ここで、t は項の数、n は計画内の因子の数です。T(i,j) の値は、項 i の変数 j の指数です。
たとえば、計画に 3 つの因子 x1、x2、x3 が含まれているとします。T の各行は 1 つの項を表します。
[0 0 0]— 定数項 (切片)[0 1 0]—x2(x1^0 * x2^1 * x3^0と等価)[1 0 1]—x1*x3[2 0 0]—x1^2[0 1 2]—x2*(x3^2)
ウィルキンソンの表記法は、モデル内の項を記述します。この表記法は、モデルに含まれる項に関係するものであり、それらの項の乗数 (係数) に関係するものではありません。
ウィルキンソンの表記法では、以下の記号を使用します。
+は、次の変数を含むことを意味します。–は、次の変数を含まないことを意味します。:は、項の積である交互作用を定義します。*は、交互作用と、より低い次数の項すべてを定義します。^は、*を繰り返した場合とまったく同じ方法で予測子をべき乗にします。このため、^には、より低い次数の項も含まれます。()は、項をグループ化します。
次の表に、ウィルキンソンの表記法の代表的な例を示します。
| ウィルキンソンの表記法 | 標準表記の項 |
|---|---|
1 | 定数 (切片) 項 |
x1^k、k は正の整数 | x1, x12, ..., x1k |
x1 + x2 | x1, x2 |
x1*x2 | x1, x2, x1*x2 |
x1:x2 | x1*x2 のみ |
–x2 | x2 は含めない |
x1*x2 + x3 | x1, x2, x3, x1*x2 |
x1 + x2 + x3 + x1:x2 | x1, x2, x3, x1*x2 |
x1*x2*x3 – x1:x2:x3 | x1, x2, x3, x1*x2, x1*x3, x2*x3 |
x1*(x2 + x3) | x1, x2, x3, x1*x2, x1*x3 |
詳細は、ウィルキンソンの表記法を参照してください。
バージョン履歴
R2024b で導入
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)