Il punto di prova è che vuoi rifiutare la tua ipotesi nulla, non confermarla. Il fatto che non vi sia alcuna differenza significativa, non è in alcun modo una prova dell'assenza di una differenza significativa. Per questo, dovrai definire la dimensione dell'effetto che ritieni ragionevole rifiutare il null.
Testare se la pendenza è significativamente diversa da 1 non è poi così difficile, basta verificare se la differenza s l o p e - 1differisce significativamente da zero. A mano questo sarebbe qualcosa del tipo:
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
Ora dovresti essere consapevole del fatto che la dimensione dell'effetto per cui una differenza diventa significativa è
> qt(0.975,DF)*seslope
[1] 0.08672358
purché disponiamo di uno stimatore decente dell'errore standard sulla pendenza. Pertanto, se si decide che una differenza significativa deve essere rilevata solo da 0,1, è possibile calcolare il DF necessario come segue:
optimize(
function(x)abs(qt(0.975,x)*seslope - 0.1),
interval=c(5,500)
)
$minimum
[1] 6.2593
Intendiamoci, questo dipende abbastanza dalla stima della seslope. Per ottenere una stima migliore su seslope, è possibile effettuare un ricampionamento dei dati. Un modo ingenuo sarebbe:
n <- length(y)
seslope2 <-
mean(
replicate(n,{
id <- sample(seq.int(n),1)
model <- lm(y[-id]~x[-id])
coef(summary(model))[2,2]
})
)
mettendo seslope2 nella funzione di ottimizzazione, restituisce:
$minimum
[1] 6.954609
Tutto ciò ti dirà che il tuo set di dati restituirà un risultato significativo più velocemente di quanto ritieni necessario e che hai solo bisogno di 7 gradi di libertà (in questo caso 9 osservazioni) se vuoi essere sicuro che non significativo significhi ciò che vuoi si intende.