El punto de prueba es que desea rechazar su hipótesis nula, no confirmarla. El hecho de que no haya una diferencia significativa no es en modo alguno una prueba de la ausencia de una diferencia significativa. Para eso, tendrás que definir qué tamaño de efecto consideras razonable para rechazar el nulo.
s l o p e - 1
set.seed(20); y = rnorm(20); x = y + rnorm(20, 0, 0.2)
model <- lm(y~x)
coefx <- coef(summary(model))[2,1]
seslope <- coef(summary(model))[2,2]
DF <- model$df.residual
# normal test
p <- (1 - pt(coefx/seslope,DF) )*2
# test whether different from 1
p2 <- (1 - pt(abs(coefx-1)/seslope,DF) )*2
Ahora debe tener en cuenta el hecho de que el tamaño del efecto para el cual una diferencia se vuelve significativa, es
> qt(0.975,DF)*seslope
[1] 0.08672358
siempre que tengamos un estimador decente del error estándar en la pendiente. Por lo tanto, si decide que solo se debe detectar una diferencia significativa de 0.1, puede calcular el DF necesario de la siguiente manera:
optimize(
function(x)abs(qt(0.975,x)*seslope - 0.1),
interval=c(5,500)
)
$minimum
[1] 6.2593
Eso sí, esto depende bastante de la estimación del seslope. Para obtener una mejor estimación de seslope, puede hacer un nuevo muestreo de sus datos. Una manera ingenua sería:
n <- length(y)
seslope2 <-
mean(
replicate(n,{
id <- sample(seq.int(n),1)
model <- lm(y[-id]~x[-id])
coef(summary(model))[2,2]
})
)
poniendo seslope2 en la función de optimización, devuelve:
$minimum
[1] 6.954609
Todo esto le indicará que su conjunto de datos arrojará un resultado significativo más rápido de lo que considere necesario, y que solo necesita 7 grados de libertad (en este caso, 9 observaciones) si desea asegurarse de que no significativo significa lo que quiere. medio.