Effectuez un test pour comparer les modèles statistiques estimés. Ce chapitre traite du ** test du rapport de vraisemblance **.
procédure
Dans le test, un modèle avec peu de paramètres et un modèle avec de nombreux paramètres (modèle simple et modèle complexe) sont testés. Ils sont appelés ** hypothèse nulle ** et ** hypothèse alternative **.
Le test du modèle statistique examine si la proposition «l'hypothèse nulle est correcte» peut être niée.
Modèle statistique à utiliser:
modèle | Nombre de paramètres |
deviance( |
residual deviance | AIC | |
---|---|---|---|---|---|
Constant | 1 | -237.6 | 475.3 | 89.5 | 477.3 |
x | 2 | -235.4 | 470.8 | 85.0 | 474.8 |
full | 100 | -192.9 | 385.6 | 0.0 | 585.8 |
Dans le test du rapport de vraisemblance, la différence de degré d'écart obtenue en multipliant le logarithme du rapport de vraisemblance par -2 est utilisée. Dans le cas de cet exemple
\begin{eqnarray}
\frac{L_1 ^\ast}{L_2 ^\ast} &=& \frac{Probabilité maximale d'un modèle constant:\exp(-237.6)}{Probabilité maximale du modèle x:\exp(-235.4)} \\
\Delta D_{1,2} &=& -2 * (\log L_1 ^ \ast - \log L_2 ^ \ast) \\
\Delta D_{1,2} &=& D_1 - D_2 \\
\Delta D_{1,2} &=& 4.5
\end{eqnarray}
On évalue que ce degré d'écart est amélioré de 4,5.
L'hypothèse nulle est | ||
---|---|---|
Un vrai modèle | Erreur de première classe | (aucun problème) |
Pas un vrai modèle | (aucun problème) | Deuxième type d'erreur |
Comme procédure
La probabilité $ P $ que la différence entre le degré de déviation du modèle constant et du modèle x soit $ \ Delta D_ {1,2} \ geq 4,5 $ est appelée ** valeur P **.
Déterminez le ** niveau de signification ** à l'avance (par vous-même)
Laisser.
Hypothèse nulle: calcule la probabilité que $ \ Delta D_ {1,2}, qui est une statistique de test dans le monde où un modèle constant est un vrai modèle, soit supérieure à 4,5 (fait une erreur de première classe).
Au-dessus de 3. L'invention concerne un procédé dans lequel le processus de génération des données de est effectué sur la base d'une simulation utilisant des nombres aléatoires. Supposons que le résultat d'un certain modèle soit stocké dans «fit1» et que le résultat du modèle x soit stocké dans «fit2».
>>> model1 = smf.glm('y~1', data=d, family=sm.families.Poisson())
>>> model2 = smf.glm('y~x', data=d, family=sm.families.Poisson())
>>> fit1 = model1.fit()
>>> fit2 = model2.fit()
# fit1$deviance - fit2$deviance
>>> fit1.deviance - fit2.deviance
4.5139410788540459
A partir du nombre moyen de graines estimé par un certain modèle $ \ lambda = \ exp (2,06) = 7,85 $ Les données à générer sont «** 100 nombres aléatoires de Poisson avec une moyenne de 7,85 **».
# d$y.rnd <- rpois(100, lambda=mean(d$y))
>>> d.y.rnd = sci.poisson.rvs(d.y.mean(), size=100)
# fit1 <- glm(y.rnd ~ 1, data=d, family=poisson)
>>> model1 = smf.glm('y.rnd ~ 1', data=d, family=sm.families.Poisson())
>>> fit1 = model1.fit()
# fit2 <- glm(y.rnd ~ x, data=d, family=poisson)
>>> model2 = smf.glm('y.rnd ~ x', data=d, family=sm.families.Poisson())
>>> fit2 = model2.fit()
# fit1$deviance - fit2$deviance
>>> fit1.deviance - fit2.deviance
0.63270346107955788
La différence de degré d'écart est de 1,92 pour les données dont la valeur moyenne est un nombre aléatoire de Poisson constant.
Le modèle x avec des variables explicatives sans signification est meilleur que le modèle constant, qui est le «vrai modèle»
En répétant cette étape environ 1 000 fois, la ** distribution des statistiques de test ** et la "distribution de la différence de degré de déviation $ \ Delta D_ {1, 2} $" dans cet exemple peuvent être prédites.
def get_dd(d):
sample_d = len(d)
mean_y = d.y.mean()
d.y.rnd = sci.poisson.rvs(mu=mean_y, size=sample_d)
model1 = smf.glm('y.rnd ~ 1', data=d, family=sm.families.Poisson())
model2 = smf.glm('y.rnd ~ x', data=d, family=sm.families.Poisson())
fit1 = model1.fit()
fit2 = model2.fit()
return fit1.deviance - fit2.deviance
def pb(d, bootstrap=1000):
return pandas.Series([get_dd(d) for _ in xrange(bootstrap)])
results = pb(d)
results.describe()
results[results >= 4.5].count()
results[results>= 4.5].count()
# 32
results.quantile(.95)
# 3.6070094508948025
results.hist()
D'après les résultats ci-dessus, la «probabilité que la différence d'écart soit supérieure à 4,5» est de 32 $ / 1000 $, c'est-à-dire $ P = 0,032 $. Aussi, si vous trouvez la différence de degré de déviation $ \ Delta D_ {1,2} $ où $ P = 0,05 $. Il devient $ \ Delta D_ {1,2} \ leq 3.61 $.
De ce qui précède, Il y a une différence significative parce que «la valeur P de la différence de degré d'écart de 4,5 était de 0,032, donc c'est plus petit que le niveau de signification de 0,05». On juge que "l'hypothèse nulle (modèle constant) est rejetée et le modèle x demeure, donc ceci est adopté".
La distribution de probabilité de la différence de degré d'écart $ \ Delta D_ {1,2} $ peut être approximée par la distribution $ \ chi ^ 2 $ du degré de liberté $ k_2 --k_1 = 2-1 = 1 $.
Apparemment, il n'y a pas d'ANOVA pour GLM dans les
modèles de statistiques
...
L'approximation de la distribution $ \ chi ^ 2 $ est ** un calcul d'approximation qui est efficace lorsque la taille de l'échantillon est grande **.
La méthode PB semble être meilleure pour les petits échantillons avec un petit nombre d'individus étudiés, ou pour les cas où la variation des données n'est pas une distribution de Poisson mais une distribution normale uniformément répartie.
Le test du rapport de vraisemblance et la sélection du modèle par l'AIC se concentrent sur la statistique de l'écart.
--AIC: Le but est de sélectionner un "modèle qui fait de bonnes prédictions"
Il semble qu'il n'y ait pas d'autre choix que de choisir en fonction du but.
Recommended Posts