23 votos

Coeficiente del modelo de prueba (pendiente de regresión) frente a algún valor

En R, cuando tengo un modelo lineal (generalizado) ( lm , glm , gls , glmm ...), ¿cómo puedo contrastar el coeficiente (pendiente de regresión) con cualquier otro valor distinto de 0? En el resumen del modelo, se informa automáticamente de los resultados de la prueba t del coeficiente, pero sólo para la comparación con 0. Quiero compararlo con otro valor.

Sé que puedo usar un truco con reparametrización y ~ x como y - T*x ~ x donde T es el valor probado, y ejecutar este modelo reparametrizado, pero busco una solución más simple, que posiblemente funcionaría en el modelo original.

0 votos

22voto

AdamSane Puntos 1825

He aquí una solución más amplia que funcionará con cualquier paquete, o incluso si sólo tiene el resultado de la regresión (como el de un artículo).

Tome el coeficiente y su error estándar.

Compute $t=\frac{\hat{\beta}-\beta_{H_0}}{\text{s.e.}(\hat{\beta})}$ . El f.d. para el $t$ son los mismos que para una prueba con $H_0: \beta=0$ .

1 votos

Gracias Glen, lo sé por [esta gran respuesta]. Pero, ¿cómo voy a obtener el valor p a partir del valor t?

3 votos

@Curious pt()

0 votos

@Curious: Como dice Affinem la función R pt - o cualquier otra cosa que te dé el valor de t cdfs. Muchos paquetes los tienen, y hay tablas t ampliamente disponibles.

16voto

stiduck Puntos 450

Puede utilizar una prueba t simple como la propuesta por Glen_b, o una prueba de Wald más general.

La prueba de Wald permite contrastar múltiples hipótesis sobre múltiples parámetros. Se formula como: $R\beta=q$ donde R selecciona (una combinación de) coeficientes, y q indica el valor contra el que se va a probar, $\beta$ que son los coeficientes de regresión estándar.

En su ejemplo, en el que sólo tiene una hipótesis sobre un parámetro, R es un vector de filas, con un valor de uno para el parámetro en cuestión y cero en el resto, y q es un escalar con la restricción a probar.

En R, puede ejecutar una prueba de Wald con la función hipótesis lineal() del paquete coche . Supongamos que desea comprobar si el segundo coeficiente (indicado por el argumento matriz.hipótesis ) es diferente de 0,1 (argumento rhs ):

reg <- lm(freeny)
coef(reg)

# wald test for lag.quarterly.revenue =0.1
>library(car)
>linearHypothesis(reg, hypothesis.matrix = c(0, 1, rep(0,3)), rhs=0.1)
#skip some result, look at last value on last row, of Pr(>F) 
  Res.Df       RSS Df  Sum of Sq      F Pr(>F)
1     35 0.0073811                            
2     34 0.0073750  1 6.0936e-06 0.0281 0.8679

Para la prueba t, esta función implementa la prueba t mostrada por Glen_b:

ttest <- function(reg, coefnum, val){
  co <- coef(summary(reg))
  tstat <- (co[coefnum,1]-val)/co[coefnum,2]
  2 * pt(abs(tstat), reg$df.residual, lower.tail = FALSE)
}

> ttest(reg, 2,0.1)
[1] 0.8678848

Asegurémonos de que hemos obtenido el procedimiento correcto comparando el Wald, nuestra prueba t y la prueba t por defecto R, para la hipótesis estándar de que el segundo coeficiente es cero:

> linearHypothesis(reg, hypothesis.matrix = c(0, 1, rep(0,3)), rhs=0)[["Pr(>F)"]][2]
[1] 0.3904361
> ttest(reg, 2,0)
[1] 0.3904361
## The 'right' answer from R:
> coef(summary(reg))[2,4]
[1] 0.3904361

Debería obtener el mismo resultado con los tres procedimientos.

0 votos

¡Tiene buena pinta! ¿Puede explicar el hypothesis.matrix ¿Parámetro?

0 votos

No estoy seguro de que la prueba de Wald lo haga. Me refería a utilizar la prueba t normal que se informa de forma estándar junto con los parámetros, pero no con 0 sino con algún otro valor.

0 votos

@Curious ¿Espero que ahora esté más claro?

3voto

Iwasakabukiman Puntos 518

Al final, la solución más fácil era hacer la reparametrización:

gls(I(y - T*x) ~ x, ...)

0 votos

¿Producirá los mismos resultados?

0 votos

Pero estás restando algo no independiente. ¿No sería un problema con los supuestos de mínimos cuadrados o con la colinealidad? ¿En qué se diferencia de lm(y ~ x + +offset(T*x))?

1 votos

@skan la regresión es condicional a x, no hay dependencia ahí; debería ser lo mismo que usar offset.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X