R에 두 개의 glm 모델을 결합하는 쉬운 방법이 있습니까?


9

R로 만든 두 가지 로지스틱 회귀 모델이 있습니다 glm(). 둘 다 동일한 변수를 사용하지만 행렬의 다른 하위 집합을 사용하여 만들어졌습니다. 계수의 평균을 제공하고 predict () 함수와 함께 사용하는 평균 모델을 얻는 쉬운 방법이 있습니까?

[이러한 유형의 질문을 프로그래밍 사이트에 게시해야한다면 죄송합니다.]

감사


1
stats.stackexchange.com/q/8502/919 의 관련 스레드에서 유용한 정보를 찾을 수 있습니다 .
whuber

R에서 caret패키지는 모델을 결합하기위한 멋진 기능을 가지고 있습니다.
screechOwl

답변:


2

예측 된 확률의 평균 또는 계수의 평균을 취 하시겠습니까? 로지스틱 회귀 분석에는 선형 예측 변수의 비선형 변환이 포함되므로 다른 결과를 제공합니다.

둘 중 하나를 수행하는 함수는 다음과 같습니다. 설정 avg하기 위해 "prob"전자를 얻기 위해, 또는 후자 뭔가.

pred_comb <- function(mod1, mod2, dat, avg="prob", ...)
{
    xb1 <- predict(mod1, dat, type="link", ...)
    xb2 <- predict(mod2, dat, type="link", ...)
    if(avg == "prob")
        (plogis(xb1) + plogis(xb2))/2
    else plogis((xb1 + xb2)/2)
}

@ 홍 오이 : 감사합니다! 이 코드는 실제로 유용하고 트릭을 수행하지만 주로 목표로 삼 았던 것은 나중에 워크 플로에서 predict ()에 넣을 수있는 새로운 R 모델을 제공하는 함수였습니다. 그러나 귀하의 기능은 매우 우아하며 확률을 제공하도록 설정할 수있는 방법과 같습니다.
Andrew

@Andrew는이를 위해 R의 객체 지향 프로그래밍을 활용할 수 있습니다. 두 모델을 목록에 넣고 클래스를 말합니다 (예 :) glm_2. 위 함수를 호출하면 필요에 따라 객체에서 predict.glm_2사용할 수 있습니다 predict().
Hong Ooi

2
계수 평균이 왜 적절한가요? 두 데이터 집합의 크기가 다른 경우 반드시 가중 평균 형식을 사용해야합니다.
whuber

@ Hong-고마워요, 시도하겠습니다. @ whuber-이것을 지적 해 주셔서 감사합니다. 내 두 데이터 세트의 크기가 같으면 문제의 가중치가 적용됩니다 (이전에 생각하지 못했습니다). 그것들이 다른 경우 나는 단지 크기의 비율에 의해 무게를 줍니까?
Andrew

@Andrew 독립 변수의 값이 두 서브 세트 모두에서 동일한 경우에만 데이터 수를 기준으로 가중치를 적용하는 것이 정확합니다. 더 나은 접근법 (이론적으로도 유효한)을 보려면 질문에 대한 주석에서 참조 한 스레드를 참조하십시오.
whuber
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.