Gracias a todos por cualquier ayuda de antemano.
He construido una serie de GAM anidados en mgcv para explicar la presencia/ausencia de anticuerpos en una población de animales y he utilizado AIC para seleccionar mi modelo de mejor ajuste. A pesar de incluir todas las variables explicativas biológicamente plausibles a las que tengo acceso, mi mejor modelo basado en AIC sólo explica el 36,6% de la desviación en mis datos.
Mi pregunta es: ¿cuál sería de esperar que fuera el valor de la desviación explicada si mi modelo se ajusta bien/razonablemente bien a mis datos? Basándose en la poca información proporcionada, ¿sugeriría que este modelo se ajusta bien a mis datos o no, por qué/por qué no?
Me preocupa el ajuste del modelo (por ejemplo, la no normalidad de los residuos), pero no tengo más predictores que incluir....
Entiendo que la desviación explicada es algo similar al R2 de una regresión lineal, por ejemplo, ver aquí . Cuando se utiliza R2, diferentes investigadores utilizan diferentes reglas empíricas en lo que respecta a la magnitud del valor que es generalmente indicativo de un ajuste razonable del modelo - algunos investigadores dicen que R2>0,6 es un buen ajuste, otros dicen que R2>0,4 o incluso menos es un buen ajuste, dependiendo del problema específico en cuestión. En la regresión logística existe un valor similar, McFadden R2. En general, la magnitud de McFadden R2 que indica un ajuste razonable del modelo es mucho menor que la de R2 para la regresión lineal. ¿Qué valor/valores pueden ser indicativos de un ajuste razonable del modelo para la desviación explicada? ¿Existen reglas empíricas o referencias?
Esta es la primera vez que utilizo GAM, por lo que no tengo experiencia previa para comparar los valores explicados de desviación que he obtenido en otros conjuntos de datos. A continuación he proporcionado un resumen de mi gam y la salida de gam.check() para más antecedentes.
Resumen del modelo
Family: binomial
Link function: logit
Formula:
cbind(cnt_RHDV1_pos, cnt_RHDV1_neg) ~ s(prev_rcv, k = 10) + RHDV2_arrive_cat +
breed_season + s(ave_age, k = 10) + s(ave_ajust_abun, k = 10) +
s(RHDV2_arrive_cat, breed_season, bs = "re", k = 2) +
s(ave_ajust_abun, RHDV2_arrive_cat, bs = "fs", k = 30) +
s(ave_age, RHDV2_arrive_cat, bs = "fs", k = 30) + s(lat,
long, k = 11)
Parametric coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.706873 0.067609 -10.455 <2e-16
RHDV2_arrive_cat 0.000000 0.000000 NA NA
breed_season 0.002608 0.136810 0.019 0.985
---
Approximate significance of smooth terms:
edf Ref.df Chi.sq p-value
s(prev_rcv) 3.0480 3.754 35.345 4.18e-07
s(ave_age) 1.0002 1.000 0.810 0.368089
s(ave_ajust_abun) 1.0004 1.001 7.460 0.006329
s(RHDV2_arrive_cat,breed_season) 0.8871 1.000 7.724 0.002459
s(ave_ajust_abun,RHDV2_arrive_cat) 2.9496 3.937 14.362 0.006457
s(ave_age,RHDV2_arrive_cat) 8.7334 27.000 25.084 0.000495
s(lat,long) 4.8955 5.353 45.387 2.52e-08
---
Rank: 94/95
R-sq.(adj) = 0.289 Deviance explained = 36.6%
-REML = 443.79 Scale est. = 1 n = 159
Resultado de gam.check()
Method: REML Optimizer: outer newton
full convergence after 10 iterations.
Gradient range [-0.0001601705,6.142111e-05]
(score 443.7918 & scale 1).
Hessian positive definite, eigenvalue range [6.788685e-05,1.222609].
Model rank = 94 / 95
Basis dimension (k) checking results. Low p-value (k-index<1) may
indicate that k is too low, especially if edf is close to k'.
k' edf k-index p-value
s(prev_rcv) 9.000 3.048 1.01 0.52
s(ave_age) 9.000 1.000 0.99 0.45
s(ave_ajust_abun) 9.000 1.000 0.95 0.24
s(RHDV2_arrive_cat,breed_season) 1.000 0.887 1.09 0.92
s(ave_ajust_abun,RHDV2_arrive_cat) 27.000 2.950 1.05 0.68
s(ave_age,RHDV2_arrive_cat) 27.000 8.733 1.05 0.77
s(lat,long) 10.000 4.895 1.00 0.46