Яка сила тесту на регресію F?


11

Класичний F-тест для підмножини змінних у багатолінійній регресії має вигляд деSSE(R)- це сума помилок у квадраті за 'зменшеною' моделлю, яка гніздиться всередині 'великої' моделіB, аdf- ступеня свободи двох моделей. Згідно з нульовою гіпотезою, що додаткові змінні в 'великій' моделі не мають лінійної пояснювальної сили, статистика розподіляється як F зdfR-dfBіdfBступенями свободи.

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

Яке ж розподіл є альтернативним? Я припускаю, що це не центральний F (я сподіваюся, що не вдвічі більше не центральний), але я не можу знайти жодної посилання на те, що саме є нецентральним параметром. Я буду здогадуватися, що це залежить від справжніх коефіцієнтів регресії , і, мабуть, від проектної матриці X , але поза цим я не дуже впевнений.βX

Відповіді:


9

Параметр нецентральності , проекція для обмеженої моделі P r , β - вектор істинних параметрів, X - матриця проектування для необмеженої (істинної) моделі, | | х | | є нормою:δ2PrβX||x||

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

Ви можете прочитати формулу як це: вектор очікуваних значень обумовлюють конструкцій матриці X . Якщо розглядати Е β в якості емпіричному вектора даних у , то її проекція на обмежену моделі підпростір Р т Х & beta ; , що дає вам пророкування у від обмеженою моделі для цього «даних». Отже, Х β - Р г Х β аналогічна у - уE(y|X)=XβXXβyPrXβy^XβPrXβyy^і дає вам помилку цього прогнозу. Звідси наведена сума квадратів цієї помилки. Якщо модель з обмеженням істинна, то X β вже знаходиться в підпросторі, визначеному X r , а P r X β = X β , таким чином, що параметр нецентральності дорівнює 0 .||XβPrXβ||2XβXrPrXβ=Xβ0

Ви повинні знайти це в Мардії, Кенті та Біббі. (1980). Багатоваріантний аналіз.


чудово! чи має бути норма в квадраті? Інакше здається, що одиниці мають значення? Ви
заявляєте,

@shabbychef Звичайно, ви маєте рацію, дякую, що це зробили!
каракал

7

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

емпіричний CDF того, що має бути нормальним

Ось код R (пробачте, стиль я все ще вчу):

#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 для подальшого контролю з кодом. Завжди добре це бачити.
mpiktas
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.