F檢驗與Tukey HSD檢驗的對立假設方向圖解
《統計軟體應用》第12周課堂練習
November 29, 2018本例演示虛無假設 下的10000次獨立重複模擬,每次重複得到獨立三組均值的
統計量
在三維空間中的點,從
向量指向的視角窺視。題圖中,三個
軸分別畫為紅、綠、藍。在視角下,所見平面的
軸表徵
,與三維空間的紅軸在該視角下重疊。與
軸垂直的平面
軸表徵
。
統計量的等值線是同心圓;Tukey統計量的等值線是正六邊形。方差分析
檢驗與事後Tukey HSD檢驗的虛無假設相同。兩個檢驗的對立假設在K-1維(本例即2維平面)方向不同。本文最後兩圖展示方差分析與Tukey檢驗可以互有出入,達到0.05顯著閾值的模擬點畫為空心圓。
n=1e4;df=20
library(latex2exp)
Ts <- matrix(ncol=3,rnorm(3*n) )/ cbind((rchisq(n,df=df)/df)^.5)%*%rbind(c(1,1,1))
## 獨立三組,均衡設計,模擬生成三組均值的T統計量
F_t <- apply(Ts,1,function(ys) sum((ys-mean(ys))^2)/2)
Tukey_t <- apply(Ts,1,function(ys) max(ys)-min(ys))
qqplot(F_t,x = qf(ppoints(F_t),df1 = 2,df2 = df),asp=1,xlab = Expected F,ylab = Observed F)
abline(c(0,1),lty=2)
qqplot(qtukey(ppoints(Tukey_t),nmeans = 3,df = df),Tukey_t,asp=1,xlab = Expected Tukey,ylab = Observed Tukey)
abline(c(0,1),lty=2)
plot(pf(F_t,2,df),ptukey(Tukey_t,nmeans = 3,df = df),asp=1,pch=.,xlim = c(0,1),ylim = c(0,1),xlab = Cumulative Probability of F,ylab = Cumulative Probability of Tukey)
abline(c(0,1),lty=2)
abline(v=1-.05,h=1-.05,lty=3)
P_mt <- cbind(c(1,1,1)/ 3^.5,
c(1,-1/2,-1/2)/ 1.5^.5,
c(0,1,-1)/ 2^.5)
round(P_mt %*% t(P_mt),digits = 14)
## [,1] [,2] [,3]
## [1,] 1 0 0
## [2,] 0 1 0
## [3,] 0 0 1
xyz <- function(Ts){
Ts %*% P_mt[,2:3]
}
xy <- xyz(Ts)
col_F <- floor(pf(F_t,df1 = 2,df2 = df)*df)+1
col_Tukey <- floor(ptukey(Tukey_t,nmeans = 3,df = df)*df)+1
col10<-c(rbind(grey(seq(0.7,0.3,length.out = 5)),rainbow(5)))
col10<-col10[c(10:1,10:1)]
plot(xy,asp=1,pch=ifelse(col_F<20,.,o),col=col10[col_F],
main = F Test,
xlab=TeX("$T_{M_1 - (M_2 + M_3)/2}$"),
ylab=TeX("T_{M_2-M_3}"))
points(xyz(cbind(seq(0,max(Ts),length.out = n),0,0)),pch=.,col=red)
points(xyz(cbind(0,seq(0,max(Ts),length.out = n),0)),pch=.,col=green)
points(xyz(cbind(0,0,seq(0,max(Ts),length.out = n))),pch=.,col=blue)
for (p in seq(.05,.95,.05)){
r_p <-xyz(c(0,t2 <- (qf(p,2,df) )^.5, -t2))[2];
lines(r_p*cos(theta<-seq(0,6,length.out = 1e3) * pi/3),r_p*sin(theta),col=ifelse(p<.95,grey,black))
}
r_p <-xyz(c(0,t2 <- qtukey(p,nmeans = 3,df) /2, -t2))[2] / (3^.5 /2);
lines(r_p*cos(theta<-(0:6) * pi/3),r_p*sin(theta),lty=2)
plot(xy,asp=1,pch=ifelse(col_Tukey<20,.,o),col=col10[col_Tukey],
main = "Tukey Test",
xlab=TeX("$T_{M_1 - (M_2 + M_3)/2}$"),
ylab=TeX("T_{M_2-M_3}"))
points(xyz(cbind(seq(0,max(Ts),length.out = n),0,0)),pch=.,col=red)
points(xyz(cbind(0,seq(0,max(Ts),length.out = n),0)),pch=.,col=green)
points(xyz(cbind(0,0,seq(0,max(Ts),length.out = n))),pch=.,col=blue)
for (p in seq(.05,.95,.05)){
r_p <-xyz(c(0,t2 <- qtukey(p,nmeans = 3,df) /2, -t2))[2] / (3^.5 /2);
lines(r_p*cos(theta<-(0:6) * pi/3),r_p*sin(theta),col=ifelse(p<.95,grey,black))
}
r_p <-xyz(c(0,t2 <- (qf(p,2,df) )^.5, -t2))[2];
lines(r_p*cos(theta<-seq(0,6,length.out = 1e3) * pi/3),r_p*sin(theta),lty=2)
推薦閱讀: