Resumo de um ajuste de GAM

12

Se encaixarmos em um GAM como:

gam.fit = gam::gam(Outstate ~ Private + s(Room.Board, df = 2) + s(PhD, df = 2) + 
    s(perc.alumni, df = 2) + s(Expend, df = 5) + s(Grad.Rate, df = 2), data = College)

Onde, usamos o conjunto de dados College, que pode ser encontrado dentro do pacote ISLR.
Agora, se encontrarmos o resumo desse ajuste, podemos ver que:

> summary(gam.fit)

Call: gam(formula = Outstate ~ Private + s(Room.Board, df = 2) + s(PhD, 
    df = 2) + s(perc.alumni, df = 2) + s(Expend, df = 5) + s(Grad.Rate, 
    df = 2), data = College)
Deviance Residuals:
     Min       1Q   Median       3Q      Max 
-7522.66 -1140.99    55.18  1287.51  7918.22 

(Dispersion Parameter for gaussian family taken to be 3475698)

    Null Deviance: 12559297426 on 776 degrees of freedom
Residual Deviance: 2648482333 on 762.0001 degrees of freedom
AIC: 13924.52 

Number of Local Scoring Iterations: 2 

Anova for Parametric Effects
                        Df     Sum Sq    Mean Sq F value    Pr(>F)    
Private                  1 3377801998 3377801998 971.834 < 2.2e-16 ***
s(Room.Board, df = 2)    1 2484460409 2484460409 714.809 < 2.2e-16 ***
s(PhD, df = 2)           1  839368837  839368837 241.496 < 2.2e-16 ***
s(perc.alumni, df = 2)   1  509679160  509679160 146.641 < 2.2e-16 ***
s(Expend, df = 5)        1 1019968912 1019968912 293.457 < 2.2e-16 ***
s(Grad.Rate, df = 2)     1  148052210  148052210  42.596 1.227e-10 ***
Residuals              762 2648482333    3475698                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Anova for Nonparametric Effects
                       Npar Df Npar F   Pr(F)    
(Intercept)                                      
Private                                          
s(Room.Board, df = 2)        1  3.480 0.06252 .  
s(PhD, df = 2)               1  1.916 0.16668    
s(perc.alumni, df = 2)       1  1.471 0.22552    
s(Expend, df = 5)            4 34.350 < 2e-16 ***
s(Grad.Rate, df = 2)         1  1.981 0.15971    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Aqui, não compreendo o significado da parte "Anova para efeitos paramétricos", bem como "Anova para efeitos não paramétricos". Embora eu conheça o funcionamento do teste ANOVA, mas não consigo entender a parte "efeitos paramétricos" e "efeitos não paramétricos" do resumo. Então, o que eles significam? Qual é o significado deles?


Essa questão surgiu devido à parte (d) desta resposta, para a pergunta 10, capítulo 7 da Introdução à aprendizagem estatística .

Mooncrater
fonte

Respostas:

22

A maneira como a saída dessa abordagem para a montagem de GAMs é estruturada é agrupar as partes lineares dos smoothers com os outros termos paramétricos. O aviso Privatetem uma entrada na primeira tabela, mas sua entrada está vazia na segunda. Isso ocorre porque Privateé um termo estritamente paramétrico; é uma variável de fator e, portanto, está associada a um parâmetro estimado que representa o efeito de Private. A razão pela qual os termos suaves são separados em dois tipos de efeito é que essa saída permite que você decida se um termo suave

  1. um efeito não linear : veja a tabela não paramétrica e avalie a significância. Se for significativo, deixe como um efeito não linear suave. Se insignificante, considere o efeito linear (2. abaixo)
  2. um efeito linear : observe a tabela paramétrica e avalie a significância do efeito linear. Se significativo, você pode transformar o termo em suave s(x)-> xna fórmula que descreve o modelo. Se insignificante, você pode considerar abandonar o termo completamente do modelo (mas tenha cuidado com isso - isso significa uma forte afirmação de que o verdadeiro efeito é == 0).

Tabela paramétrica

As entradas aqui são como o que você obteria se ajustasse esse modelo linear e calculasse a tabela ANOVA, exceto que nenhuma estimativa para nenhum coeficiente de modelo associado é mostrada. Em vez de coeficientes estimados e erros padrão e testes t ou Wald associados , a quantidade de variação explicada (em termos de somas de quadrados) é mostrada juntamente com os testes F. Como em outros modelos de regressão equipados com várias covariáveis ​​(ou funções de covariáveis), as entradas da tabela estão condicionadas aos outros termos / funções do modelo.

Mesa não paramétrica

Os efeitos não paramétricos referem-se às partes não lineares das alças ajustadas. Nenhum desses efeitos não lineares é significativo, exceto pelo efeito não linear de Expend. Há alguma evidência de um efeito não linear de Room.Board. Cada uma delas está associada a algum número de graus de liberdade não paramétricos ( Npar Df) e explica uma quantidade de variação na resposta, cuja quantidade é avaliada através de um teste F (por padrão, consulte o argumento test).

Esses testes na seção não paramétrica podem ser interpretados como teste da hipótese nula de um relacionamento linear em vez de um relacionamento não linear .

A maneira como você pode interpretar isso é que apenas Expendgarante o tratamento como um efeito não-linear suave. Os outros smooths podem ser convertidos em termos paramétricos lineares. Convém verificar se o suavizado de Room.Boardcontinua a ter um efeito não paramétrico não significativo depois de converter os outros suavizados em termos paramétricos lineares; pode ser que o efeito de Room.Boardseja levemente não-linear, mas isso esteja sendo afetado pela presença de outros termos suaves no modelo.

No entanto, muito disso pode depender do fato de que muitos smooths só foram autorizados a usar 2 graus de liberdade; por que 2?

Seleção automática de suavidade

As abordagens mais recentes para ajustar os GAMs escolheriam o grau de suavidade para você, através de abordagens de seleção automática de suavidade, como a abordagem de spline penalizado de Simon Wood, conforme implementado no pacote recomendado mgcv :

data(College, package = 'ISLR')
library('mgcv')

set.seed(1)
nr <- nrow(College)
train <- with(College, sample(nr, ceiling(nr/2)))
College.train <- College[train, ]
m <- mgcv::gam(Outstate ~ Private + s(Room.Board) + s(PhD) + s(perc.alumni) + 
               s(Expend) + s(Grad.Rate), data = College.train,
               method = 'REML')

O resumo do modelo é mais conciso e considera diretamente a função suave como um todo, e não como uma contribuição linear (paramétrica) e não linear (não paramétrica):

> summary(m)

Family: gaussian 
Link function: identity 

Formula:
Outstate ~ Private + s(Room.Board) + s(PhD) + s(perc.alumni) + 
    s(Expend) + s(Grad.Rate)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   8544.1      217.2  39.330   <2e-16 ***
PrivateYes    2499.2      274.2   9.115   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
                 edf Ref.df      F  p-value    
s(Room.Board)  2.190  2.776 20.233 3.91e-11 ***
s(PhD)         2.433  3.116  3.037 0.029249 *  
s(perc.alumni) 1.656  2.072 15.888 1.84e-07 ***
s(Expend)      4.528  5.592 19.614  < 2e-16 ***
s(Grad.Rate)   2.125  2.710  6.553 0.000452 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.794   Deviance explained = 80.2%
-REML = 3436.4  Scale est. = 3.3143e+06  n = 389

Agora, a saída reúne os termos suaves e os paramétricos em tabelas separadas, com a última obtendo uma saída mais familiar semelhante à de um modelo linear. O efeito completo dos termos suaves é mostrado na tabela inferior. Estes não são os mesmos testes que para o gam::gammodelo que você mostra; eles são testes contra a hipótese nula de que o efeito suave é uma linha horizontal plana, um efeito nulo ou que mostra efeito zero. A alternativa é que o verdadeiro efeito não linear seja diferente de zero.

Observe que os FEDs são todos maiores que 2, exceto s(perc.alumni), sugerindo que o gam::gammodelo pode ser um pouco restritivo.

Os suportes montados para comparação são dados por

plot(m, pages = 1, scheme = 1, all.terms = TRUE, seWithMean = TRUE)

que produz

insira a descrição da imagem aqui

A seleção automática de suavidade também pode ser cooptada para reduzir totalmente os termos do modelo:

Feito isso, vemos que o ajuste do modelo não mudou realmente

> summary(m2)

Family: gaussian 
Link function: identity 

Formula:
Outstate ~ Private + s(Room.Board) + s(PhD) + s(perc.alumni) + 
    s(Expend) + s(Grad.Rate)

Parametric coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   8539.4      214.8  39.755   <2e-16 ***
PrivateYes    2505.7      270.4   9.266   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
                 edf Ref.df      F  p-value    
s(Room.Board)  2.260      9  6.338 3.95e-14 ***
s(PhD)         1.809      9  0.913  0.00611 ** 
s(perc.alumni) 1.544      9  3.542 8.21e-09 ***
s(Expend)      4.234      9 13.517  < 2e-16 ***
s(Grad.Rate)   2.114      9  2.209 1.01e-05 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.794   Deviance explained = 80.1%
-REML = 3475.3  Scale est. = 3.3145e+06  n = 389

Todos os suaves parecem sugerir efeitos levemente não lineares, mesmo depois de reduzirmos as partes linear e não linear dos splines.

Pessoalmente, acho a saída do mgcv mais fácil de interpretar e porque foi demonstrado que os métodos de seleção automática de suavidade tenderão a ajustar-se a um efeito linear se isso for suportado pelos dados.

Restabelecer Monica - G. Simpson
fonte
4
+1 Ótima explicação. (Estou curioso que você entende por um "teste de F não paramétrico," porém: como é que ele difere de um teste F padrão, se em tudo?)
whuber
4
@ whuber isso é apenas um fraseado ruim; é um teste F padrão, mas devido à decomposição de suavizações em partes lineares e não lineares, esses são testes do que a saída chama de bit "não paramétrico". Eu vou editar isso.
Reinstate Monica - G. Simpson
3
Os valores p não funcionam dessa maneira; para que o teste seja realizado, assumimos que a hipótese nula é verdadeira . O que esse teste está fazendo é dizer, suponha que o relacionamento seja linear, quanto de conflito com essa suposição as evidências trazem os dados? Se a evidência trazida pelos dados é consistente com a que esperamos se o nulo fosse verdadeiro. Se a evidência for inconsistente com a hipótese nula, é improvável que tenhamos observado os dados que fizemos se o nulo fosse verdadeiro. O valor p é uma medida da evidência contra o nulo.
Reinstate Monica - G. Simpson
1
Você diz da tabela paramétrica: "As entradas aqui são essencialmente o que você obteria se ajustasse isso como um modelo linear e calculasse a tabela ANOVA". Suponho que isso não seja literalmente verdade (ou seja, que a parte não linear do modelo não afete as estimativas de significância para a parte linear). Certamente a estimativa das partes linear e não linear é feita em conjunto, e a parte não linear afeta os coeficientes para a parte linear e também a significância, certo?
Jacob Socolar 4/17/17
1
@JacobSocolar Até onde eu entendi, o spline é decomposto em um componente linear e em alguns componentes não lineares (cujo número depende dos graus de liberdade permitidos para o spline). O que eu quis dizer foi que esse é o tipo de resultado que você obteria de um ajuste de modelo linear seguido por ANOVA (ou seja, um teste F para o quadrado médio). No entanto, sim, esses são efeitos parciais no sentido de que a variação explicada por uma parte do modelo depende dos outros termos (& funções básicas) no modelo. E sim, eu não quis dizer essa citação literalmente; Vou reformular para "gostar do que você gostaria ...".
Reinstate Monica - G. Simpson