2013-03-27 6 views
2

R에서 중첩 된 로지스틱 회귀 분석을 실행하고 싶지만 온라인에서 찾은 예제는별로 도움이되지 않습니다. 나는 내 문제와 비슷한이 웹 사이트 (Step by step procedure on how to run nested logistic regression in R)에서 예제를 읽었지 만, 결국에는 해결되지 않은 것으로 나타났습니다 (질문자가 오류를보고하고 더 답변을 찾지 못했습니다).중첩 된로 그 회귀 실행 R

그래서 예측 인자 (연속 점수)가 9 개이고 카테고리 의존 변수 (DV)가 1 개 있습니다. DV는 "효과"라고 ​​불리며 "음수 (0)"및 "양수 (1)"의 두 가지 일반 범주로 나눌 수 있습니다. 나는 간단한 바이너리 로짓 회귀 (일반적인 그룹화 방법, 즉, 음수 (0) 및 양수 (1))을 사용하는 방법을 알고 있지만 충분하지는 않다. "양성"은 "육체적 (1)"과 "정신적 (2)"의 두 가지 유형으로 분류 할 수 있습니다. 따라서이 세 가지 범주 (음수 (0), 실제 (1) 및 정신 (2))를 포함하는 중첩 모델을 실행하고 "물리적"및 "정신적"이 "양수"로 중첩 된 특성을 반영합니다. 아마도 R이이 두 모델을 비교할 수 있습니까 (일반 대 세부 사항)? 그래서 두 개의 새로운 컬럼을 만들었습니다. 하나는 "효과 일반"으로, 개별 점수는 "음수 (0)"와 "양수 (1)"입니다. 다른 하나는 세 가지 값 - 음수 (0), 신체적 (1) 및 정신적 (2) -을 포함하는 "효과 상세"라고합니다. 간단한 이진 로짓 회귀 분석을 "효과 일반"만 사용하여 실행했지만 "세부 효과"에 대해 중첩 된 로짓 모델을 실행하는 방법을 모르겠습니다.

내가 검색 한 예제와 다른 자료에서 R 패키지 "mlogit"이 올바르게 보이지만 내 데이터에서 작동하도록 만드는 방법이 고생했습니다. 나는 R-help의 예제를 이해하지 못했고, 이전에 언급했던이 웹 사이트의 예제 (... shape = 'long', alt.var = 'town.list', nests = list (town .list) ...) 나는 매우 혼란 스럽습니다. 데이터 구조가 넓어야한다는 것을 알 수 있습니다. 그러나 "alt.var"와 "둥지"가 무엇인지 모릅니다.

중첩 된 logit 모델 호출의 예제는 mlogit 매뉴얼 19 페이지를 참조하십시오. 그러나 나는 여전히 옵션의 측면에서 내가 원하는 것을 결정할 수 없다. (http://cran.r-project.org/web/packages/mlogit/mlogit.pdf)

누군가가 나에게 세부 단계와 방법을 제공 할 수 있습니까? 나는이 예가 (잘 논의되고 해결된다면) 나와 나에게 많은 도움이 될 것이라고 확신한다!

도움 주셔서 감사합니다.

+0

을 찾을 수 있습니다 un.nest.el=F 경우 un.nest.el=T 인수, 또는 둥지 특정 추정치를 지정하면 결과 모델은 둥지 사이의 IV 추정치를해야합니다. "긍정적 인"상황에서 DV를 2 단계로 다루지는 않습니다 다차원 결과가 있습니다 –

+0

3 가지 결과가있을 수 있습니다. 다음으로 결과가 주문되었는지 결정해야합니다. (또는 그 이하) 심각한 결과를 초래할 수 있습니다. 결과가 정렬되지 않고 다르게 정의 될 필요가 있다면 상황이 더 간단해질 것입니다. 다른 누구도 제공하지 않으면 내일의 어느 경우에 대해서도 코드를 파헤쳐 드릴 수 있습니다. 그때까지. –

+0

고마워요! 결과가 나오지 않아 정신적 육체적 결과가 똑같이 가혹한데, 그들은 단지 다른 범주에 불과합니다. 실제로 다항로 짓 회귀를했지만, 일부 중첩 모델 문헌에서 언급했듯이 다항 모델은 그렇지 않을 수도 있습니다. 형식이 같은 수준에 있지 않을 때 잘 작동하므로 중첩 된 모델이 더 좋은 방법이어야합니다. 다중 모델의 다른 속성을 언급합니다 (아래 참조). – Ferrari

답변

0

나는 mlogit 구조를 이해하는 데 도움을 줄 수 있습니다. mlogit.data() 명령을 사용할 때 shape='wide' 인수와 함께 패널 데이터 세트가있는 경우 choice = yourchoicevariable (및 동일한 개인의 여러 응답이있는 경우 id.var = respondentid)을 지정하십시오. 생성 된 새로운 data.frame은 각 선택 상황 (음수, 육체, 정신)에 대한 행과 함께 긴 형식으로 작성됩니다. 따라서 넓은 데이터 형식으로 된 행만 3 행을 갖게됩니다. MN 선택 변수가 무엇이든 상관없이, 응답자가 선택한 행에 대해 TRUE이있는 논리 값의 열이됩니다.

row.name | choice 
1.negative | TRUE 
1.physical | FALSE 
1.mental | FALSE 
또한

하지 그 실제 요인 수준을 : 행 이름은 이제 사람이 부정의 응답이 있었다 데이터 집합의 첫 번째 행은, 당신이 볼 것인지, 그래서 귀하의 경우 observation#.level(choice variable)의 형식으로해야합니다 각 선택 항목은 index(your.data.frame)으로 볼 수있는 mlogit.data.frame의 alt이라는 색인에 저장되며 관찰 번호 (즉, 와이드 형식 data.frame의 행 번호)는 chid에 저장됩니다. 본질적으로 행이 무엇을 말하고 있는지, 즉 chid.alt입니다. 또한 데이터가 와이드 형식이고 긴 형식 인 경우 alt.var을 지정할 필요가 없습니다. mlogit.data 함수는 방금 설명한대로 사용자를 대신합니다. 기본적으로 선택 변수를 지정할 때 unique(choice)이 걸리고 alt.var이 생성되므로 데이터가 와이드 형식 인 경우 중복됩니다.

당신은 다음의 mlogit() 명령에이 같은 둥지의 이름 목록을 추가하여 요인의 수준이 단지입니다 가정하여 둥지를 지정 '0', '1', '2':

mlogit(..., nests = c(negative = c('0'), positive = c('1','2')

또는 요인 수준은이 같은이 될 것 '부정적'물리적 ','정신 '인 경우 :

mlogit(..., nests = c(negative = c('negative'), positive = c('physical','mental')

는 또한 여전히지정해야합니다 하나의 둥지에주의 패키지 설명서에인수가 있습니다. 당신은 당신은 당신이 중첩 된 모델의 이해에 혼란 생각 Kenneth Train's Examples useful