W zwykły sposób:
p <- predict(mod, newdata, type = "link", se.fit = TRUE)
Następnie zauważ, że p
zawiera komponent $se.fit
ze standardowymi błędami prognoz dla obserwacji w newdata
. Następnie możesz utworzyć CI, mnożąc SE przez wartość odpowiednią do pożądanego poziomu. Np. Przybliżony 95% przedział ufności powstaje jako:
upr <- p$fit + (2 * p$se.fit)
lwr <- p$fit - (2 * p$se.fit)
Zastępujesz odpowiednią wartość z rozkładu lub Gaussa za potrzebny przedział.t
Pamiętaj, że używam, type = "link"
ponieważ nie mówisz, jeśli masz GAM lub tylko AM. W GAM musisz utworzyć przedział ufności na skali predyktora liniowego, a następnie przekształcić go na skalę odpowiedzi, stosując odwrotność funkcji link:
upr <- mod$family$linkinv(upr)
lwr <- mod$family$linkinv(lwr)
Teraz zauważ, że są to bardzo przybliżone interwały. Ponadto przedziały te są punktowo oparte na przewidywanych wartościach i nie uwzględniają faktu, że dokonano wyboru gładkości.
Równoczesny przedział ufności można obliczyć poprzez symulację na podstawie tylnego rozkładu parametrów. Mam taki przykład na swoim blogu .
Jeśli potrzebujesz przedziału ufności, który nie jest uzależniony od parametrów wygładzania (tj. Takiego, który bierze pod uwagę, że nie znamy, ale szacuje wartości parametrów wygładzania), następnie dodaj unconditional = TRUE
do predict()
wywołania.
Ponadto, jeśli nie chcesz tego robić sam, pamiętaj, że nowsze wersje mgcv mają plot.gam()
funkcję, która zwraca obiekt ze wszystkimi danymi użytymi do utworzenia wykresów wygładzeń i ich przedziałów ufności. Możesz po prostu zapisać dane wyjściowe plot.gam()
w obiekcie obj
obj <- plot(model, ....)
a następnie sprawdź obj
, która jest listą zawierającą jeden składnik na gładkie. Dodaj seWithMean = TRUE
do plot()
wywołania, aby uzyskać przedziały ufności, które nie są uzależnione od parametru gładkości.
Jeśli chcesz je wydrukować,
plot.gam
funkcja ma cieniowanie, które domyślnie określa przedziały ufności za pomocą argumentu zaciemnienia. Zobacz także, jakgam.vcomp
uzyskać interwały.źródło
Pakiet
mgcv
(nowszy niż gam) z łatwością wykreśla wiarygodne interwały. To bayesowskie podejście różni się od przedziałów ufności, ale wyniki są prawie takie same, jak pokazały symulacje numeryczne (patrz artykuł Marry i Wooda połączony w mgcv).źródło