model.matrix의 절편 열이 첫 번째 요소를 대체하는 이유는 무엇입니까?


9

요인 열을 더미 변수로 변환하려고합니다.

str(cards$pointsBin)
# Factor w/ 5 levels ".lte100",".lte150",..: 3 2 3 1 4 4 2 2 4 4 ...

labels <- model.matrix(~ pointsBin, data=cards)

head(labels)

#     (Intercept) pointsBin.lte150 pointsBin.lte200 pointsBin.lte250 pointsBin.lte300
# 741           1                0                0                0                0
# 407           1                1                0                0                0
# 676           1                0                0                1                0
# 697           1                1                0                0                0
# 422           1                0                1                0                0
# 300           1                0                1                0                0

내 요인 ( ".lte100") 의 첫 번째 값에 대한 열이 없으므로 첫 번째 행을 분류해야합니다. 이 데이터를 어떻게 다시 받습니까? 그리고 1로 보이는 Intercept 열은 무엇을 의미합니까?


3
"K"더미 변수가있는 경우 결과 모델에는 a) 절편 항 (1 열)과 b. "K-1"추가 열이 있습니다. 그 이유는 결과 행렬의 열이 선형 적으로 독립적이지 않기 때문에 OLS 를 수행 할 수 없기 때문 입니다.
Steve S

2
왜 '의미가 없는가'? 동일한 방식으로 동일한 모델이며 다른 방식으로 매개 변수화됩니다.
Wolfgang

2
@digitgopher : 회귀 분석을 실행하고 과 같은 모델을 사용하면 기술적으로 다음과 같은 모델로 끝납니다. 이 : 새로운 용어, 항상은의 "1"(따라서 열 같 그들). 규칙적인 회귀 분석을 실행할 때이 열을 제거하려면 사실상 모든 단일 모델을 원점을 강요하기 때문에 편향된 모델로 끝납니다 . y^=β0+β1x1y^=β0x0+β1x1x0
Steve S

2
@SteveS : 사실 R은 매우 친숙하므로 - 1(이 질문에서와 같이) 단일 범주 형 예측 변수가 요인으로 표시 될 때 절편을 제거하려고 하면 실제로 의미하지 않는다고 가정하고 합을 사용하도록 전환하십시오. 0으로 코딩; 물론 다른 매개 변수입니다. 당신이 나에게 요청하면 너무 친절합니다.
Scortchi-Monica Monica 복원

2
@SteveS : 감사합니다. 확인해야합니다 : 셀 평균 코딩으로 전환됩니다. 그것은 당신이 기대할 수있는 일을하지 않습니다. 이것은 당신이 아주 올바르게 경고 한 원산지 강제 모델에 적합합니다 (열이 숫자 유형 일 때 그렇게 할 것입니다).
Scortchi-Monica Monica 복원

답변:


10

다음을 고려하세요:

require(mlbench)

data(HouseVotes84, package = "mlbench")
head(HouseVotes84)

labels <- model.matrix(~ V1, data=HouseVotes84)
head(labels)

labels1 <- model.matrix(~ V1+1, data=HouseVotes84)
head(labels1)

labels0 <- model.matrix(~ V1+0, data=HouseVotes84)
head(labels0)

labels_1 <- model.matrix(~ V1-1, data=HouseVotes84)
head(labels_1)

처음 두 명령은 동일합니다. 마지막 두 명령은 절편을 생성하지 않도록 지정하고 생성 된 두 개의 더미 변수를 유지합니다.


1
감사합니다-이것은 내가 원하는 코드를 설명합니다. 그러나 왜 그런지 이해하지 못합니다.
digitgopher

2
@digitgopher : 참조 수준 코딩 및 기타 코딩 체계에 대한 설명은 ats.ucla.edu/stat/r/library/contrast_coding.htm 을 참조하십시오 .
Scortchi-Monica Monica 복원
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.