《統計軟體應用》第12周課堂練習

[email protected]

November 29, 2018

本例演示虛無假設 mu_1=mu_2=mu_3 下的10000次獨立重複模擬,每次重複得到獨立三組均值的 T 統計量 T_1,T_2,T_3 在三維空間中的點,從 left[ egin{align}   & {{T}_{1}} \   & {{T}_{2}} \   & {{T}_{3}} \  end{align} 
ight] = left[ egin{align}   & 1 \   & 1 \   & 1 \  end{align} 
ight] 向量指向的視角窺視。題圖中,三個 T 軸分別畫為紅、綠、藍。在視角下,所見平面的 x 軸表徵 T_{M_1-left( M_2+M_3 
ight)/2} ,與三維空間的紅軸在該視角下重疊。與 x 軸垂直的平面 y 軸表徵 T_{M_2-M_3}

F 統計量的等值線是同心圓;Tukey統計量的等值線是正六邊形。方差分析 F 檢驗與事後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統計量

{{T}_{j}}=frac{sqrt{n}left( {{M}_{j}}-{{mu }_{Nul}} 
ight)}{sqrt{MSe}};j=1,2,3

F_t <- apply(Ts,1,function(ys) sum((ys-mean(ys))^2)/2)

frac{SSleft( left. {{T}_{j}} 
ight|j=1,2,3 
ight)}{3-1}=frac{S{{S}_{between}}/left( 3-1 
ight)}{MSe}={{F}_{3-1,d{{f}_{e}}}}

Tukey_t <- apply(Ts,1,function(ys) max(ys)-min(ys))

Rangeleft( left. {{T}_{j}} 
ight|j=1,2,3 
ight)=frac{sqrt{n}	imes Rangeleft( left. {{M}_{j}} 
ight|j=1,2,3 
ight)}{sqrt{MSe}}=Tuke{{y}_{3,d{{f}_{e}}}}

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)

推薦閱讀:

查看原文 >>
相关文章