Intervalo de confiança para o modelo GAM


14

mgcv::gamPágina de ajuda da Reading :

intervalos de confiança / credibilidade estão prontamente disponíveis para qualquer quantidade prevista usando um modelo ajustado

No entanto, não consigo descobrir uma maneira de realmente conseguir uma. Eu pensei predict.gamque teria um type=confidencee um levelparâmetro, mas não. Você pode me ajudar em como criá-lo?

Respostas:


33

Da maneira usual:

p <- predict(mod, newdata, type = "link", se.fit = TRUE)

Observe que pcontém um componente $se.fitcom erros padrão das previsões para observações em newdata. Você pode formar o IC multiplicando o SE por um valor apropriado ao seu nível desejado. Por exemplo, um intervalo de confiança aproximado de 95% é formado como:

upr <- p$fit + (2 * p$se.fit)
lwr <- p$fit - (2 * p$se.fit)

Você substitui em um valor apropriado de uma distribuição ou Gaussiana o intervalo necessário.t

Note que eu uso type = "link"como você não diz se possui um GAM ou apenas um AM. No GAM, você precisa formar o intervalo de confiança na escala do preditor linear e transformá-lo na escala da resposta aplicando a inversa da função de link:

upr <- mod$family$linkinv(upr)
lwr <- mod$family$linkinv(lwr)

Agora observe que esses são intervalos muito aproximados. Além disso, esses intervalos são pontuais nos valores previstos e não levam em consideração o fato de que a seleção da suavidade foi realizada.

Um intervalo de confiança simultâneo pode ser calculado via simulação a partir da distribuição posterior dos parâmetros. Eu tenho um exemplo disso no meu blog .

Se você deseja um intervalo de confiança que não depende dos parâmetros de suavização (isto é, um que leva em consideração o que não conhecemos, mas sim estimar os valores dos parâmetros de suavidade), adicione unconditional = TRUE-o à predict()chamada.

Além disso, se você não quiser fazer isso sozinho, observe que as versões mais recentes do mgcv têm uma plot.gam()função que retorna um objeto com todos os dados usados ​​para criar os gráficos dos suaves e seus intervalos de confiança. Você pode salvar a saída plot.gam()em um objeto

obj <- plot(model, ....)

e depois inspecione obj, que é uma lista com um componente por suave. Adicione seWithMean = TRUEà plot()chamada para obter intervalos de confiança que não dependem do parâmetro de suavidade.


Fazer o IC simultâneo e a inicialização paramétrica se envolver um pouco mais com o código; portanto, você pode se dar bem apenas com os intervalos pontuais. Caso contrário, posso fornecer mais exemplos para cada um deles.
Reinstate Monica - G. Simpson

+1 para a resposta. Impressionante post no blog, vou estudá-lo por um tempo para melhorar minhas habilidades gráficas.
21412 jjjjjjjjjjjjjjjjjjjjjjjjj

De alguma forma eu poderia ter acesso a essa publicação impressionante no blog ( ucfagls.wordpress.com/2011/06/12/… )? Atualmente, o blog requer um login.
geneorama

@geneorama Mudei meu blog do Wordpress e por um ano paguei por redirecionamentos para o novo para todos os URLs, mas deixei esse lapso recentemente. Me desculpe por isso. Editei no novo link e isso não requer login. (O login é evitar duas cópias do mesmo posto e eu fui muito preguiçoso para excluir as páginas do site do Wordpress como de ainda.)
Reintegrar Monica - G. Simpson

A postagem original do blog (veja o histórico de edições das perguntas e respostas) teve uma falha fundamental na maneira como o intervalo simultâneo foi criado. O link na versão atual (em dezembro de 2016) da resposta calcula o intervalo simultâneo corretamente.
Reinstate Monica - G. Simpson

5

Se você deseja apenas plotá-los, a plot.gamfunção possui sombreamento que padroniza os intervalos de confiança usando o argumento de sombra. Veja também gam.vcomppara obter os intervalos.


5

O pacote mgcv(mais recente que gam) plota prontamente intervalos credíveis. Essa abordagem bayesiana é diferente dos intervalos de confiança, mas os resultados são quase os mesmos, como as simulações numéricas mostraram (veja o artigo de Marra e Wood, vinculado em mgcv).


2
1-α
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.