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

mnrfit

다항 로지스틱 회귀

설명

예제

B = mnrfit(X,Y)는 예측 변수 X와 이에 대한 명목형 응답 변수 Y가 주어졌을 때, 다항 로지스틱 회귀에 대한 계수 추정값으로 구성된 행렬 B를 반환합니다.

예제

B = mnrfit(X,Y,Name,Value)는 다항 모델 피팅에 대한 계수 추정값으로 구성된 행렬 B를 반환합니다. 하나 이상의 Name,Value 쌍 인수를 추가 옵션으로 지정하여 사용합니다.

예를 들어, 명목형, 순서형 또는 계층적 모델을 피팅하거나 연결 함수를 변경할 수 있습니다.

예제

[B,dev,stats] = mnrfit(___)는 피팅에 대한 이탈도 dev와 위에 열거된 입력 인수에 대한 구조체 stats도 반환합니다. stats는 자유도, 계수 추정값에 대한 표준 오차, 잔차와 같은 모델 통계량을 포함합니다.

예제

모두 축소

명목형 결과에 대한 다항 회귀를 피팅하고 결과를 해석합니다.

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

load fisheriris

열 벡터 species는 세 가지 붓꽃 종인 setosa, versicolor, virginica로 구성됩니다. double형 행렬 meas는 꽃에 대한 네 가지 측정값 유형인 꽃받침 길이, 꽃받침 너비, 꽃잎 길이, 꽃잎 너비(단위: 센티미터)를 포함합니다.

categorical형 배열을 사용하여 명목형 응답 변수를 정의합니다.

sp = categorical(species);

측정값을 사용하여 종을 예측하기 위한 다항 회귀 모델을 피팅합니다.

[B,dev,stats] = mnrfit(meas,sp);
B
B = 5×2
103 ×

    1.7141    0.0426
    0.5727    0.0025
   -0.4837    0.0067
   -0.4380   -0.0094
   -2.3483   -0.0183

이는 4개의 모든 예측 변수, 즉 meas의 각 범주에 대해 개별적인 기울기를 갖는 응답 변수 범주의 상대 위험에 대한 명목형 모델입니다. B의 첫 번째 행은 기준 범주 veriginica와 비교한 처음 두 개 응답 변수 범주 virginica와 setosa의 상대 위험에 대한 절편 항을 포함합니다. 마지막 네 개 행은 처음 두 개 범주에 대한 모델의 기울기를 포함합니다. mnrfit은 기준 범주로 세 번째 범주를 받습니다.

붓꽃이 종 3(virginica)에 비해 종 2(versicolor)에 속할 상대 위험은 두 확률(종 2에 속할 확률과 종 3에 속할 확률)의 비율입니다. 상대 위험에 대한 모델은 다음과 같습니다.

ln(πversicolorπvirginica)=42.6+2.5X1+6.7X2-9.4X3-18.3X4.

계수는 예측 변수가 상대 위험에 미치는 영향과 기준 범주에 비해 특정 범주에 속할 로그 오즈를 모두 나타냅니다. 예를 들어, 추정된 계수 2.5는 종 3(virginica)에 비해 종 2(versicolor)에 속할 상대 위험이 첫 번째 측정값 X1의 단위 증가마다 exp(2.5)배 증가한다는 것을 나타냅니다(다른 모든 측정값은 동일하다고 가정함). virginica에 비해 versicolor에 속할 상대 로그 오즈는 X1의 단위 증가마다 2.5배 증가합니다(다른 모든 측정값은 동일하다고 가정함).

계수가 무한대 또는 음수 무한대 방향으로 수렴하는 경우, 추정된 계수는 운영 체제에 따라 약간 달라질 수 있습니다.

모델 계수의 통계적 유의성을 검사합니다.

stats.p
ans = 5×2

         0    0.0000
         0    0.0281
         0    0.0000
         0    0.0000
         0    0.0000

작은 p-값은 모든 측정값이 virginica에 비해 setosa(종 3에 비해 종 1)에 속하고 virginica에 비해 versicolor(종 3에 비해 종 2)에 속할 상대 위험에 대한 유의성이 있음을 나타냅니다.

계수 추정값에 대한 표준 오차를 요청합니다.

stats.se
ans = 5×2

   12.4038    5.2719
    3.5783    1.1228
    3.1760    1.4789
    3.5403    1.2934
    7.1203    2.0967

계수에 대한 95% 신뢰한계를 계산합니다.

LL = stats.beta - 1.96.*stats.se;
UL = stats.beta + 1.96.*stats.se;

virginica에 비해 setosa에 속할 상대 위험에 대한 모델 계수(B에서 계수의 첫 번째 열)의 신뢰구간을 표시합니다.

[LL(:,1) UL(:,1)]
ans = 5×2
103 ×

    1.6898    1.7385
    0.5657    0.5797
   -0.4899   -0.4775
   -0.4449   -0.4310
   -2.3623   -2.3344

virginica에 비해 versicolor에 속할 상대 위험에 대한 모델 계수(B에서 계수의 두 번째 열)의 신뢰구간을 구합니다.

[LL(:,2) UL(:,2)]
ans = 5×2

   32.3049   52.9707
    0.2645    4.6660
    3.7823    9.5795
  -11.9644   -6.8944
  -22.3957  -14.1766

범주 간에 자연 정렬(Natural Ordering)을 사용하여 categorical형 응답 변수에 대한 다항 회귀 모델을 피팅합니다.

표본 데이터를 불러오고 예측 변수를 정의합니다.

load carbig
X = [Acceleration Displacement Horsepower Weight];

예측 변수는 자동차의 가속도, 엔진 배기량, 마력, 중량입니다. 응답 변수는 갤런당 마일 주행거리(mpg)입니다.

범위 9-19에 속하는 응답 변수 값은 1로, 20-29에 속하는 값은 2로, 30-39에 속하는 값은 3으로, 40-48에 속하는 값은 4로 레이블을 지정하여 MPG를 9mpg에서 48mpg 사이의 네 개 수준으로 분류하는 순서형 응답 변수를 생성합니다.

miles = ordinal(MPG,{'1','2','3','4'},[],[9,19,29,39,48]);

응답 변수 miles에 대한 순서형 응답 변수 모델을 피팅합니다.

[B,dev,stats] = mnrfit(X,miles,'model','ordinal');
B
B = 7×1

  -16.6895
  -11.7208
   -8.0606
    0.1048
    0.0103
    0.0645
    0.0017

B의 처음 세 개 요소는 모델에 대한 절편 항이고, B의 마지막 네 개 요소는 모든 범주에서 공통된다고 간주되는 공변량의 계수입니다. 이 모델은 비례 오즈 모델(Proportional Odds Model)이라고도 하는 병렬 회귀에 대응됩니다. 범주 간에 절편은 다르지만 기울기가 같습니다. 순서형 모델의 디폴트 값인 'interactions','off' 이름-값 쌍의 인수를 사용하여 이를 지정할 수 있습니다.

[B(1:3)'; repmat(B(4:end),1,3)]
ans = 5×3

  -16.6895  -11.7208   -8.0606
    0.1048    0.1048    0.1048
    0.0103    0.0103    0.0103
    0.0645    0.0645    0.0645
    0.0017    0.0017    0.0017

모델의 연결 함수는 로짓('link','logit')이며, 이는 순서형 모델의 디폴트 값입니다. 계수는 자동차의 주행 거리(mpg)가 특정 값보다 큰 경우에 비해 해당 값보다 작거나 같을 상대 위험 또는 로그 오즈를 나타냅니다.

이 예제에서의 비례 오즈 모델은 다음과 같습니다.

ln(P(mpg19)P(mpg>19))=-16.6895+0.1048XA+0.0103XD+0.0645XH+0.0017XWln(P(mpg29)P(mpg>29))=-11.7208+0.1048XA+0.0103XD+0.0645XH+0.0017XWln(P(mpg39)P(mpg>39))=-8.0606+0.1048XA+0.0103XD+0.0645XH+0.0017XW

예를 들어, 계수 추정값 0.1048은 가속도의 단위 변화가 자동차의 주행 거리(mpg)가 19보다 큰 경우에 비해 19보다 작거나 같거나, 29보다 큰 경우에 비해 29보다 작거나 같거나, 39보다 큰 경우에 비해 39보다 작거나 같을 오즈에 exp(0.01048)배만큼 영향을 미친다는 것을 나타냅니다(가속도를 제외한 모든 항목이 동일하다고 가정할 경우).

계수의 유의성을 평가합니다.

stats.p
ans = 7×1

    0.0000
    0.0000
    0.0000
    0.1899
    0.0350
    0.0000
    0.0118

자동차의 엔진 배기량, 마력, 중량 각각에 대한 p-값 0.035, 0.0000, 0.0118은 이러한 인자가 자동차의 주행 거리(mpg)가 특정 값보다 큰 경우에 비해 해당 값보다 작거나 같을 오즈에 대한 유의성이 있음을 나타냅니다.

계층적 다항 회귀 모델을 피팅합니다.

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

load(fullfile(matlabroot,'examples','stats','smoking.mat'));

데이터 세트 smoking은 성별, 연령, 체중, 수축기 혈압, 확장기 혈압 등 5개 변수를 포함합니다. 성별은 이진 변수로, 1은 여성 환자를 나타내고 0은 남성 환자를 나타냅니다.

응답 변수를 정의합니다.

Y = categorical(smoking.Smoker);

Smoker의 데이터는 네 가지 범주를 가집니다.

  • 0: 비흡연자, 하루에 담배를 전혀 피지 않음

  • 1: 흡연자, 하루에 담배를 1~5개비 피움

  • 2: 흡연자, 하루에 담배를 6~10개비 피움

  • 3: 흡연자, 하루에 담배를 11개비 이상 피움

예측 변수를 정의합니다.

X = [smoking.Sex smoking.Age smoking.Weight...
    smoking.SystolicBP smoking.DiastolicBP];

계층적 다항 모델을 피팅합니다.

[B,dev,stats] = mnrfit(X,Y,'model','hierarchical');
B
B = 6×3

   43.8148    5.9571   44.0712
    1.8709   -0.0230    0.0662
    0.0188    0.0625    0.1335
    0.0046   -0.0072   -0.0130
   -0.2170    0.0416   -0.0324
   -0.2273   -0.1449   -0.4824

B의 첫 번째 열은 흡연자에 비해 비흡연자일 상대 위험에 대한 모델의 절편 및 계수 추정값을 포함합니다. 두 번째 열은 흡연자라고 가정할 경우 하루에 담배를 5개비 넘게 필 경우에 비해 하루에 담배를 1~5개비 필 로그 오즈를 모델링하기 위한 모수 추정값을 포함합니다. 마지막으로, 세 번째 열은 하루에 담배를 5개비 넘게 피는 흡연자라고 가정할 경우 하루에 담배를 10개비 넘게 필 경우에 비해 하루에 담배를 6~10개비 필 로그 오즈를 모델링하기 위한 모수 추정값을 포함합니다.

계수는 범주마다 다릅니다. 'interactions','on' 이름-값 쌍의 인수(계층적 모델의 디폴트 값)를 사용하여 이를 지정할 수 있습니다. 따라서, 이 예제의 모델은 다음과 같습니다.

ln(P(y=0)P(y>0))=43.8148+1.8709XS+0.0188XA+0.0046XW-0.2170XSBP-0.2273XDBP

ln(P(1y5)P(y>5))=5.9571-0.0230XS+0.0625XA-0.0072XW+0.0416XSBP-0.1449XDBP

ln(P(6y10)P(y>10))=44.0712+0.0662XS+0.1335XA-0.0130XW-0.0324XSBP-0.4824XDBP

예를 들어, 계수 추정값 1.8709는 성별을 제외한 모든 항목이 일정하게 유지된다고 가정할 경우 성별이 여성에서 남성으로 바뀌면 비흡연자에 비해 흡연자일 가능성이 exp(1.8709) = 6.49배만큼 증가한다는 것을 나타냅니다.

항에 대한 통계적 유의성을 평가합니다.

stats.p
ans = 6×3

    0.0000    0.5363    0.2149
    0.3549    0.9912    0.9835
    0.6850    0.2676    0.2313
    0.9032    0.8523    0.8514
    0.0009    0.5187    0.8165
    0.0004    0.0483    0.0545

성별, 연령 또는 체중이 어떠한 수준에서도 유의하지 않은 것으로 보입니다. p-값 0.0009 및 0.0004는 두 유형의 혈압이 모두 비흡연자에 비해 흡연자일 상대 위험에 대해 유의성이 있다는 것을 나타냅니다. p-값 0.0483은 수축기 혈압만 하루에 담배를 5개비 넘게 필 경우에 비해 하루에 담배를 0~5개비 필 오즈에 대해 유의성이 있다는 것을 보여줍니다. 이와 유사하게, p-값 0.0545는 수축기 혈압이 하루에 담배를 10개비 넘게 필 경우에 비해 하루에 담배를 6~10개비 필 오즈에 대해 유의성이 있다는 것을 보여줍니다.

유의하지 않은 요인이 서로 상관관계가 있는지 여부를 확인합니다. 성별을 기준으로 그룹화하여 체중에 대한 연령을 나타내는 산점도 플롯을 그립니다.

figure()
gscatter(smoking.Age,smoking.Weight,smoking.Sex)
legend('Male','Female')
xlabel('Age')
ylabel('Weight')

개인의 체중 범위가 성별에 따라 다른 것으로 보입니다. 연령은 성별 또는 체중과 뚜렷한 상관관계가 있는 것처럼 보이지 않습니다. 연령은 유의하지 않으며 체중은 성별과 상관관계가 있는 것처럼 보이므로 연령과 체중을 모두 제거하고 모델을 재생성할 수 있습니다.

모델에서 연결과 체중을 제거하고 성별, 확장기 혈압, 수축기 혈압을 예측 변수로 사용하여 계층적 모델을 피팅합니다.

X = double([smoking.Sex smoking.SystolicBP...
smoking.DiastolicBP]);
[B,dev,stats] = mnrfit(X,Y,'model','hierarchical');
B
B = 4×3

   44.8456    5.3230   25.0248
    1.6045    0.2330    0.4982
   -0.2161    0.0497    0.0179
   -0.2222   -0.1358   -0.3092

여기서, 계수 추정값 1.6045는 흡연자에 비해 비흡연자일 가능성이 성별이 남성에서 여성으로 바뀌면 exp(1.6045) = 4.97배만큼 증가한다는 것을 나타냅니다. 확장기 혈압의 단위 증가는 흡연자에 비해 비흡연자일 가능성이 exp(–.2161) = 0.8056만큼 감소한다는 것을 나타냅니다. 마찬가지로, 수축기 혈압의 단위 증가는 흡연자에 비해 비흡연자일 상대 비율이 exp(–.2222) = 0.8007만큼 감소한다는 것을 나타냅니다.

항에 대한 통계적 유의성을 평가합니다.

stats.p
ans = 4×3

    0.0000    0.4715    0.2325
    0.0210    0.7488    0.6362
    0.0010    0.4107    0.8899
    0.0003    0.0483    0.0718

p-값 0.0210, 0.0010, 0.0003은 성별 항과 두 유형 모두의 혈압 항이 모델의 다른 항을 가정할 때 흡연자에 비해 비흡연자일 상대 위험에 대한 유의성이 있음을 나타냅니다. p-값 0.0483을 기준으로, 해당 대상이 흡연자라고 가정할 경우 확장기 혈압은 이 사람이 하루에 담배를 5개비 넘게 필 경우에 비해 하루에 담배를 1~5개비 필 상대 위험에 대해 유의성이 있는 것으로 보입니다. 세 번째 열의 p-값 중에 0.05보다 작은 값이 없으므로 해당 대상이 하루에 담배를 5개비 넘게 흡연한다고 가정할 경우 하루에 10개비 넘게 필 경우에 비해 하루에 6~10개비 필 상대 위험에 대해 어떠한 변수도 통계적으로 유의성이 없다고 말할 수 있습니다.

입력 인수

모두 축소

예측 변수에 대한 관측값으로, nxp 행렬로 지정됩니다. X는 p개 예측 변수에 대한 n개 관측값을 포함합니다.

참고

mnrfit는 모든 모델에 상수항(절편)을 자동으로 포함시킵니다. X에는 1로 구성된 열을 포함시키지 마십시오.

데이터형: single | double

응답 변수 값으로, 열 벡터 또는 행렬로 지정됩니다. Y는 다음 중 하나일 수 있습니다.

  • nxk 행으로, 여기서 Y(i,j)는 X(i,:)으로 지정된 예측 변수 조합에 대한 다항 범주 j 의 결과 개수입니다. 이 경우, 각 예측 변수 조합에서 특정 개수의 관측값이 생성됩니다.

  • 1에서 k 사이의 정수 스칼라로 구성된 nx1 열 벡터로, 각 관측값에 대한 응답 변수의 값을 나타냅니다. 이 경우, 모든 표본 크기는 1입니다.

  • nx1 categorical형 배열로, 각 관측값에 대한 응답 변수의 명목형 값 또는 순서형 값을 나타냅니다. 이 경우, 모든 표본 크기는 1입니다.

이름-값 쌍의 인수

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

예: 'Model','ordinal','Link','probit'는 프로빗 연결 함수를 사용하여 순서형 모델을 지정합니다.

피팅할 모델 유형으로, 'Model'과 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.

'nominal'디폴트 값. 응답 변수 범주가 정렬되지 않습니다.
'ordinal'응답 변수 범주가 자연 정렬(Natural Ordering)됩니다.
'hierarchical'응답 변수 범주가 순차적/중첩적으로 선택됩니다.

예: 'Model','ordinal'

다항 범주와 계수 간의 상호 작용을 나타내는 표시자로, 'Interactions'와 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.

'on'명목형 모델과 계층적 모델에 대한 디폴트 값입니다. 범주 간에 다른 계수를 사용하여 모델을 피팅합니다.
'off'순서형 모델에 대한 디폴트 값입니다. 모든 다항 범주에서 예측 변수에 대한 계수의 공통된 세트를 사용하여 모델을 피팅합니다. 이는 종종 병렬 회귀 또는 비례 오즈 모델(Proportional Odds Model)로 설명됩니다.

모든 경우에, 모델은 범주 간에 서로 다른 절편을 가집니다. 'Interactions' 선택에 따라 출력 배열 B의 차원이 결정됩니다.

예: 'Interactions','off'

산포 모수를 추정하기 위한 표시자로, 'EstDisp'와 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.

'off'디폴트 값. 이론적 산포 값인 1을 사용합니다.
'on'표준 오차의 계산에서 다항 분포에 대한 산포 모수를 추정합니다.

예: 'EstDisp','on'

출력 인수

모두 축소

Y에 포함된 응답 변수의 다항 로지스틱 회귀에 대한 계수 추정값으로, 벡터 또는 행렬로 반환됩니다.

  • 'Interaction''off'이면 B는 k – 1 + p 벡터입니다. B의 처음 k – 1개 행은 k – 1개 다항 범주 각각에 하나씩 절편 항에 대응되고, 나머지 p개 행은 처음 k – 1개 범주 모두에 공통으로 있는 예측 변수 계수에 대응됩니다.

  • 'Interaction''on'이면 B는 (p + 1)x(k – 1) 행렬입니다. B의 각 열은 처음 k – 1개 다항 범주 각각에 하나씩 추정된 절편 항과 예측 변수 계수에 대응됩니다.

mnrfit이 마지막 범주를 기준 범주로 취하므로 k번째 범주에 대한 추정값은 0으로 처리됩니다.

피팅의 이탈도로, 스칼라 값으로 반환됩니다. 이 값은 달성 가능한 최대 로그 가능도와 피팅된 모델에서 얻은 로그 가능도 간 차이의 두 배에 해당합니다. 이는 이탈도 잔차의 합과 일치합니다.

dev=2*injkyij*log(yijπ^ij*mi)=inrdi,

여기서 rdi는 이탈도 잔차입니다. 이탈도 잔차는 stats를 참조하십시오.

모델 통계량으로, 다음 필드를 포함하는 구조체로 반환됩니다.

beta계수 추정값입니다. 이는 B와 동일합니다.
dfe

오차에 대한 자유도

  • 'Interactions''off'이면 자유도는 n*(k – 1) – (k – 1 + p)입니다.

  • 'Interactions''on'이면 자유도는 (n – p + 1)*(k – 1)입니다.

sfit추정된 산포 모수입니다.
s

이론적 또는 추정된 산포 모수입니다.

  • 'Estdisp''off'이면 s는 이론적 산포 모수 1입니다.

  • 'Estdisp''on'이면 s는 추정된 산포 모수 sfit과 같습니다.

estdisp이론적 또는 추정된 산포 모수를 나타내는 표시자입니다.
se계수 추정값 B에 대한 표준 오차입니다.
coeffcorrB에 대해 추정된 상관 행렬입니다.
covbB에 대해 추정된 공분산 행렬입니다.
tB에 대한 t 통계량입니다.
pB에 대한 p-값입니다.
resid

원시 잔차입니다. 관측값에서 피팅값을 뺀 값.

rij=yijπ^ij*mi,{i=1,,nj=1,,k,

여기서 πij는 범주형 확률, 누적 확률 또는 조건부 확률이고 mi는 대응되는 표본 크기입니다.

residp

피어슨(Pearson) 잔차로, 이는 추정된 표준편차로 스케일링한 원시 잔차입니다.

rpij=rijσ^ij=yijπ^ij*miπ^ij*(1π^ij)*mi,{i=1,,nj=1,,k,

여기서 πij는 범주형 확률, 누적 확률 또는 조건부 확률이고 mi는 대응되는 표본 크기입니다.

residd

이탈도 잔차는 다음과 같습니다.

rdi=2*jkyij*log(yijπ^ij*mi),i=1,,n.

여기서 πij는 범주형 확률, 누적 확률 또는 조건부 확률이고 mi는 대응되는 표본 크기입니다.

알고리즘

mnrfitX 또는 Y에서 NaN을 결측값으로 처리하여 무시합니다.

참고 문헌

[1] McCullagh, P., and J. A. Nelder. Generalized Linear Models. New York: Chapman & Hall, 1990.

[2] Long, J. S. Regression Models for Categorical and Limited Dependent Variables. Sage Publications, 1997.

[3] Dobson, A. J., and A. G. Barnett. An Introduction to Generalized Linear Models. Chapman and Hall/CRC. Taylor & Francis Group, 2008.

R2006b에 개발됨