R에서 누락 된 데이터에 대한 전체 정보 최대 가능성


18

컨텍스트 : 데이터가 누락 된 계층 적 회귀.

질문 : R에서 누락 된 데이터를 처리하기 위해 전체 정보 최대 가능성 (FIML) 추정을 어떻게 사용합니까? 권장하는 패키지가 있으며 일반적인 단계는 무엇입니까? 온라인 자료와 예제도 도움이 될 것입니다.

추신 : 저는 최근에 R을 사용하기 시작한 사회 과학자입니다. 다중 대치가 옵션이지만 Mplus와 같은 프로그램이 FIML을 사용하여 누락 된 데이터를 처리하는 방법이 정말 좋습니다. 불행히도 Mplus는 현재 계층 적 회귀의 맥락에서 모델을 비교하지 않는 것 같습니다 (그 방법을 알고 있다면 알려주십시오!). R에 비슷한 것이 있는지 궁금합니다. 많은 감사합니다!


1
WinBugs 를 고려 습니까? 누락 된 데이터를 아름답게 자연스럽게 처리합니다.
Mike Dunlavey 2013

WinBUGS의 대안은 OpenBUGS 또는 STAN입니다. 이것들은 Mac 친화적이어야합니다.
Maxim.K

답변:


15

이 답변은 Google+ 의 R and Statistics 커뮤니티 에이 질문을 게시했을 때 멋진 답변을 준 @Joshua에게이 답변 을 제공했습니다 . 나는 단순히 그의 대답을 아래에 붙여 넣습니다.

잠재 변수 모델링없이 회귀를 실행하려면 인용 텍스트 뒤에 입력 한 메모를 읽으십시오.

사용 가능한 모든 데이터 (소위 FIML)에서 최대 가능성으로 누락 된 데이터를 처리하는 것은 매우 유용한 기술입니다. 그러나 일반적인 방법으로 구현하기 어려운 여러 가지 문제가 있습니다. 연령, 성별 및 직업 유형의 지속적인 결과를 예측하는 간단한 선형 회귀 모델을 고려하십시오. OLS에서는 연령, 성별 및 직업 분포에 대해 걱정할 필요가 없으며 결과 만 있습니다. 일반적으로 범주 형 예측 변수의 경우 더미 코드화됩니다 (0/1). ML을 사용하려면 누락 된 모든 변수에 분포 가정이 필요합니다. 지금까지 가장 쉬운 방법은 다변량 정규 (MVN)입니다. 예를 들어 변수 유형 (예 : 범주 형)을 선언하지 않는 경우 Mplus가 기본적으로 수행하는 작업입니다. 내가 준 간단한 예에서 당신은 아마 나이는 정상, 성은 Bernoulli, 직업 유형은 multinomal이라고 가정하고 싶을 것입니다. 후자는 실제로 바이너리 변수가 여러 개이기 때문에 까다 롭지 만 Bernoulli로 취급하고 싶지 않습니다. 즉, 더미 코딩 된 변수로 작업하고 싶지 않고 ML 범주 추정기가 다항식을 올바르게 사용할 수 있도록 실제 범주 형 변수로 작업해야하지만 더미 코딩 프로세스를 모델에 내장해야합니다. 데이터가 아닙니다. 다시 인생을 복잡하게합니다. 또한, 연속 및 범주 형 변수의 공동 분포는 계산하기가 쉽지 않습니다 (Mplus에서 이와 같은 문제가 발생하면 꽤 빨리 분해되고 어려움을 겪기 시작합니다). 마지막으로 누락 된 데이터 메커니즘을 이상적으로 지정하십시오. SEM 스타일 인 FIML에서 모든 변수는 기본적으로 다른 모든 변수에 따라 조정되지만 반드시 정확한 것은 아닙니다. 예를 들어, 연령은 성별 및 직업 유형이 아닌 상호 작용 기능으로 누락되었을 수 있습니다. 상호 작용은 초점 결과에 중요하지 않을 수 있지만, 연령의 누락에 중요한 경우, 반드시 실질적인 관심 모델 일 필요는 없지만 누락 된 데이터 모델 일 수도 있습니다.

lavaan은 MVN에 ML을 사용하지만, 현재는 범주 형 데이터 옵션이 제한적이라고 생각합니다 (SEM 분야에서 나오지만 이는 표준입니다). 다중 대치는 FIML 뒤에 숨겨진 많은 가정을 명시 적으로하기 때문에 처음에는 덜 우아해 보입니다 (예 : 모든 변수에 대한 분포 가정 및 모든 변수에서 누락에 대해 가정 한 예측 모델). 그러나 각 변수의 분포에 대해 많은 제어와 명시 적 사고를 제공하며 각 변수에 대한 최적의 결측 데이터 메커니즘이 중요합니다.

베이지안 모델이 누락 된 데이터를 처리하는 방법이라고 점점 더 확신하고 있습니다. 그 이유는 각 변수에 대한 분포를 포함하는 데 매우 유연하여 다양한 유형의 분포를 허용하고 예측 변수에 누락 된 데이터로 인한 변동성을 전체 모형 추정치에 쉽게 통합 할 수 있기 때문입니다. 그런 다음 어떻게 든 결과를 결합해야합니다). 물론, 이러한 방법은 가장 쉬운 방법이 아니며 많은 훈련과 사용 시간이 걸릴 수 있습니다.

따라서 그것은 실제로 귀하의 질문에 대답하지는 않지만 누락을 처리하기위한 완전히 일반적인 프레임 워크가 까다로운 이유를 설명합니다. 공분산 행렬에 대한 semutils 패키지에서 ML을 사용하기 위해 아래에 lavaan을 사용합니다. 분산 공분산 행렬에 대해 계속 변수를 사용하고 있다고 가정하기 때문에 사용자가 이미 데이터에 대해 MVN을 가정하고 있다고 가정합니다.

missingness 모든 변수가 연속 인 경우 있음이 수단 lavaan , 구조 방정식 모델링 (SEM)을 패키지에 R. FIML 사용할 좋은 하나이다

이제 첫 질문으로 돌아가겠습니다. 내 의도는 선형 회귀를 실행할 때 누락에 대한 마술 픽스를 갖는 것이 었습니다. 누락 된 모든 변수는 훌륭하고 연속적이었습니다. 그래서 두 가지 스타일로 분석을 진행했습니다.

  • 여러 대치로 일반적인 방법
  • FIML을 사용하는 용암이있는 SEM 스타일.

SEM 스타일로 회귀를 수행하여 많은 것을 놓쳤습니다. 두 스타일 모두 비슷한 계수와 R 제곱을 주었지만 SEM 스타일에서는 회귀에 대한 유의성 테스트 (df가있는 전형적인 F 값)를 얻지 못했습니다. 대신 모든 학위를 다 사용했을 때 도움이되지 않은 지수를 얻었습니다. 자유의. 또한 한 모델이 다른 모델보다 큰 R2를 가지고있을 때 차이가 큰지 비교할 수있는 방법을 찾지 못했습니다. 또한 일반적인 방법으로 회귀를 수행하면 귀중한 회귀 가정을 테스트 할 수 있습니다. 이 문제에 대한 자세한 답변 은 @StasK 가 잘 대답 한 다른 질문 을 참조하십시오 .

결론은 lavaan이 R에서 FIML을위한 알맞은 패키지라는 것 같습니다. 그러나 FIML의 사용은 통계적 가정과 수행하는 분석 유형에 따라 다릅니다. 잠재적 변수 모델링없이 회귀가 진행되는 한 SEM 프로그램에서 제외하고 다중 대치를 사용하는 것이 현명한 조치 일 것입니다.



-3

누락 된 데이터 / 레코드를 처리하는 두 가지 주요 방법이 있습니다. U 결 측값이있는 전체 관측치 행을 삭제하거나이 결 측값을 생성하는 방법을 찾습니다. 첫 번째 접근 방식을 취하면 많은 데이터가 손실 될 수 있습니다. 두 번째 방법에서는 새 데이터 세트의 매개 변수 추정치가 관찰 된 데이터 세트의 매개 변수 추정치와 크게 다르지 않도록이 누락 된 데이터를 생성하는 "영리한"방법을 찾아야합니다.

이 두 번째 접근 방식을 데이터 대치라고하며이를 수행하는 여러 R 패키지가 있습니다. 그중 하나를 mclust라고하며 필요한 기능을 imputeData라고합니다. 이 기능은 EM (예상 최대화) 알고리즘을 사용하여 관찰 된 부분이 주어지면 데이터 세트의 관찰되지 않은 부분의 매개 변수를 추정합니다. 매개 변수를 찾으면 새 데이터 포인트가 생성됩니다. 누락 된 데이터, 관측 된 데이터 및 전체 데이터 세트의 분포 가정은 가우스 인 것으로 가정합니다.

이 설명이 당신이하려는 일을 달성하는 데 도움이되기를 바랍니다.


감사. 다중 대치 패키지를 알고 있지만 최대 가능성 추정을 수행하는 비교적 간단한 방법이 있는지 알고 싶습니다.
Sootica

우도 함수는 표본 x가없는 경우에 정의되지 않습니다. 그래서 나는 당신이 존재하지 않는 것을 찾고 있다고 생각합니다.
Lalas

2
결측 데이터에 대한 최대 가능성 접근법을 활용하는 방법에 대한 설명은이 백서를 참조하십시오 ( Allison, 2012 ). OP가 설명하는 내용이 존재합니다.
Andy W

2
그리고 여기 SAS의 내용이 있습니다. support.sas.com/documentation/cdl/en/statug/63347/HTML/default/… R에서 본 적이 없습니다.
Jeremy Miles

@JeremyMiles에게 감사드립니다. 방금이 질문에 답하는 데 도움이 된 내용을 게시했습니다. 다른 사람들도 도움이 될 것이라고 생각했습니다. 추신. Andy Field와 함께 쓴 R 책은 굉장합니다 !! : D
Sootica
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.