Qual è la potenza del test di regressione F?


11

Il classico test F per sottoinsiemi di variabili nella regressione multilineare ha la forma dove è la somma degli errori al quadrato nel modello "ridotto", che nidifica nel modello "grande" , e sono i gradi di libertà del due modelli. Nell'ipotesi nulla che le variabili extra nel modello "grande" non abbiano un potere esplicativo lineare, la statistica è distribuita come F con gradi di libertà e .SSE(R)BdfdfR-dfBdfB

F=(SSE(R)SSE(B))/(dfRdfB)SSE(B)/dfB,
SSE(R)BdfdfRdfBdfB

Qual è la distribuzione, tuttavia, in alternativa? Presumo che sia una F non centrale (spero non doppiamente non centrale), ma non riesco a trovare alcun riferimento su quale sia esattamente il parametro di non centralità. Immagino che dipenda dai veri coefficienti di regressione e probabilmente dalla matrice di progettazione , ma oltre a ciò non ne sono così sicuro.XβX

Risposte:


9

Il parametro noncentrality è , la proiezione per il modello con restrizioni è , è il vettore di parametri veri, è la matrice di progettazione per il modello senza restrizioni (vero),è la norma: P r β X | | x | |δ2PrβX||x||

δ2=||XβPrXβ||2σ2

È possibile leggere la formula in questo modo: è il vettore dei valori attesi condizionali sulla matrice di progettazione . Se trattate come un vettore di dati empirici , la sua proiezione sul sottospazio del modello con restrizioni è , che fornisce la previsione dal modello con restrizioni per quei "dati". Di conseguenza, è analogo a e ti dà l'errore di quella previsione. Quindi fornisce la somma dei quadrati di quell'errore. Se il modello con restrizioni è true, quindiX X β y P r X β y X β - P r X β y - y | | X β - P r X β | | 2 X β X r P r X β = X β 0E(y|X)=XβXXβyPrXβy^XβPrXβyy^||XβPrXβ||2Xβè già all'interno del sottospazio definito da e , in modo tale che il parametro di non centralità sia .XrPrXβ=Xβ0

Dovresti trovarlo a Mardia, Kent e Bibby. (1980). Analisi multivariata.


grande! la norma dovrebbe essere quadrata? Altrimenti sembra che le unità contino?
Affermate

@shabbychef Certo che hai ragione, grazie per averlo colto!
Caracal,

7

Ho confermato la risposta di @ caracal con un esperimento di Monte Carlo. Ho generato istanze casuali da un modello lineare (con la dimensione casuale), calcolato la statistica F e calcolato il valore p usando il parametro di non centralità poi ho tracciato il cdf empirico di questi valori p. Se il parametro di non centralità (e il codice!) È corretto, dovrei ottenere un cdf quasi uniforme, che è il caso:

δ2=||Xβ1Xβ2||2σ2,

CDF empirico di ciò che dovrebbe essere normale

Ecco il codice R (scusate lo stile, sto ancora imparando):

#sum of squares
sum2 <- function(x) { return(sum(x * x)) }
#random integer between n and 2n
rint <- function(n) { return(ceiling(runif(1,min=n,max=2*n))) }
#generate random instance from linear model plus noise.
#n observations of p2 vector
#regress against all variables and against a subset of p1 of them
#compute the F-statistic for the test of the p2-p1 marginal variables
#compute the p-value under the putative non-centrality parameter
gend <- function(n,p1,p2,sig = 1) {
 beta2 <- matrix(rnorm(p2,sd=0.1),nrow=p2)
 beta1 <- matrix(beta2[1:p1],nrow=p1)
 X <- matrix(rnorm(n*p2),nrow=n,ncol=p2)
 yt1 <- X[,1:p1] %*% beta1
 yt2 <- X %*% beta2
 y <- yt2 + matrix(rnorm(n,mean=0,sd=sig),nrow=n)
 ncp <- (sum2(yt2 - yt1)) / (sig ** 2)
 bhat2 <- lm(y ~ X - 1)
 bhat1 <- lm(y ~ X[,1:p1] - 1)
 SSE1 <- sum2(bhat1$residual)
 SSE2 <- sum2(bhat2$residual)
 df1 <- bhat1$df.residual
 df2 <- bhat2$df.residual
 Fstat <- ((SSE1 - SSE2) / (df1 - df2)) / (SSE2 / bhat2$df.residual)
 pval <- pf(Fstat,df=df1-df2,df2=df2,ncp=ncp)
 return(pval)
}
#call the above function, but randomize the problem size (within reason)
genr <- function(n,p1,p2,sig=1) {
 use.p1 <- rint(p1)
 use.p2 <- use.p1 + rint(p2 - p1)
 return(gend(n=rint(n),p1=use.p1,p2=use.p2,sig=sig+runif(1)))
}
ntrial <- 4096
ssize <- 256
z <- replicate(ntrial,genr(ssize,p1=4,p2=10))
plot(ecdf(z))

2
+1 per il follow-up con il codice. Sempre bello vederlo.
mpiktas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.