Existe uma maneira fácil de combinar dois modelos glm em R?

9

Eu tenho dois modelos de regressão logística em R feitos com glm(). Ambos usam as mesmas variáveis, mas foram criados usando diferentes subconjuntos de uma matriz. Existe uma maneira fácil de obter um modelo médio que forneça os meios dos coeficientes e depois usá-lo com a função predict ()?

[desculpe se esse tipo de pergunta deve ser postado em um site de programação, deixe-me saber e eu o postarei]

obrigado

Andrew
fonte
11
Você pode encontrar algumas informações úteis no encadeamento relacionado em stats.stackexchange.com/q/8502/919 .
whuber
No R, o caretpacote possui alguns recursos interessantes para combinar modelos.
precisa saber é o seguinte

Respostas:

2

Deseja obter a média das probabilidades previstas ou a média dos coeficientes? Eles fornecerão resultados diferentes, porque uma regressão logística envolve uma transformação não linear do preditor linear.

Uma função para fazer qualquer um seria algo parecido com isto. Defina avgpara "prob"obter o primeiro ou algo mais para o último.

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)
}
Hong Ooi
fonte
@ Hong Ooi: Obrigado! Esse código é realmente útil e funcionará, mas o que eu estava buscando principalmente era uma função que daria um novo modelo R que eu poderia colocar em predizer () posteriormente no fluxo de trabalho. No entanto, acho que sua função é bastante elegante e como você pode configurá-la para fornecer probabilidades.
Andrew
@ Andrew, você pode tirar proveito da programação orientada a objetos do R para isso. Coloque seus dois modelos em uma lista e dê uma aula, digamos glm_2. Chame a função acima predict.glm_2e você poderá usá-lo predict()em seu objeto, conforme necessário.
Hong Ooi
2
Por que a média dos coeficientes é apropriada? Se os dois conjuntos de dados tiverem tamanhos diferentes, certamente pelo menos alguma forma de média ponderada deve ser usada.
whuber
@ Hong - obrigado, vou tentar isso. @ whuber - obrigado por apontar isso. Se meus dois conjuntos de dados são do mesmo tamanho, está ponderando um problema (eu nunca tinha pensado nisso antes). Se são diferentes, peso apenas a proporção dos tamanhos (por exemplo, se um for duas vezes maior, dou o dobro do peso)?
Andrew
@Andrew É correto ponderar pela contagem de dados apenas se os valores das variáveis ​​independentes forem os mesmos nos dois subconjuntos. Para uma abordagem melhor (que também é teoricamente válida), consulte o tópico que referenciei em um comentário à sua pergunta.
whuber