メインコンテンツ

fitlm

計画点を使用した線形回帰モデルの当てはめ

R2024b 以降

    説明

    mdl = fitlm(dobj,Y) は、dobj の計画点と Y の応答データに当てはめた線形回帰モデルを返します。

    mdl = fitlm(dobj,Y,modelspec) は、モデル仕様も定義します。

    mdl = fitlm(___,Name=Value) では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、ロバスト近似オプションや当てはめから除外する観測値を指定できます。

    すべて折りたたむ

    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
    
    

    出力から、mdl1mdl2 よりも対数尤度がわずかに大きいことがわかります。この結果は、切片項を削除しても、データに対するモデルの適合に有意な影響を与えないことを示しています。

    入力引数

    すべて折りたたむ

    計画。fullFactorialDOE オブジェクト、mixtureDOE オブジェクト、optimalDOE オブジェクト、または taguchiDOE オブジェクトとして指定します。fitlm は、dobj.Design の計画点を予測子として使用して線形回帰モデルを当てはめます。

    応答変数。p 行 1 列の数値ベクトルとして指定します。ここで、pdobj の計画点の数です。Y の各エントリは dobj.Design の対応する行に対する応答です。

    データ型: single | double

    実験モデル。次の値のいずれかとして指定します。

    • モデルの名前の文字ベクトルまたは string スカラー。

      モデルの説明
      "linear"切片と各因子の線形項がモデルに含まれます。
      "constant"定数 (切片) 項のみがモデルに含まれます。
      "interactions"切片、各因子の線形項、および異なる因子のペアすべての積がモデルに含まれます (二乗項はありません)。
      "purequadratic"切片項と各因子の線形項および二乗項がモデルに含まれます。
      "quadratic"切片項、各因子の線形項、二乗項、および異なる因子のペアすべての積がモデルに含まれます。
      "scheffe-linear"

      各因子の線形項がモデルに含まれ、切片項は含まれません。

      "scheffe-quad"

      モデルは次の式で与えられます。

      i=1nbixi+i=1nj<in1bijxixj

      "scheffe-special-cubic"

      モデルは次の式で与えられます。

      i=1nbixi+i=1nj<in1bijxixj+i=1nj<in1k<jn2bijkxixjxk

      "polyijk"モデルは多項式であり、1 番目の因子には次数 i までのすべての項、2 番目の因子には次数 j までのすべての項が含まれます。3 番目以降についても同様です。0 ~ 9 の数値を使用して、各因子の最大次数を指定します。モデルには交互作用項が含まれますが、各交互作用項の次数は、指定された次数の最大値を超えません。たとえば、"poly13" には、切片、x1x2x22x23x1*x2 および x1*x22 の各項が含まれます。x1 および x2 はそれぞれ 1 番目および 2 番目の因子です。

      上記の表の xi は、計画の i 番目の因子にそれぞれ対応します。bibijbijk、および dij はモデルの項に対する係数です。

    • ウィルキンソンの表記法による文字ベクトルまたは string スカラーの式。式の因子名は dobj の作成時に名前と値の引数 FactorNames で指定された因子名でなければなりません。

    • tn 列の項行列。ここで、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") は、切片項がない線形モデルを予測子データ dobjY の応答変数 "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) ./ r1.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) ./ r1.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 は、推定を正規分布に対して不偏にします。Xp 個の列がある場合、中央値を計算するときに、最小のものから p 個の絶対偏差が除外されます。

    ロバスト近似の場合、fitlm は M 推定を使用して推定式を定式化し、反復的に再重み付けした最小二乗 (IRLS) 法を使用してこの式を解きます。

    例: RobustOpts="andrews"

    データ型: char | string | struct

    観測値の重み。非負のスカラー値の p 行 1 列のベクトルとして指定します。ここで、p は計画点の数です。

    データ型: single | double

    出力引数

    すべて折りたたむ

    当てはめ後のモデル。LinearModel オブジェクトとして返されます。

    名前と値の引数 RobustOpts が設定されていないか "ols" として指定されている場合、モデルは最小二乗近似になります。それ以外の場合、fitlmRobustOpts で指定されたロバスト近似関数を使用してモデルを当てはめます。

    詳細

    すべて折りたたむ

    バージョン履歴

    R2024b で導入