Estoy interesado en cambiar las hipótesis nulas usando glm()
en R.
Por ejemplo:
x = rbinom(100, 1, .7)
summary(glm(x ~ 1, family = "binomial"))
prueba la hipótesis de que . ¿Qué pasa si quiero cambiar el valor nulo a = algún valor arbitrario, dentro ? glm()
Sé que esto también se puede hacer con prop.test()
y chisq.test()
, pero me gustaría explorar la idea de usar glm()
para probar todas las hipótesis relacionadas con datos categóricos.
r
hypothesis-testing
generalized-linear-model
chi-squared
offset
Bill Ravenwood
fuente
fuente
glm
defecto) es el logit, para evitar confusiones es importante distinguirRespuestas:
Puede usar un desplazamiento :β0=0 p q=logit(p)=log(p/(1−p))
glm
confamily="binomial"
parámetros estimados en la escala de log-odds o logit, entonces corresponde a log-odds de 0 o una probabilidad de 0.5. Si desea comparar con una probabilidad de , desea que el valor de referencia sea . El modelo estadístico es ahorap q = logit ( p ) = log ( p / ( 1 - p ) )donde solo la última línea ha cambiado desde la configuración estándar. En código R:
offset(q)
en la fórmulaqlogis(p)
rep(q,100)
.fuente
glm(y ~ offset(q)-1, family=binomial, data=dd)
y utilizandolrtest
ellmtest
paquete. La prueba de chi-cuadrado de Pearson es la prueba de puntaje para el modelo GLM. Wald / LRT / Score son pruebas consistentes y deben proporcionar una inferencia equivalente en tamaños de muestra razonablemente grandes.anova()
desde la base R en el glm para obtener una prueba de LRlrtest
hace.anova(.,test="Chisq")
?Mire el intervalo de confianza para los parámetros de su GLM:
Este es un intervalo de confianza para las probabilidades de registro.
Para tenemos . Por lo tanto, probar la hipótesis de que es equivalente a verificar si el intervalo de confianza contiene 0. Este no, por lo que la hipótesis se rechaza.log ( o d d s ) = log pp=0.5 log(odds)=logp1−p=log1=0 p=0.5
Ahora, para cualquier arbitraria , puede calcular las probabilidades de registro y verificar si está dentro del intervalo de confianza.p
fuente
confint
. Por lo tanto, no es solo para . Por supuesto, su solución es mucho mejor cuando se trata de calcular el valor pNo es (del todo) correcto / exacto usar los valores p basados en los valores z- / t en la función glm.summary como prueba de hipótesis.
Es un lenguaje confuso. Los valores informados se denominan valores z. Pero en este caso utilizan el error estándar estimado en lugar de la verdadera desviación. Por lo tanto, en realidad están más cerca de los valores t . Compare los siguientes tres resultados:
1) summary.glm
2) prueba t
3) prueba z
No son valores p exactos. Un cálculo exacto del valor p utilizando la distribución binomial funcionaría mejor (con la potencia de cálculo hoy en día, esto no es un problema). La distribución t, suponiendo una distribución gaussiana del error, no es exacta (sobreestima p, exceder el nivel alfa ocurre con menos frecuencia en la "realidad"). Vea la siguiente comparación:
La curva negra representa la igualdad. La curva roja está debajo de ella. Eso significa que para un valor p calculado dado por la función de resumen glm, encontramos esta situación (o una diferencia mayor) en la realidad con menos frecuencia de lo que indica el valor p.
fuente