이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

LinearModel.fit

(권장되지 않음) 선형 회귀 모델 생성

LinearModel.fit은 권장되지 않습니다. fitlm을 대신 사용하십시오.

구문

mdl = LinearModel.fit(tbl)
mdl = LinearModel.fit(X,y)
mdl = LinearModel.fit(___,modelspec)
mdl = LinearModel.fit(___,Name,Value)
mdl = LinearModel.fit(___,modelspec,Name,Value)

설명

mdl = LinearModel.fit(tbl)은 테이블 또는 dataset형 배열 tbl의 선형 모델을 생성합니다.

mdl = LinearModel.fit(X,y)는 데이터 행렬 X에 대한 응답 변수 y의 선형 모델을 생성합니다.

mdl = LinearModel.fit(___,modelspec)은 위에 열거된 구문을 사용하여 modelspec으로 지정된 유형의 선형 모델을 생성합니다.

mdl = LinearModel.fit(___,Name,Value) 또는 mdl = LinearModel.fit(___,modelspec,Name,Value)는 하나 이상의 Name,Value 쌍 인수로 지정된 추가 옵션을 사용하여 선형 모델을 생성합니다. 예를 들어, 피팅에 포함시키거나 관측값 가중치에 포함시킬 예측 변수를 지정할 수 있습니다.

입력 인수

모두 확장

입력 데이터로, 테이블 또는 dataset형 배열로 지정됩니다. modelspecformula인 경우, 해당 공식이 예측 변수와 응답 변수를 지정합니다. 그렇지 않고 예측 변수와 응답 변수를 지정하지 않으면 기본적으로 tbl의 마지막 변수가 응답 변수이고, 나머지 변수는 예측 변수가 됩니다.

예측 변수는 숫자형, 논리형, categorical형, 문자 또는 string형일 수 있습니다. 응답 변수는 숫자형이거나 논리형이어야 합니다.

다른 열을 응답 변수로 설정하려면 ResponseVar 이름-값 쌍의 인수를 사용하십시오. 열 중 일부를 예측 변수로 사용하려면 PredictorVars 이름-값 쌍의 인수를 사용하십시오.

예측 변수로, nxp 행렬로 지정됩니다. 여기서 n은 관측값 개수이고 p는 예측 변수 개수입니다. X의 각 열은 하나의 변수를 나타내고, 각 행은 하나의 관측값을 나타냅니다.

기본적으로, 명시적으로 제거하지 않는 한 모델에 상수항이 있으므로 X에 1로 구성된 열을 포함시키지 마십시오.

데이터형: single | double

응답 변수로, nx1 벡터로 지정됩니다. 여기서 n은 관측값 개수입니다. y의 각 요소는 X의 대응 행에 대한 응답 변수입니다.

데이터형: single | double | logical

모델 사양으로, 다음 중 하나로 지정됩니다.

  • 모델을 명명하는 문자형 벡터 또는 string형 스칼라.

    모델 유형
    'constant'모델에 하나의 상수(절편) 항만 있습니다.
    'linear'모델에 하나의 절편 항과 각 예측 변수에 대한 일차항이 있습니다.
    'interactions'모델에 하나의 절편 항, 각 예측 변수에 대한 일차항, 서로 다른 예측 변수 쌍의 모든 곱(제곱 항 아님)이 있습니다.
    'purequadratic'모델에 하나의 절편 항과 각 예측 변수에 대한 일차항 및 제곱 항이 있습니다.
    'quadratic'모델에 하나의 절편 항, 각 예측 변수에 대한 일차항 및 제곱 항, 서로 다른 예측 변수 쌍의 모든 곱이 있습니다.
    'polyijk'모델이 첫 번째 예측 변수에 차수 i까지의 모든 항을 포함하고 두 번째 예측 변수에 차수 j까지의 모든 항을 포함하는 식으로 진행되는 다항식입니다. 숫자 0부터 9까지를 사용하여 각 예측 변수에 대해 최대 차수를 지정합니다. 모델에 상호 작용 항이 있지만 각 상호 작용 항의 차수가 지정된 차수의 최댓값을 초과하지 않습니다. 예를 들어, 'poly13'에는 절편 항과 x1, x2, x22, x23, x1*x2, x1*x22 항이 있으며, 여기서 x1과 x2는 각각 첫 번째 예측 변수, 두 번째 예측 변수입니다.
  • 모델에 포함시킬 항을 지정하는 tx(p + 1) 행렬, 즉 항 행렬. 여기서 t는 항의 개수이고, p는 예측 변수의 개수이며, + 1은 응답 변수에 대한 것입니다.

  • 다음 형식의 을 나타내는 문자형 벡터 또는 string형 스칼라.

    'Y ~ terms'

    여기서 terms윌킨슨(Wilkinson) 표기법을 사용하여 지정됩니다.

예: 'quadratic'

예: 'y ~ X1 + X2^2 + X1:X2'

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정할 수 있습니다. 여기서 Name은 인수 이름이고 Value는 이에 대응하는 값입니다. Name은 따옴표로 묶어야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 원하는 순서로 지정할 수 있습니다.

범주형 변수 목록으로, 'CategoricalVars'와 함께 테이블 또는 dataset형 배열 tbl의 범주형 변수 이름을 포함하는 string형 배열이나 문자형 벡터로 구성된 셀형 배열, 또는 어떤 열이 범주형인지를 나타내는 논리형 또는 숫자형 인덱스 벡터가 쉼표로 구분되어 지정됩니다.

  • 데이터가 테이블 또는 dataset형 배열 tbl에 포함된 경우, 기본적으로 LinearModel.fit은 모든 categorical형 값, 논리값, 문자형 배열, string형 배열, 문자형 벡터로 구성된 셀형 배열을 범주형 변수로 처리합니다.

  • 데이터가 행렬 X에 포함된 경우, 'CategoricalVars'의 디폴트 값은 빈 행렬 []입니다. 즉, 범주형 변수로 직접 지정하지 않는 한 어떠한 변수도 범주형 변수가 아닙니다.

예를 들어, 다음 예 중 하나를 사용하여 6개 관측값 중 관측값 2와 관측값 3을 범주형으로 지정할 수 있습니다.

예: 'CategoricalVars',[2,3]

예: 'CategoricalVars',logical([0 1 1 0 0 0])

데이터형: single | double | logical | string | cell

피팅에서 제외시킬 관측값으로, 'Exclude'와 함께 피팅에서 제외시킬 관측값을 나타내는 논리형 또는 숫자형 인덱스 벡터가 쉼표로 구분되어 지정됩니다.

예를 들어, 다음 예 중 하나를 사용하여 6개 관측값 중에서 관측값 2와 관측값 3을 제외시킬 수 있습니다.

예: 'Exclude',[2,3]

예: 'Exclude',logical([0 1 1 0 0 0])

데이터형: single | double | logical

피팅에 포함된 상수항(절편)에 대한 표시자로, 'Intercept'와 함께 true(상수항 포함) 또는 false(모델에서 상수항 제외)가 쉼표로 구분되어 지정됩니다.

식 또는 행렬이 아니라 문자형 벡터 또는 string형 스칼라를 사용하여 모델을 지정하는 경우에만 'Intercept'를 사용하십시오.

예: 'Intercept',false

피팅에 사용할 예측 변수로, 'PredictorVars'와 함께 테이블 또는 dataset형 배열 tbl의 변수 이름에 대한 string형 배열이나 문자형 벡터로 구성된 셀형 배열 또는 예측 변수 열을 나타내는 논리형 또는 숫자형 인덱스 벡터가 쉼표로 구분되어 지정됩니다.

string형 값 또는 문자형 벡터는 tbl에 포함된 이름이거나 'VarNames' 이름-값 쌍의 인수를 사용하여 지정하는 이름이어야 합니다.

디폴트 값은 X에 포함된 모든 변수 또는 tbl에 포함된 모든 변수입니다. 단, ResponseVar는 예외입니다.

예를 들어, 다음 예 중 하나를 사용하여 두 번째 변수와 세 번째 변수를 예측 변수로 지정할 수 있습니다.

예: 'PredictorVars',[2,3]

예: 'PredictorVars',logical([0 1 1 0 0 0])

데이터형: single | double | logical | string | cell

피팅에 사용할 응답 변수로, 'ResponseVar'와 함께 테이블 또는 dataset형 배열 tbl의 변수 이름을 포함하는 문자형 벡터나 string형 스칼라 또는 응답 변수 열을 나타내는 논리형 또는 숫자형 인덱스 벡터가 쉼표로 구분되어 지정됩니다. 일반적으로 테이블 또는 dataset형 배열 tbl을 피팅할 때는 'ResponseVar'를 사용해야 합니다.

예를 들어, 다음과 방법 중 하나로 네 번째 변수, 이를 테면 yield를 6개 변수 중 응답 변수로 지정할 수 있습니다.

예: 'ResponseVar','yield'

예: 'ResponseVar',[4]

예: 'ResponseVar',logical([0 0 0 1 0 0])

데이터형: single | double | logical | char | string

사용할 로버스트 피팅 유형에 대한 표시자로, 'RobustOpts'와 함께 다음 값 중 하나가 쉼표로 구분되어 지정됩니다.

  • 'off' — 로버스트 피팅 없음. LinearModel.fit은 보통최소제곱해(Ordinary Least Squares)를 사용합니다.

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

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

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

    • RobustWgtFun 필드는 다음 표에 나와 있는 로버스트 피팅 가중치 함수의 이름을 포함하거나 사용자 지정 가중치 함수의 함수 핸들을 포함합니다.

    • Tune 필드는 조율 상수를 포함합니다. Tune 필드를 설정하지 않으면 LinearModel.fit 함수는 지정된 디폴트 조율 상수를 사용합니다.

    가중치 함수설명디폴트 조율 상수
    '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는 정규분포에 대해 무편향 추정값을 생성합니다. X에 p개의 열이 있을 경우, 중앙값을 계산할 때 가장 작은 p개의 절대편차가 제외됩니다.

로버스트 피팅의 경우 LinearModel.fit 함수는 M-추정을 사용하여 추정 방정식을 정식화하고 반복 재가중 최소제곱(IRLS) 방법을 사용하여 방정식을 풉니다.

예: 'RobustOpts','andrews'

변수 이름으로, 'VarNames'와 함께X의 열에 대한 이름을 첫 번째로 포함하고 응답 변수 y의 이름을 마지막으로 포함하는 string형 배열 또는 문자형 벡터로 구성된 셀형 배열이 쉼표로 구분되어 지정됩니다.

'VarNames'는 테이블 또는 dataset형 배열의 변수에 적용되지 않습니다. 이러한 변수는 이미 이름을 갖고 있기 때문입니다.

예를 들어, 데이터에서 마력, 가속도, 자동차의 모델 연도가 예측 변수이고 갤런당 마일 주행거리(MPG)가 응답 변수인 경우 다음과 같이 변수 이름을 지정할 수 있습니다.

예: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}

데이터형: string | cell

관측값 가중치로, 'Weights'와 함께 음이 아닌 스칼라 값으로 구성된 nx1 벡터가 쉼표로 구분되어 지정됩니다. 여기서 n은 관측값 개수입니다.

데이터형: single | double

출력 인수

모두 확장

데이터에 대한 응답 변수의 최소제곱 피팅을 나타내는 선형 모델로, LinearModel 객체로 반환됩니다.

'RobustOpts' 이름-값 쌍의 값이 [] 또는 'ols'가 아닌 경우, 이 모델은 최소제곱 피팅이 아니지만, 로버스트 피팅 함수를 사용합니다.

선형 모델 객체에 대한 속성과 메서드는 LinearModel 클래스 페이지를 참조하십시오.

예제

모두 확장

행렬 입력 데이터 세트를 사용하여 선형 회귀 모델을 피팅합니다.

행렬 입력 데이터 세트인 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 + x3y=β0+β1X1+β2X2+β3X3+ϵ에 해당합니다.

모델 표시 화면에 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 — 모델에 주어진 다른 예측 변수를 상정한 경우, '대응하는 계수가 0이 아니다'는 대립가설에 대해 '계수가 0이다'는 귀무가설을 검정하는 데 사용된 각 계수에 대한 t-통계량입니다. 참고로, tStat = Estimate/SE입니다. 예를 들어, 절편에 대한 t-통계량은 47.977/3.8785 = 12.37입니다.

  • pValue — 대응하는 계수가 0인지 아니면 0이 아닌지를 검정하는 가설에 대한 t-통계량의 p-값입니다. 예를 들어, x2에 대한 t-통계량의 p-값은 0.05보다 크므로 모델의 다른 항을 고려할 때 이 항은 5% 유의수준에서 유의미하지 않습니다.

모델의 요약 통계량은 다음과 같습니다.

  • Number of observationsNaN 값을 포함하지 않는 행 개수입니다. 예를 들어, XMPG의 행 개수는 100개인데 MPG 데이터 벡터에 NaN 값이 6개 있고 Horsepower 데이터 벡터에 다른 관측값에 대한 NaN 값이 1개 있기 때문에 Number of observations는 93입니다.

  • Error degrees of freedomn p이며, 여기서 n은 관측값의 개수이고 p는 절편을 포함하여 모델에 포함된 계수의 개수입니다. 예를 들어, 이 모델은 4개의 예측 변수를 가지므로 Error degrees of freedom은 93 – 4 = 89입니다.

  • Root mean squared error — 평균 제곱 오차의 제곱근으로, 오차 분포의 표준편차를 추정합니다.

  • R-squaredAdjusted R-squared — 각각 결정계수와 수정된 결정계수를 나타냅니다. 예를 들어, R-squared 값은 모델이 응답 변수 MPG의 변동성의 약 75%를 설명한다는 것을 나타냅니다.

  • F-statistic vs. constant model — 회귀 모델에 대한 F-검정의 검정 통계량으로, 이 모델이 상수항만으로 구성된 퇴화 모델보다 훨씬 더 잘 피팅되는지 여부를 검정합니다.

  • p-value — 모델에 대한 F-검정의 p-값입니다. 예를 들어, 이 모델은 p-값이 7.3816e-27인 경우 유의미합니다.

모델 속성(NumObservations, DFE, RMSERsquared)에서, 그리고 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                        

범주형 예측 변수를 포함하는 선형 회귀 모델을 피팅합니다. 모델에서 기준 레벨을 제어하기 위해 범주형 예측 변수의 범주를 다시 정렬합니다. 그런 다음 anova를 사용하여 범주형 변수의 유의성을 검정합니다.

범주형 예측 변수를 갖는 모델

carsmall 데이터 세트를 불러오고, MPG의 선형 회귀 모델을 Model_Year의 함수로 생성합니다. 숫자형 벡터 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는 다음에 해당합니다.

MPG=β0+β1ΙYear=76+β2ΙYear=82+ϵ

여기서 ΙYear=76ΙYear=82Model_Year의 값이 각각 76 및 82일 때 값이 1인 표시 변수입니다. Model_Year 변수는 3개의 고유한 값을 포함하고 있으며, 이는 unique 함수를 사용해서 확인할 수 있습니다.

unique(Model_Year)
ans = 3×1

    70
    76
    82

fitlmModel_Year에서 가장 작은 값을 기준 레벨('70')로 선택하고 두 개의 표시 변수 ΙYear=76ΙYear=82를 생성합니다. 모델이 3개의 표시 변수(각 레벨당 1개)와 1개의 절편 항을 포함하는 경우 설계 행렬이 랭크 부족이 되므로 모델은 2개의 표시 변수만 포함합니다.

전체 표시 변수를 갖는 모델

mdl의 모델식을 절편 항이 없고 3개의 표시 변수를 갖는 모델로 해석할 수 있습니다.

y=β0Ιx1=70+(β0+β1)Ιx1=76+(β0+β2)Ιx2=82+ϵ.

또는 표시 변수를 수동으로 생성하고 모델식을 지정하여 절편 항이 없고 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 = 3x1 cell array
    {'70'}
    {'76'}
    {'82'}

Year를 예측 변수로 사용할 경우 fitlm은 첫 번째 범주 '70'을 기준 레벨로 선택합니다. reordercats 함수를 사용하여 Year를 다시 정렬합니다.

Year_reordered = reordercats(Year,{'76','70','82'});
categories(Year_reordered)
ans = 3x1 cell array
    {'76'}
    {'70'}
    {'82'}

Year_reordered의 첫 번째 범주는 '76'입니다. MPG의 선형 회귀 모델을 Year_reordered의 함수로 생성합니다.

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'을 기준 레벨로 사용하고 두 개의 표시 변수 ΙYear=70ΙYear=82를 포함합니다.

범주형 예측 변수 평가하기

mdl2의 모델 표시 화면은 대응되는 계수가 0인지 여부를 검정하기 위해 각 항의 p-값을 포함합니다. 각 p-값은 각 표시 변수를 조사합니다. 범주형 변수 Model_Year를 표시 변수의 그룹으로 조사하려면 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                       

성분 분산분석표는 표시 변수의 p-값보다 작은 Model_Year 변수의 p-값을 포함합니다.

선형 회귀 모델을 표본 데이터에 피팅합니다. 응답 변수와 예측 변수를 지정하고 쌍별(Pairwise) 상호 작용 항만 모델에 포함시킵니다.

표본 데이터를 불러옵니다.

load hospital

상호 작용 항이 있는 선형 모델을 데이터에 피팅합니다. 체중을 응답 변수로 지정하고, 성별, 연령 및 흡연 여부를 예측 변수로 지정합니다. 또한, 성별과 흡연 여부가 범주형 변수임을 지정합니다.

mdl = fitlm(hospital,'interactions','ResponseVar','Weight',...
    'PredictorVars',{'Sex','Age','Smoker'},...
    'CategoricalVar',{'Sex','Smoker'})
mdl = 
Linear regression model:
    Weight ~ 1 + Sex*Age + Sex*Smoker + Age*Smoker

Estimated Coefficients:
                         Estimate      SE        tStat        pValue  
                         ________    _______    ________    __________

    (Intercept)             118.7     7.0718      16.785     6.821e-30
    Sex_Male               68.336     9.7153      7.0339    3.3386e-10
    Age                   0.31068    0.18531      1.6765      0.096991
    Smoker_1               3.0425     10.446     0.29127       0.77149
    Sex_Male:Age         -0.49094    0.24764     -1.9825      0.050377
    Sex_Male:Smoker_1      0.9509     3.8031     0.25003       0.80312
    Age:Smoker_1         -0.07288    0.26275    -0.27737       0.78211


Number of observations: 100, Error degrees of freedom: 93
Root Mean Squared Error: 8.75
R-squared: 0.898,  Adjusted R-Squared: 0.892
F-statistic vs. constant model: 137, p-value = 6.91e-44

5% 유의수준에서 환자의 체중이 연령, 흡연 여부 또는 환자의 성별과 이러한 인자의 상호 작용에 따라 크게 다르지 않은 것으로 보입니다.

시멘트 조성물이 해당 시멘트의 경화 열에 미치는 영향을 측정하는 hald 데이터 세트를 불러옵니다.

load hald

이 데이터 세트는 변수 ingredientsheat를 포함합니다. 행렬 ingredients는 시멘트에 존재하는 네 가지 화학 성분의 조성 비율을 포함합니다. 벡터 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

자세한 내용은 로버스트 피팅의 결과와 표준 최소제곱 피팅의 결과를 비교하는 Robust Regression — Reduce Outlier Effects 항목을 참조하십시오.

세부 정보

모두 확장

  • 로버스트 피팅(RobustOpts 이름-값 쌍)을 사용하면 이상값의 효과를 자동으로 줄일 수 있습니다.

  • step을 사용하여 모델을 이후에 조정하려는 경우 로버스트 피팅을 사용하지 마십시오.

  • LinearModel 객체에 대한 다른 메서드나 속성은 LinearModel을 참조하십시오.

알고리즘

주요 피팅 알고리즘은 QR 분해입니다. 로버스트 피팅의 경우, 알고리즘은 robustfit입니다.

대안

fitlm을 사용하여 선형 모델을 생성할 수도 있습니다.

stepwiselm을 사용하여 가능한 모델 범위에 있는 모델을 생성할 수 있습니다. 그러나, 로버스트 회귀와 단계적 회귀를 함께 사용할 수는 없습니다.