주요 콘텐츠

fitlm

설계점을 사용하여 선형 회귀 모델 피팅하기

R2024b 이후

    설명

    mdl = fitlm(dobj,Y)dobj의 설계점과 Y의 응답 변수 데이터에 대해 피팅된 선형 회귀 모델을 반환합니다.

    예제

    mdl = fitlm(dobj,Y,modelspec)은 모델 사양도 정의합니다.

    예제

    mdl = fitlm(___,Name=Value)는 위에 열거된 구문에 나와 있는 입력 인수 조합 외에 하나 이상의 이름-값 인수를 사용하여 옵션을 지정합니다. 예를 들어, 로버스트 피팅 옵션을 지정하거나 피팅에서 제외시킬 관측값을 지정할 수 있습니다.

    예제

    예제

    모두 축소

    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 객체입니다. 모델 표시 화면에 모델식, 추정된 계수 및 모델 요약 통계량이 포함됩니다.

    혼합 설계(mixture design)를 생성하고 설계점에 대한 응답 변수 데이터를 만듭니다.

    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 숫자형 벡터로 지정됩니다. 여기서 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"모델이 첫 번째 인자에 차수 i까지의 모든 항을 포함하고 두 번째 인자에 차수 j까지의 모든 항을 포함하는 식으로 전개되는 다항식입니다. 숫자 0부터 9까지를 사용하여 각 인자에 대해 최대 차수를 지정합니다. 모델에 상호 작용 항이 있지만 각 상호 작용 항의 차수가 지정된 차수의 최댓값을 초과하지 않습니다. 예를 들어, "poly13"에는 절편 항과 x1, x2, x22, x23, x1*x2, x1*x22 항이 있습니다. 여기서 x1x2는 각각 첫 번째 인자와 두 번째 인자입니다.

      위의 표에서 각 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")은 절편 항이 없는 선형 모델을 예측 변수 데이터 dobjY의 응답 변수 "OxygenLevel"에 피팅합니다.

    피팅에서 제외시킬 관측값으로, 숫자형 벡터 또는 논리형 벡터로 지정됩니다. 벡터의 요소는 피팅에서 제외시킬 dobj.Design의 행을 나타냅니다.

    예: Exclude=[2,3]

    예: Exclude=logical([0 1 1 0 0 0])

    데이터형: single | double | logical

    피팅에 포함된 상수항(절편)에 대한 표시자로, 상수항을 포함하기 위한 숫자형 또는 논리형 1(true) 또는 모델에서 상수항을 제거하기 위한 0(false)으로 지정됩니다. dobj.ModelSpecification이 절편 항을 포함하는 경우 절편 항의 디폴트 값은 true입니다. 그렇지 않은 경우 디폴트 값은 false입니다.

    modelspec이 모델 이름인 경우에만 Intercept를 지정할 수 있습니다.

    예: Intercept=false

    데이터형: logical

    응답 변수 이름으로, string형 또는 문자형 벡터로 지정됩니다. ResponseVar의 디폴트 값은 "y"입니다.

    예: ResponseVar="yield"

    데이터형: char | string

    사용할 로버스트 피팅 유형으로, 다음과 같은 값 중 하나로 지정됩니다.

    • "off" — 로버스트 피팅 없음. fitlm 함수는 보통최소제곱을 사용합니다.

    • "on" — 로버스트 피팅 사용. 디폴트 조율 상수를 갖는 "bisquare" 가중치 함수를 사용합니다.

    • 문자형 벡터 또는 string형 스칼라 — 다음 표에 나와 있는 로버스트 피팅 가중치 함수의 이름. fitlm 함수는 대응되는 디폴트 조율 상수를 사용합니다.

    • 두 개의 필드 RobustWgtFunTune을 갖는 구조체.

      • 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는 잔차의 중앙값과 잔차 간의 중앙값절대편차(Median Absolute Deviation)입니다. 상수 0.6745는 정규분포에 대해 무편향 추정값을 생성합니다. Xp개의 열이 있을 경우, 중앙값을 계산할 때 가장 작은 p개의 절대편차가 제외됩니다.

    로버스트 피팅의 경우 fitlm은 M-추정을 사용하여 추정 방정식을 공식화하고 Iteratively Reweighted Least Squares(IRLS) 방법을 사용하여 방정식을 풉니다.

    예: RobustOpts="andrews"

    데이터형: char | string | struct

    관측값 가중치로, 음이 아닌 스칼라 값으로 구성된 p×1 벡터로 지정됩니다. 여기서 p는 설계점 개수입니다.

    데이터형: single | double

    출력 인수

    모두 축소

    피팅된 모델로, LinearModel 객체로 반환됩니다.

    RobustOpts 이름-값 인수를 설정하지 않거나 "ols"로 지정하면 모델은 최소제곱 피팅이 됩니다. 그렇지 않은 경우 fitlmRobustOpts로 지정된 로버스트 피팅 함수를 사용하여 모델을 피팅합니다.

    세부 정보

    모두 축소

    버전 내역

    R2024b에 개발됨