숫자 / 범주 값을 모두 사용하여 R에서 순서 형 로지스틱 회귀 분석을 어떻게 실행합니까?


17

기본 데이터 : '1,'[good] '2,'[middle] 또는 '3'[bad]와 같이 평가 대상으로 ~ 1,000 명을 보유하고 있습니다. 이는 미래에 사람들에게 예측하려는 값입니다. . 또한 성별 (범주 : M / F), 연령 (숫자 : 17-80) 및 인종 (범주 : 흑인 / 백인 / 라티노)과 같은 인구 통계 정보가 있습니다.

주로 네 가지 질문이 있습니다.

  1. 처음에 다중 회귀 분석으로 위에서 설명한 데이터 세트를 실행하려고했습니다. 그러나 최근에 내 부양 가족이 연속 변수가 아닌 순서 요소이기 때문에 이런 식으로 서수 로지스틱 회귀를 사용해야한다는 것을 알았습니다. 나는 처음에와 같은 것을 사용하고 있었고 mod <- lm(assessment ~ age + gender + race, data = dataset), 아무도 올바른 방향으로 나를 가리킬 수 있습니까?

  2. 거기에서 내가 편안하다고 생각하는 계수를 얻는다고 가정하면 x1, x2 등의 숫자 값만 연결하는 방법을 이해합니다. 그러나 인종, 예를 들어 여러 응답이있는 위치를 처리하는 방법은 무엇입니까? / 라틴계? 따라서 백인 계수가 0.289라고 말하고 내가 예측하려고하는 사람이 백인이라고하면 수치가 아니기 때문에 어떻게 다시 연결합니까?

  3. 또한 인종, 성별 등의 임의의 값이 누락되었습니다.이 값이 왜곡되지 않도록 추가 작업을 수행해야합니까? (내 데이터 세트가 R-Studio에로드 될 때, 누락 된 데이터가로로드 될 NA때 R은 다음과 같이 (162 observations deleted due to missingness)말하지만 공백으로로드되면 아무것도하지 않습니다.)

  4. 이 모든 것이 잘 작동한다고 가정하고 성별, 연령 및 인종을 예측하려는 새로운 데이터가 있다고 가정하면 R에서 새로운 계수가있는 공식을 통해 모든 것을 실행할 수있는 더 쉬운 방법이 있습니까? 수동으로하는 것이 아니라? (이 질문이 여기에 적합하지 않으면 R 포럼으로 다시 가져갈 수 있습니다.)

답변:


16

올바른 방향으로 안내 할 수있는 작은 정보가 있습니다.

데이터와 관련하여 여러 범주의 응답이 있으며 범주 형인 응답을 모델링하려고 할 때 GLM (Generalized Linear Model) 유형을 시도하고 사용할 수 있습니다. 귀하의 경우 귀하의 답변과 관련하여 고려해야 할 추가 정보가 있으며 귀하의 답변 수준에 자연스러운 순서가 좋음> 중간> 나쁨이 있다는 것입니다. 구매할 가능성이 높으며 (빨강 / 파랑 / 녹색),이 값들은 자연 순서가 없습니다. 순서가 지정된 반응으로이 유형의 모델을 수행 할 때 비례 승산 모델을 사용하는 것이 좋습니다.

http://en.wikipedia.org/wiki/Ordered_logit

나는 그것을 직접 사용하지는 않았지만 polr()MASS 패키지 의 기능은 다소 유용 할 수 있습니다. 또는 lrm()rms 패키지 의 기능을 사용하여 비슷한 유형의 분석을 수행했으며 매우 유용했습니다. 이 패키지를로드하면 ?polr또는 ?lrm기능 정보 만 사용 하십시오.

질문에 대한 충분한 배경 ​​지식 :

  1. 이것은 위에서 다뤄야하고, 패키지 / 함수를 확인하고 순서 형 로지스틱 회귀 및 비례 승산 모델을 읽어보십시오.

  2. 범주 형 (레이스 / 섹스 / 헤어 컬러) 인 공변량이있을 때마다이를 적절하게 모델링하기 위해 R 코딩에서 '인자'로 취급하려고합니다. 요인이 무엇인지, 어떻게 취급되는지를 아는 것이 중요하지만 본질적으로 각 범주를 별도의 수준으로 취급 한 다음 적절한 방식으로 모델링합니다. 모델의 요소를 읽으면 진행중인 작업을 확인할 수 있습니다. 범주 형 변수를 요인으로 취급하는 것은 glm 모델 또는 비례 승산 모델에 고유 한 것이 아니라 일반적으로 모든 모델이 범주 형 변수를 처리하는 방식입니다. http://www.stat.berkeley.edu/classes/s133/factors.html

  3. 결 측값은 때때로 처리하기가 번거로울 수 있지만 상당히 기본적인 분석을 수행하는 경우 결 측값이 포함 된 데이터 행을 제거하는 것이 안전 할 수 있습니다 (항상 그렇지는 않지만 현재 경험 수준을 기준으로합니다) 결 측값을 처리하는시기와 방법에 대해서는 신경 쓰지 않아도됩니다. 실제로 이것은 R이하는 것과 거의 같습니다. 모형화에 사용중인 데이터가있는 경우 응답에 대한 행에 정보가 누락되었거나 모형 R의 공변량이이 데이터를 제외시키는 것입니다 (이것은 경고입니다). 결 측으로 인해 많은 양의 데이터를 제외하는 경우 결과가 편향 될 수 있으며 결 측값이 너무 많은 이유에 대한 추가 정보를 얻는 것이 좋습니다. 10,000 행의 데이터에서 162 개의 관측치가 누락되어 너무 땀이 나지 않습니다. 좀 더 구체적으로 관심이 있다면 누락 된 데이터를 처리하는 방법을 Google에 올릴 수 있습니다.

  4. 거의 모든 R 모델 객체 ( lm,glm , lrm, ...) 관련된 것입니다 predict()당신이에 대한 결과를 예측하고자하는 다른 데이터 집합 추가로 현재의 모델링 데이터 세트에 대한 예측 값을 계산 할 수 있도록 기능을. 검색 ?predict.glm하거나 ?predict.lm시도하여 작업하려는 모델 유형에 대한 추가 정보를 얻으십시오. 이것은 사람들이 모델과 관련이 있기를 원하는 매우 일반적인 일이므로 비교적 간단하게 수행 해야하는 내장 함수와 메소드가 있습니다.

행운을 빌어 요!


2
  1. 예, 주문 된 로짓 또는 프로 빗이 시작되는 곳입니다. 튜토리얼은 다음과 같습니다 은 R을 사용하는 정렬 된 로짓에 입니다. 다른 CV 질문은 'logit', 'probit'및 'ordinal'태그를 사용해보십시오.

  2. 범주 형 독립 변수를 다루는 표준 접근법 케이 값은 다음과 같이 더미 코드화하는 것입니다. 케이1이진 값. 이것은 더 충분히 설명한다 여기에서 , 그러나 짧은 : 한 종류의 효과 절편에 포섭하며, 계수 나머지 카테고리에 장착된다. 귀하의 예 caucasian에는 백인 응답자에 대해 1로 코딩 되는 더미 변수 가 있고 그렇지 않으면 0입니다.

  3. 누락 된 데이터를 처리하는 것은 당면한 문제에 달려 있으며, 누락 된 데이터를 처리하는 방법에 편차가 생길 수 있습니다. 이 은 누락 된 데이터를 생성 할 수있는 네 가지 메커니즘을 훌륭하게 설명합니다. (특히 섹션 25.1, 530 페이지)

  4. 많은 모델링 패키지는 일종의 predict기능을 가지고 있으며 , 실제로 위에 링크 된 첫 번째 튜토리얼에는 데모가 포함되어 있습니다.


정말 고마워! # 2에 대한 빠른 후속 조치 : 그것은 기본 가정이었습니다.하지만 코드에는 두 가지 이상의 변수가 있습니까? 예를 들어 백인, 흑인, 라틴계.
Ryan

매우 환영합니다! 이 예에서는 하나의 범주를 선택 latino하여 다른 두 가지에 대한 가로 채기, 말 및 인형에 포함시킬 수 있습니다. caucasian더미 의 1 값 은 black더미 변수 와 유사한 백인 응답자를 나타냅니다 . 둘 다 0 값은 라틴계 응답자를 나타냅니다. 말이 되나요?
Sean Easter

따라서 여러 응답 ( 'black', 'caucasian'및 'latino')이있는 하나의 열에서 1과 0이있는 하나의 'black'열, 1과 0이있는 'caucasian'열과 하나의 데이터 열로 변경해야합니다. 1과 0을 가진 'latino'열?
Ryan

그것은 잘 작동하는 한 가지 접근법입니다. 두 열을 사용하는 것과의 유일한 차이점은 절편을 해석하는 방법입니다. 이 작업을 수동으로 수행 할 수 있지만 R의 요소가이를 처리 할 수 ​​있다고 생각합니다. 보십시오 비슷한 예제 요소를 사용을 통해 - 그것은 산책을. 건배!
Sean Easter

1
튜토리얼 링크가 끊어졌습니다. 누군가 고칠 수 있다면 좋을 것입니다!
Dan Hicks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.