Czy istnieje prosty sposób na połączenie dwóch modeli GLM w R?

9

Mam dwa modele regresji logistycznej w R wykonane glm(). Oba używają tych samych zmiennych, ale zostały wykonane przy użyciu różnych podzbiorów macierzy. Czy istnieje prosty sposób na uzyskanie średniego modelu, który podaje średnie współczynników, a następnie użycie go z funkcją predykcji ()?

[przepraszam, jeśli tego typu pytanie powinno zostać opublikowane na stronie programistycznej, daj mi znać, a tam go opublikuję]

Dzięki

Andrzej
źródło
1
Przydatne informacje można znaleźć w powiązanym wątku na stronie stats.stackexchange.com/q/8502/919 .
whuber
W wersji R caretpakiet ma kilka ciekawych funkcji do łączenia modeli.
screechOwl,

Odpowiedzi:

2

Czy chcesz wziąć średnią z przewidywanych prawdopodobieństw, czy średnią współczynników? Dadzą różne wyniki, ponieważ regresja logistyczna obejmuje nieliniową transformację predyktora liniowego.

Każda z tych funkcji byłaby czymś takim. Ustaw, avgaby "prob"uzyskać pierwsze, lub coś innego dla drugiego.

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
źródło
@Hong Ooi: Dzięki! Ten kod jest naprawdę przydatny i sprawdzi się, ale przede wszystkim chciałem uzyskać funkcję, która dałaby nowy model R, który mogłem następnie przewidzieć () później w przepływie pracy. Myślę jednak, że twoja funkcja jest dość elegancka i podobnie jak sposób, w jaki możesz ją ustawić, aby dawać prawdopodobieństwa.
Andrew
@Andrew możesz w tym celu skorzystać z programowania obiektowego R. Umieść swoje dwa modele na liście i daj klasie, powiedzmy glm_2. Wywołaj powyższą funkcję, predict.glm_2a następnie możesz użyć jej predict()na obiekcie zgodnie z wymaganiami.
Hong Ooi
2
Dlaczego uśrednianie współczynników jest właściwe? Jeśli dwa zestawy danych mają różne rozmiary, z pewnością należy zastosować przynajmniej pewną formę średniej ważonej.
whuber
@ Hong - dzięki, wypróbuję to. @whuber - dziękuję za zwrócenie na to uwagi. Jeśli moje dwa zestawy danych są tego samego rozmiaru, ma znaczenie problem (wcześniej o tym nie myślałem). Jeśli są różne, czy po prostu ważę według proporcji rozmiarów (np. Jeśli jeden jest dwa razy większy, czy daję dwa razy większą wagę)?
Andrew
@Andrew Poprawne jest ważenie według liczby danych tylko wtedy, gdy wartości zmiennych niezależnych są takie same w obu podzbiorach. Aby uzyskać lepsze podejście (które jest również poprawne teoretycznie), zobacz wątek, do którego odwoływałem się w komentarzu do twojego pytania.
whuber