Je souhaite modifier les hypothèses nulles à l'aide glm()
de R.
Par exemple:
x = rbinom(100, 1, .7)
summary(glm(x ~ 1, family = "binomial"))
teste l'hypothèse que . Et si je veux changer le null en p = une valeur arbitraire, à l'intérieur glm()
?
Je sais que cela peut être fait aussi avec prop.test()
et chisq.test()
, mais j'aimerais explorer l'idée d'utiliser glm()
pour tester toutes les hypothèses relatives aux données catégorielles.
r
hypothesis-testing
generalized-linear-model
chi-squared
offset
Bill Ravenwood
la source
la source
glm
Réponses:
Vous pouvez utiliser un décalage :β0= 0 p q= logit ( p ) = log( p / ( 1 - p ) )
glm
avecfamily="binomial"
des paramètres d'estimation sur l'échelle log-odds ou logit, donc correspond à des log-odds de 0 ou une probabilité de 0,5. Si vous voulez comparer avec une probabilité de p , vous voulez que la valeur de base soit q = logit ( p ) = log ( p / ( 1 - p ) ) . Le modèle statistique est maintenantoù seule la dernière ligne a changé par rapport à la configuration standard. En code R:
offset(q)
dans la formuleqlogis(p)
rep(q,100)
.la source
glm(y ~ offset(q)-1, family=binomial, data=dd)
et en utilisant àlrtest
partir dulmtest
package. Le test du chi carré de Pearson est le test de score pour le modèle GLM. Wald / LRT / Score sont tous des tests cohérents et devraient fournir une inférence équivalente dans des tailles d'échantillon raisonnablement grandes.anova()
partir de la base R sur le GLM pour obtenir un test LRlrtest
.anova(.,test="Chisq")
- être ?Regardez l'intervalle de confiance pour les paramètres de votre GLM:
Il s'agit d'un intervalle de confiance pour les log-odds.
Pour nous avons log ( o d d s ) = log pp = 0,5 . Donc, tester l'hypothèse quep=0,5Journal( o drés ) = logp1 - p= journal1 = 0 p = 0,5 équivaut à vérifier si l'intervalle de confiance contient 0. Celui-ci n'en a pas, donc l'hypothèse est rejetée.
la source
confint
Il n'est pas (entièrement) correct / précis d'utiliser les valeurs p basées sur les valeurs z / t dans la fonction glm.summary comme test d'hypothèse.
C'est un langage déroutant. Les valeurs rapportées sont nommées valeurs z. Mais dans ce cas, ils utilisent l' erreur standard estimée à la place de la véritable déviation. Par conséquent, en réalité, ils sont plus proches des valeurs t . Comparez les trois sorties suivantes:
1) summary.glm
2) t-test
3) z-test
Ce ne sont pas des valeurs p exactes. Un calcul exact de la valeur de p en utilisant la distribution binomiale fonctionnerait mieux (avec la puissance de calcul de nos jours, ce n'est pas un problème). La distribution t, en supposant une distribution gaussienne de l'erreur, n'est pas exacte (elle surestime p, le dépassement du niveau alpha se produit moins souvent en "réalité"). Voir la comparaison suivante:
La courbe noire représente l'égalité. La courbe rouge est en dessous. Cela signifie que pour une valeur de p calculée calculée par la fonction de résumé glm, nous trouvons cette situation (ou une différence plus grande) moins souvent en réalité que la valeur de p ne l'indique.
la source