Del Quick-R de Robert Kabacoff tengo
# Bootstrap 95% CI for regression coefficients
library(boot)
# function to obtain regression weights
bs <- function(formula, data, indices) {
d <- data[indices,] # allows boot to select sample
fit <- lm(formula, data=d)
return(coef(fit))
}
# bootstrapping with 1000 replications
results <- boot(data=mtcars, statistic=bs,
R=1000, formula=mpg~wt+disp)
# view results
results
plot(results, index=1) # intercept
plot(results, index=2) # wt
plot(results, index=3) # disp
# get 95% confidence intervals
boot.ci(results, type="bca", index=1) # intercept
boot.ci(results, type="bca", index=2) # wt
boot.ci(results, type="bca", index=3) # disp
¿Cómo puedo obtener los valores p de los coeficientes de regresión bootstrap?
r
regression
p-value
bootstrap
ECII
fuente
fuente
Respuestas:
Solo otra variante que es algo simplista, pero creo que entregar el mensaje sin usar explícitamente la biblioteca
boot
que puede confundir a algunas personas con la sintaxis que usa.Tenemos un modelo lineal: ,y=Xβ+ϵ ϵ∼N(0,σ2)
La siguiente es una rutina de arranque paramétrica para ese modelo lineal, lo que significa que no volveremos a muestrear nuestros datos originales, pero en realidad generamos nuevos datos a partir de nuestro modelo ajustado. Además, suponemos que la distribución de arranque del coeficiente de regresión es simétrica y que la traducción es invariante. (Hablando en términos generales de que podemos mover su eje afectando sus propiedades) La idea detrás es que las fluctuaciones en los 's se deben a y, por lo tanto, con suficientes muestras deberían proporcionar una buena aproximación de la distribución real de 's. Como antes, probamos nuevamente y definimos nuestros valores p comoβ β ϵ β H0:0=βj "la probabilidad, dada una hipótesis nula para la distribución de probabilidad de los datos, de que el resultado sería tan extremo o más extremo que el resultado observado" (donde los resultados observados en este caso son los's que obtuvimos para nuestro modelo original). Entonces aquí va:β
Como se mencionó, la idea es que la distribución de arranque de aproxima a la verdadera. (Claramente, este código está optimizado para la velocidad pero para la legibilidad. :))β
fuente
La comunidad y @BrianDiggs pueden corregirme si estoy equivocado, pero creo que puede obtener un valor p para su problema de la siguiente manera. Un valor p para una prueba de dos lados se define como
Entonces, si ordena los coeficientes bootstrapped por tamaño y luego determina las proporciones mayores y menores de cero, la proporción mínima multiplicada por dos debería darle un valor p.
Normalmente uso la siguiente función en tal situación:
fuente
El bootstrap se puede usar para calcular los valores , pero necesitaría un cambio sustancial en su código. Como no estoy familiarizado con RI, solo puedo darle una referencia en la que puede buscar lo que necesitaría hacer: el capítulo 4 de (Davison y Hinkley 1997).p
Davison, AC y Hinkley, DV 1997. Métodos Bootstrap y su aplicación. Cambridge: Cambridge University Press.
fuente