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

LinearModel

선형 회귀 모델

설명

LinearModel은 피팅된 선형 회귀 모델 객체입니다. 회귀 모델은 응답 변수와 예측 변수 사이의 관계를 설명합니다. 선형 회귀 모델의 선형성은 예측 변수 계수의 선형성을 가리킵니다.

LinearModel 객체의 속성을 사용하여 피팅된 선형 회귀 모델을 조사하십시오. 객체 속성에는 계수 추정값, 요약 통계량, 피팅 방법 및 입력 데이터에 대한 정보가 포함됩니다. 객체 함수를 사용하여 응답 변수를 예측하고 선형 회귀 모델을 수정, 평가 및 시각화하십시오.

생성

LinearModel 객체는 fitlm 또는 stepwiselm을 사용하여 생성할 수 있습니다.

fitlm은 고정된 모델 사양을 사용하여 선형 회귀 모델을 데이터에 피팅합니다. 모델에서 항을 추가하거나 제거하려면 addTerms, removeTerms 또는 step을 사용하십시오. 또는 단계적 선형 회귀를 사용하여 모델을 피팅하려면 stepwiselm을 사용하십시오.

속성

모두 확장

계수 추정값

이 속성은 읽기 전용입니다.

계수 추정값으로 구성된 공분산 행렬로, 숫자형 값으로 구성된 pxp 행렬로 지정됩니다. p는 피팅된 모델에 포함된 계수의 개수입니다.

자세한 내용은 Coefficient Standard Errors and Confidence Intervals 항목을 참조하십시오.

데이터형: single | double

이 속성은 읽기 전용입니다.

계수 이름으로, 각각 대응되는 항의 이름을 포함하는 문자형 벡터로 구성된 셀형 배열로 지정됩니다.

데이터형: cell

이 속성은 읽기 전용입니다.

계수 값으로, 테이블로 지정됩니다. Coefficients는 각 계수에 대해 하나의 행과 다음과 같은 열을 포함합니다.

  • Estimate — 추정된 계수 값

  • SE — 추정값의 표준 오차

  • tStat — 계수가 0인지를 확인하는 검정에 대한 t-통계량

  • pValue — t-통계량에 대한 p-값

계수에 대해 다른 검정을 수행하려면 anova(선형 회귀 모델만 해당) 또는 coefTest를 사용하십시오. 계수 추정값의 신뢰구간을 구하려면 coefCI를 사용하십시오.

이러한 열 중 하나를 벡터로 얻으려면 점 표기법을 사용하여 속성의 요소를 참조하십시오. 예를 들어, 다음과 같이 모델 mdl에서 추정된 계수 벡터를 얻습니다.

beta = mdl.Coefficients.Estimate

데이터형: table

이 속성은 읽기 전용입니다.

모델 계수의 개수로, 양의 정수로 지정됩니다. NumCoefficients는 모델 항이 랭크 부족인 경우 0으로 설정되는 계수를 포함합니다.

데이터형: double

이 속성은 읽기 전용입니다.

모델에서 추정된 계수의 개수로, 양의 정수로 지정됩니다. NumEstimatedCoefficients는 모델 항이 랭크 부족인 경우 0으로 설정되는 계수를 포함하지 않습니다. NumEstimatedCoefficients는 회귀에 대한 자유도입니다.

데이터형: double

요약 통계량

이 속성은 읽기 전용입니다.

오차(잔차)에 대한 자유도로, 관측값 개수에서 추정된 계수 개수를 뺀 값과 같으며, 양의 정수로 지정됩니다.

데이터형: double

이 속성은 읽기 전용입니다.

관측값 진단으로, 각 관측값에 대해 하나의 행과 다음 표에 설명된 열을 포함하는 테이블로 지정됩니다.

의미설명
LeverageHatMatrix의 대각선 요소각 관측값에 대한 Leverage는 관측된 예측 변수 값에 의해 피팅이 결정되는 정도를 나타냅니다. 값이 1에 가까우면 피팅이 다른 관측값의 영향을 거의 받지 않고 주로 해당 관측값에 의해 결정됨을 나타냅니다. 값이 0에 가까우면 피팅이 주로 다른 관측값에 의해 결정됨을 나타냅니다. P개의 계수와 N개의 관측값이 있는 모델의 경우, Leverage의 평균값은 P/N입니다. 2*P/N보다 큰 Leverage 값은 높은 지렛대값을 나타냅니다.
CooksDistance쿡의 거리CooksDistance는 피팅된 값의 스케일링된 변화량에 대한 측정값입니다. CooksDistance가 평균 쿡의 거리(Cook's Distance)의 세 배보다 큰 관측값은 이상값일 수 있습니다.
Dffits피팅된 값의 Delete-1 스케일링된 차분Dffits는 각 관측값에 대해 피팅된 값의 스케일링된 변화량으로, 피팅에서 해당 관측값을 제외시키면 얻게 됩니다. 절댓값이 2*sqrt(P/N)보다 큰 값은 영향점으로 간주될 수 있습니다.
S2_iDelete-1 분산S2_i는 각 관측값을 차례로 삭제하여 구한 잔차 분산 추정값 집합입니다. 이러한 추정값을 MSE 속성에 저장된 평균 제곱 오차(MSE) 값과 비교할 수 있습니다.
CovRatio공분산 행렬식의 Delete-1 비율CovRatio는 전체 모델에 대한 공분산 행렬의 행렬식에 대해 각 관측값을 차례로 삭제한 계수 공분산 행렬의 행렬식 비율입니다. 1 + 3*P/N보다 크거나 1 – 3*P/N보다 작은 값은 영향점을 나타냅니다.
Dfbetas계수 추정값의 Delete-1 스케일링된 차분Dfbetas는 계수 추정값의 스케일링된 변화량으로 구성된 NxP 행렬로, 각 관측값을 차례로 제외시켜 얻을 수 있습니다. 절댓값이 3/sqrt(N)보다 큰 값은 관측값이 해당 계수에 미치는 영향이 크다는 것을 나타냅니다.
HatMatrix관측된 응답 변수에서 fitted를 계산하기 위한 투영 행렬HatMatrixFitted = HatMatrix*Y를 충족하는 NxN 행렬이며, 여기서 Y는 응답 변수 벡터이고 Fitted는 피팅된 응답 변수 값으로 구성된 벡터입니다.

Diagnostics는 이상값 및 영향 관측값을 구하는 데 도움이 되는 정보를 포함합니다. Delete-1 진단은 피팅에서 각 관측값을 차례로 제외시켜 얻은 변화량을 캡처합니다. 자세한 내용은 Hat Matrix and Leverage, Cook’s DistanceDelete-1 Statistics 항목을 참조하십시오.

관측값 진단을 플로팅하려면 plotDiagnostics를 사용하십시오.

결측값(ObservationInfo.Missing에 있음) 또는 제외된 값(ObservationInfo.Excluded에 있음)으로 인해 피팅에 사용되지 않은 행에는 CooksDistance, Dffits, S2_i, CovRatio 열에 NaN 값이 포함되고 Leverage, Dfbetas, HatMatrix 열에 0이 포함됩니다.

이러한 열 중 하나를 배열로 얻으려면 점 표기법을 사용하여 속성의 요소를 참조하십시오. 예를 들어, 다음과 같이 모델 mdl에서 Delete-1 분산 벡터를 구합니다.

S2i = mdl.Diagnostics.S2_i;

데이터형: table

이 속성은 읽기 전용입니다.

입력 데이터를 기준으로 피팅된(예측된) 응답 변수 값으로, nx1 숫자형 벡터로 지정됩니다. n은 입력 데이터에 포함된 관측값 개수입니다. predict를 사용하여 다른 예측 변수 값에 대한 예측값을 계산하거나 Fitted에 대한 신뢰한계를 계산할 수 있습니다.

데이터형: single | double

이 속성은 읽기 전용입니다.

응답 변수 값의 로그 가능도로, 각 응답 변수 값이 정규분포를 따른다는 가정에 기반하여 숫자형 값으로 지정됩니다. 정규분포의 평균은 피팅된(예측된) 응답 변수 값이고, 분산은 MSE입니다.

데이터형: single | double

이 속성은 읽기 전용입니다.

모델 비교 기준으로, 다음 필드를 가진 구조체로 지정됩니다.

  • AIC — 아카이케 정보 기준(AIC: Akaike's Information Criterion)으로 AIC = –2*logL + 2*m입니다. 여기서 logL은 로그 가능도이며 m은 추정된 모수의 개수입니다.

  • AICc — 표본 크기에 대해 수정된 아카이케 정보 기준으로 AICc = AIC + (2*m*(m+1))/(n–m–1)입니다. 여기서 n은 관측값 개수입니다.

  • BIC — 베이즈 정보 기준(BIC: Bayesian Information Criterion)으로 BIC = –2*logL + m*log(n)입니다.

  • CAIC — 일관된 아카이케 정보 기준으로 CAIC = –2*logL + m*(log(n)+1)입니다.

정보 기준은 동일한 데이터에 대한 여러 모델 피팅을 비교하는 데 사용할 수 있는 모델 선택 도구입니다. 이 기준은 복잡도(특히 모수 개수)에 대한 벌점을 포함하는 모델 피팅에 대한 가능도 기반 측정값입니다. 각기 다른 정보 기준은 벌점 형식으로 구분됩니다.

여러 모델을 비교할 때는 정보 기준 값이 가장 낮은 모델이 가장 적합한 피팅 모델입니다. 최적의 피팅 모델은 모델 비교에 사용된 기준에 따라 다를 수 있습니다.

기준 값 중 하나를 스칼라로 구하려면 점 표기법을 사용하여 속성을 참조하십시오. 예를 들어, 다음과 같이 모델 mdl에서 AIC 값 aic를 구합니다.

aic = mdl.ModelCriterion.AIC

데이터형: struct

이 속성은 읽기 전용입니다.

평균 제곱 오차(잔차)로, 숫자형 값으로 지정됩니다.

MSE = SSE / DFE,

여기서 MSE는 평균 제곱 오차이고, SSE는 제곱 오차의 합이며, DFE는 자유도입니다.

데이터형: single | double

이 속성은 읽기 전용입니다.

피팅된 모델의 잔차로, 각 관측값에 대해 하나의 행과 다음 표에 설명된 열을 포함하는 테이블로 지정됩니다.

설명
Raw관측값에서 피팅값을 뺀 값입니다.
Pearson원시 잔차를 평균 제곱 오차의 제곱근(RMSE)으로 나눈 값입니다.
Standardized원시 잔차를 잔차의 추정된 표준편차로 나눈 값입니다.
Studentized원시 잔차를 잔차 표준편차에 대한 독립적인 추정값으로 나눈 값입니다. 관측값 i에 대한 잔차를 관측값 i를 제외한 모든 관측값을 기반으로 하는 오차 표준편차의 추정값으로 나누어 얻습니다.

잔차에 대한 플롯을 생성하려면 plotResiduals를 사용하십시오. 자세한 내용은 Residuals 항목을 참조하십시오.

결측값(ObservationInfo.Missing에 있음) 또는 제외된 값(ObservationInfo.Excluded에 있음)으로 인해 피팅에 사용되지 않은 행에는 NaN 값이 포함됩니다.

이러한 열 중 하나를 벡터로 얻으려면 점 표기법을 사용하여 속성의 요소를 참조하십시오. 예를 들어, 다음과 같이 모델 mdl에서 원시 잔차 벡터 r을 구합니다.

r = mdl.Residuals.Raw

데이터형: table

이 속성은 읽기 전용입니다.

평균 제곱 오차(잔차)의 제곱근으로, 숫자형 값으로 지정됩니다.

RMSE = sqrt(MSE),

여기서 RMSE는 평균 제곱 오차의 제곱근이고 MSE는 평균 제곱 오차입니다.

데이터형: single | double

이 속성은 읽기 전용입니다.

모델에 대한 결정계수 값으로, 다음 두 필드를 가지는 구조체로 지정됩니다.

  • Ordinary — 일반(수정되지 않은) 결정계수

  • Adjusted — 계수 개수에 대해 수정된 결정계수

결정계수 값은 모델로 설명되는 총 제곱합의 비율입니다. 일반 결정계수 값은 SSR 속성 및 SST 속성과 관련이 있습니다.

Rsquared = SSR/SST = 1 – SSE/SST,

여기서 SST는 총 제곱합이고, SSE는 제곱 오차의 합이고, SSR은 제곱의 회귀 합입니다.

자세한 내용은 결정계수(R 제곱) 항목을 참조하십시오.

이러한 값 중 하나를 스칼라로 얻으려면 점 표기법을 사용하여 속성을 참조하십시오. 예를 들어, 다음과 같이 모델 mdl에서 수정된 결정계수 값을 구합니다.

r2 = mdl.Rsquared.Adjusted

데이터형: struct

이 속성은 읽기 전용입니다.

제곱 오차(잔차)의 합으로, 숫자형 값으로 지정됩니다.

피타고라스 정리는 다음을 의미합니다.

SST = SSE + SSR,

여기서 SST는 총 제곱합이고, SSE는 제곱 오차의 합이고, SSR은 제곱의 회귀 합입니다.

데이터형: single | double

이 속성은 읽기 전용입니다.

제곱의 회귀 합으로, 숫자형 값으로 지정됩니다. 제곱의 회귀 합은 평균과 피팅된 값 간의 편차에 대한 제곱합과 같습니다.

피타고라스 정리는 다음을 의미합니다.

SST = SSE + SSR,

여기서 SST는 총 제곱합이고, SSE는 제곱 오차의 합이고, SSR은 제곱의 회귀 합입니다.

데이터형: single | double

이 속성은 읽기 전용입니다.

총 제곱합으로, 숫자형 값으로 지정됩니다. 총 제곱합은 mean(y)와 응답 변수 벡터 y 간의 편차에 대한 제곱합과 같습니다.

피타고라스 정리는 다음을 의미합니다.

SST = SSE + SSR,

여기서 SST는 총 제곱합이고, SSE는 제곱 오차의 합이고, SSR은 제곱의 회귀 합입니다.

데이터형: single | double

피팅 방법

이 속성은 읽기 전용입니다.

로버스트 피팅 정보로, 다음 표에 설명된 필드를 가지는 구조체로 지정됩니다.

필드설명
WgtFun로버스트 가중치 함수. 'bisquare'를 예로 들 수 있습니다('RobustOpts' 참조).
Tune조율 상수. WgtFun'ols'이거나 WgtFun이 디폴트 조율 상수가 1인 사용자 지정 가중치 함수에 대한 함수 핸들인 경우 이 필드는 비어 있습니다([]).
Weights로버스트 피팅의 최종 반복에 사용되는 가중치로 구성된 벡터. CompactLinearModel 객체의 경우 이 필드는 비어 있습니다.

로버스트 회귀를 사용하여 모델을 생성하지 않으면 이 구조체는 비어 있습니다.

데이터형: struct

이 속성은 읽기 전용입니다.

단계적 피팅 정보로, 다음 표에 설명된 필드를 갖는 구조체로 지정됩니다.

필드설명
Start시작 모델을 나타내는 식
Lower하한 모델을 나타내는 식. Lower의 항들은 모델에서 유지되어야 합니다.
Upper상한 모델을 나타내는 식. 모델은 Upper보다 더 많은 항을 포함할 수 없습니다.
Criterion단계별 알고리즘에 사용되는 기준(예: 'sse')
PEnterCriterion이 항을 추가할 분계점
PRemoveCriterion이 항을 제거할 분계점
History피팅에서 수행하는 단계를 나타내는 테이블

History 테이블은 초기 피팅을 포함하여 각 단계에 대해 하나의 행과 다음 표에 설명된 열을 포함합니다.

설명
Action

해당 단계에서 수행되는 동작:

  • 'Start' — 첫 번째 단계

  • 'Add' — 항이 추가됨

  • 'Remove' — 항이 제거됨

TermName
  • Action'Start'이면 TermName은 시작 모델 사양을 지정합니다.

  • Action'Add' 또는 'Remove'이면 TermName은 해당 단계에서 추가되거나 제거되는 항을 지정합니다.

Terms항 행렬의 모델 사양
DF해당 단계 이후의 회귀 자유도
delDF이전 단계에 비해 달라진 회귀 자유도의 변화량(항을 제거하는 단계의 경우 음수임)
Deviance해당 단계에서의 이탈도, 즉 잔차 제곱합(일반화 선형 회귀 모델만 해당)
FStat해당 단계로 이어지는 F-통계량
PValueF-통계량의 p-값

단계적 회귀를 사용하여 모델을 피팅하지 않는 한, 구조체는 비어 있습니다.

데이터형: struct

입력 데이터

이 속성은 읽기 전용입니다.

모델 정보로, LinearFormula 객체로 지정됩니다.

다음과 같이 점 표기법을 사용하여 피팅된 모델 mdl의 수식을 표시합니다.

mdl.Formula

이 속성은 읽기 전용입니다.

피팅 함수가 피팅에 사용하는 관측값 개수로, 양의 정수로 지정됩니다. NumObservations는 원래 테이블, 데이터셋 또는 행렬에 제공된 관측값 개수에서 제외된 행('Exclude' 이름-값 쌍의 인수로 설정됨) 또는 결측값이 있는 행을 뺀 값입니다.

데이터형: double

이 속성은 읽기 전용입니다.

모델을 피팅하는 데 사용되는 예측 변수의 개수로, 양의 정수로 지정됩니다.

데이터형: double

이 속성은 읽기 전용입니다.

입력 데이터에 포함되는 변수의 개수로, 양의 정수로 지정됩니다. NumVariables는 원래 테이블 또는 데이터셋에 포함된 변수의 개수이거나 예측 변수 행렬 및 응답 변수 벡터에 포함된 열의 총 개수입니다.

NumVariables는 예측 변수 또는 응답 변수로 모델을 피팅하는 데 사용되지 않은 변수도 포함합니다.

데이터형: double

이 속성은 읽기 전용입니다.

관측값 정보로, nx4 테이블로 지정됩니다. 여기서 n은 입력 데이터의 행 개수와 같습니다. ObservationInfo는 다음 표에 설명된 열을 포함합니다.

설명
Weights관측값 가중치로, 숫자형 값으로 지정됩니다. 디폴트 값은 1입니다.
Excluded제외된 관측값에 대한 표시자로, 논리값으로 지정됩니다. 'Exclude' 이름-값 쌍의 인수를 사용하여 피팅에서 관측값을 제외한 경우 값은 true입니다.
Missing결측 관측값에 대한 표시자로, 논리값으로 지정됩니다. 관측값이 결측된 경우 값은 true입니다.
Subset피팅 함수가 관측값을 사용하는지 여부를 나타내는 표시자로, 논리값으로 지정됩니다. 관측값이 제외되지 않거나 결측되지 않은 경우, 즉 피팅 함수가 해당 관측값을 사용하는 경우 값은 true입니다.

이러한 열 중 하나를 벡터로 얻으려면 점 표기법을 사용하여 속성의 요소를 참조하십시오. 예를 들어, 다음과 같이 모델 mdl의 가중 벡터 w를 구합니다.

w = mdl.ObservationInfo.Weights

데이터형: table

이 속성은 읽기 전용입니다.

관측값 이름으로, 피팅에 사용되는 관측값의 이름을 포함하는 문자형 벡터로 구성된 셀형 배열로 지정됩니다.

  • 피팅이 관측값 이름을 포함하는 테이블 또는 데이터셋을 기반으로 하는 경우 ObservationNames는 이 이름을 사용합니다.

  • 그렇지 않은 경우 ObservationNames는 빈 셀형 배열입니다.

데이터형: cell

이 속성은 읽기 전용입니다.

모델을 피팅하는 데 사용되는 예측 변수의 이름으로, 문자형 벡터로 구성된 셀형 배열로 지정됩니다.

데이터형: cell

이 속성은 읽기 전용입니다.

응답 변수 이름으로, 문자형 벡터로 지정됩니다.

데이터형: char

이 속성은 읽기 전용입니다.

Variables에 포함된 변수에 대한 정보로, 각 변수에 대해 하나의 행과 다음 표에 설명된 열을 갖는 테이블로 지정됩니다.

설명
Class변수 클래스로, 문자형 벡터로 구성된 셀형 배열로 지정됩니다(예: 'double''categorical').
Range

변수 범위로, 벡터로 구성된 셀형 배열로 지정됩니다.

  • 연속형 변수 — 최솟값과 최댓값으로 구성된, 요소를 2개 가진 벡터 [min,max]

  • 범주형 변수 — 고유한 변수 값으로 구성된 벡터

InModel피팅된 모델에 어느 변수가 포함되었는지에 대한 표시자로, 논리형 벡터로 지정됩니다. 모델이 변수를 포함하는 경우 값은 true입니다.
IsCategorical범주형 변수에 대한 표시자로, 논리형 벡터로 지정됩니다. 변수가 범주형인 경우 값은 true입니다.

VariableInfo는 예측 변수 또는 응답 변수로 모델을 피팅하는 데 사용되지 않은 변수도 포함합니다.

데이터형: table

이 속성은 읽기 전용입니다.

변수의 이름으로, 문자형 벡터로 구성된 셀형 배열로 지정됩니다.

  • 피팅이 테이블 또는 데이터셋을 기반으로 하는 경우 이 속성은 해당 테이블 또는 데이터셋의 변수의 이름을 제공합니다.

  • 피팅이 예측 변수 행렬과 응답 변수 벡터를 기반으로 하는 경우 VariableNames는 피팅 방법의 'VarNames' 이름-값 쌍의 인수로 지정된 값을 포함합니다. 'VarNames'의 디폴트 값은 {'x1','x2',...,'xn','y'}입니다.

VariableNames는 예측 변수 또는 응답 변수로 모델을 피팅하는 데 사용되지 않은 변수도 포함합니다.

데이터형: cell

이 속성은 읽기 전용입니다.

입력 데이터로, 테이블로 지정됩니다. Variables는 예측 변수 값과 응답 변수 값을 모두 포함합니다. 피팅이 테이블 또는 dataset형 배열을 기반으로 하는 경우 Variables는 해당 테이블 또는 dataset형 배열의 모든 데이터를 포함합니다. 그렇지 않은 경우 Variables는 입력 데이터 행렬 X와 응답 변수 벡터 y에서 생성되는 테이블입니다.

Variables는 예측 변수 또는 응답 변수로 모델을 피팅하는 데 사용되지 않은 변수도 포함합니다.

데이터형: table

객체 함수

모두 확장

compactCompact linear regression model
addTermsAdd terms to linear regression model
removeTermsRemove terms from linear regression model
stepImprove linear regression model by adding or removing terms
fevalPredict responses of linear regression model using one input for each predictor
predictPredict responses of linear regression model
randomSimulate responses with random noise for linear regression model
anovaAnalysis of variance for linear regression model
coefCIConfidence intervals of coefficient estimates of linear regression model
coefTestLinear hypothesis test on linear regression model coefficients
dwtestDurbin-Watson test with linear regression model object
plotScatter plot or added variable plot of linear regression model
plotAddedAdded variable plot of linear regression model
plotAdjustedResponseAdjusted response plot of linear regression model
plotDiagnosticsPlot observation diagnostics of linear regression model
plotEffectsPlot main effects of predictors in linear regression model
plotInteractionPlot interaction effects of two predictors in linear regression model
plotPartialDependenceCreate partial dependence plot (PDP) and individual conditional expectation (ICE) plots
plotResidualsPlot residuals of linear regression model
plotSlicePlot of slices through fitted linear regression surface

예제

모두 축소

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

행렬 입력 데이터 세트인 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-값을 포함합니다.

시멘트 조성물이 해당 시멘트의 경화 열에 미치는 영향을 측정하는 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 항목을 참조하십시오.

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

load hald

이 데이터 세트는 변수 ingredientsheat를 포함합니다. 행렬 ingredients는 시멘트에 존재하는 네 가지 화학 성분의 조성 비율을 포함합니다. 벡터 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은 순방향 선택을 사용하며, 대응되는 p-값이 PEnter 값 0.06보다 작기 때문에 x4, x1, x2 항을 이 순서대로 추가합니다. stepwiselm은 그런 다음 역방향 제거를 사용하며, x2가 모델에 포함되면 x4p-값이 PRemove의 디폴트 값인 0.1보다 커지기 때문에 모델에서 x4를 제거합니다.

세부 정보

모두 확장

대체 기능

  • 고차원 데이터 세트에 대한 계산 시간을 단축시키려면 fitrlinear 함수를 사용하여 선형 회귀 모델을 피팅하십시오.

  • 회귀를 정규화하려면 fitrlinear, lasso, ridge 또는 plsregress를 사용하십시오.

    • fitrlinear는 고차원 데이터 세트에 대한 회귀를 라소 또는 능형 회귀를 사용하여 정규화합니다.

    • lasso는 라소 또는 신축망을 사용하여 선형 회귀에서 중복된 예측 변수를 제거합니다.

    • ridge는 상관관계를 갖는 항이 있는 회귀를 능형 회귀를 사용하여 정규화합니다.

    • plsregress는 상관관계를 갖는 항이 있는 회귀를 부분 최소제곱을 사용하여 정규화합니다.

확장 기능

R2012a에 개발됨