1 lmPerm 包的置換檢驗
lmPerm包可做線性模型的置換檢驗。比如lmp()和aovp()函數即lm()和aov()函數的修改版,能夠進行置換檢驗,而非正態理論檢驗。lmp()和aovp()函數的參數與lm()和aov()函數類似,只額外添加了perm=參數。perm=選項的可選值有Exact、Prob或SPR。Exact根據所有可能的排列組合生成精確檢驗。Prob從所有可能的排列中不斷抽樣,直至估計的標准差在估計的p值0.1之下,判停准則由可選的Ca參數控制。SPR使用貫序概率比檢驗來判斷何時停止抽樣。注意,若觀測數大於10,perm="Exact"將自動默認轉為perm="Prob",因為精確檢驗只適用於小樣本問題。
1.1 簡單回歸和多項式回歸
(1)簡單線性回歸的置換檢驗
library(lmPerm)
set.seed(1234)
fit <- lmp(weight~height, data=women, perm="Prob")
summary(fit)

結果分析:p=2e-16在0到0.001之間,有三顆星星,表示效果最好。
(2)多項式回歸的置換檢驗
library(lmPerm)
set.seed(1234)
fit <- lmp(weight~height + I(height^2), data=women, perm="Prob")
summary(fit)

結果分析:p=2e-16,並且關於height的二次方的p值也在0到0.001之間,有三顆星星,表示效果最好,與上面簡單線性回歸的置換檢驗效果差不多。
1.2 多元回歸
多元回歸被用來通過美國50個州的人口數、文盲率、收入水平和結霜天數預測犯罪率。將lmp()函數應用到此問題:
library(lmPerm)
set.seed(1234)
states <- as.data.frame(state.x77)
fit <- lmp(Murder~Population + Illiteracy+Income+Frost, data=states, perm="Prob")
summary(fit)

結果分析:謀殺率Murder與文盲率Illiteracy之間的關系緊密,因為后面有三顆星星。
1.3 單因素方差分析和協方差分析
(1)單因素方差分析的置換檢驗
library(lmPerm)
library(multcomp)
set.seed(1234)
fit <- aovp(response~trt, data=cholesterol, perm="Prob")
anova(fit)

結果分析:各種療法對降低膽固醇的影響的效果不全相同。
(2)單因素協方差分析的置換檢驗
問題:當控制妊娠期時間相同時,觀測四種葯物劑量對鼠崽體重的影響。
library(lmPerm)
set.seed(1234)
fit <- aovp(weight ~ gesttime + dose, data=litter, perm="Prob")
anova(fit)

結果分析:依據p值可知,當控制妊娠期時間gesttime相同時,四種葯物劑量dose對鼠崽的體重weight影響不相同。
1.4 雙因素方差分析
維生素C對豚鼠牙齒生長的影響為例,該實驗兩個可操作的因子是劑量dose(三水平)和喂食方式supp(兩水平)。10只豚鼠分別被分配到每種處理組合中,形成一個3×2的析因實驗設計。
set.seed(1234)
fit <- aovp(len~supp*dose, data=ToothGrowth, perm="Prob")
anova(fit)

結果分析:在0.05的顯著性水平下,三種效應都不等於0;在0.01的水平下(0.01到0.05之間只有一顆星),只有主效應顯著。
置換檢驗點評:基於正態理論的檢驗與上面置換檢驗的結果非常接近。置換檢驗真正發揮功用的地方是處理非正態數據(如分布偏倚很大)、存在離群點、樣本很小或無法做參數檢驗等情況。
