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


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: 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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.