c'est la déprime complète là... je crains que ce sur quoi je me suis basé soit faux!
je reviens sur la sélection de modèles par AIC. pour vous, combien de paramètres compte un "modèle nul" ?
exemple :
avec la fonction que Renaud m'a passé dans un post précédent:
Code : Tout sélectionner
monAIC <- function (object, ...) {
Call <- match.call()
nobs <- object$df.residual + object$rank
object <- list(object, ...)
val <- lapply(object, function(x){
if("aov" != class(x)[1])
stop("Fitted objects are not all of class aov.")
LL <- logLik(x)
ll <- c(LL)
n <- x$df.residual + x$rank
if (n != nobs)
stop("The number of observations was not the same for all the fitted objects.")
k <- attr(LL, "df")
aic <- -2 * ll + 2 * k
data.frame(n = n,
k = k,
nsk = n/k,
AIC = aic,
AICc = aic + 2 * k * (k + 1)/(n - k - 1))
})
val <- do.call("rbind", val)
row.names(val) <- as.character(Call[-1])
val
}
Résultat pour un modèle nul :
Code : Tout sélectionner
> m00 <- ASRF3~ty-ty
> aov00 <- aov(m00, data=DATA)
> monAIC(aov00)
n k nsk AIC AICc
aov00 27 2 13.5 42.49289 42.99289
Soit 2 paramètres pour le modele nul avec cette fonction...
Et maintenant avec la fonction extractAIC
Code : Tout sélectionner
> extractAIC(aov00)
[1] 1.00000 -36.12979
Soit 1 seul paramètre pour le modele nul... !! ce qui me semble logique (1 paramètre pour le modèle)
Du coup, pour la fonction monAIC(), le calcul de l'AIC et de l'AICc est faux (?), et je pense que ca doit changer complètement les résultats dans ma sélection de modèle.
De meme, la fonction sic() du package metomet donne aussi k = 2, puisque la fonction monAIC() est issue de ce package.... je capte rien ou bien ? je suis prêt à l'avouer!!
Svp, help! où est l'erreur ? erreur y a t il ?