J'essaie de comprendre certaines fonctionnalités du package MSwM afin que je puisse l'utiliser dans un document que j'écris. Il y a deux choses que je ne comprends pas en reproduisant l'exemple fourni par les auteurs. Le premier est lié à la méthode de résumé utilisée dans le paquet: pourquoi le logLikel
est un nombre positif quand j'appelle [email protected]@logLikel
et un nombre négatif quand j'appelle summary(mod.mswm)
? Est-il possible d'obtenir logLik (et non le logLikel), AIC et BIC directement de l'objet de résumé?AIC et BIC dans Markov Switching package MSwM
La seconde concerne les critères d'information AIC et BIC. La documentation pour le paquet dit que pour nous d'obtenir ces valeurs, nous devrions utiliser la fonction AIC, en choisissant la valeur appropriée pour k pour obtenir AIC ou BIC. Donc pour AIC, k devrait être 2 et pour BIC, je pense qu'il devrait être log(length(y))
, où y est ma série temporelle univariée. Le problème est que lorsque je fais cette procédure les valeurs pour AIC et BIC que je reçois sont différentes de celles qui sont dans le summary
. Pourquoi donc? Qu'est-ce que je rate??
Ce code J'utilise:
library(MSwM)
data(example)
mod=lm(y~x,example)
mod.mswm=msmFit(mod,k=2,p=1,sw=c(T,T,T,T),control=list(parallel=F))
summary(mod.mswm)
Les premières lignes du résultat sont:
Markov Switching Model
Call: msmFit(object = mod, k = 2, sw = c(T, T, T, T), p = 1, control = list(parallel = F))
AIC BIC logLik
637.0736 693.479 -312.5368
Cependant, si j'essaie de calculer l'AIC et BIC en utilisant une fonction ou par main, j'ai des résultats différents:
#Akaike
AIC(mod.mswm,k=2) #using function. Result:641.0736
8*2-((-1)*2*[email protected]@logLikel)#by hand. Result:641.0736
#Bayesian
AIC(mod.mswm,k=log(length(example$y))) #using function. Result: 670.7039
8*log(length(example$y))-((-1)*2*[email protected]@logLikel) #by hand. Result: 670.7039
Merci beaucoup à l'avance!
Merci beaucoup pour votre réponse, Alexander! – Fer