R語言析因設(shè)計分析:線性模型中的對比
對比度可用于對線性模型中的處理進行比較。
常見的用途是使用析因設(shè)計時,除析因設(shè)計外還使用控制或檢查處理。在下面的第一個示例中,有兩個級別(1和2)的兩個處理(D和C),然后有一個對照?處理。此處使用的方法是方差的單向分析,然后使用對比來檢驗各種假設(shè)。
在下面的第二個示例中,對六種葡萄酒進行了測量,其中一些是紅色,而有些是白色。我們可以比較的治療中通過設(shè)置對比,并進行F檢驗紅酒組。這類似于測試紅酒的主要效果。
??
?
使用的軟件包
如果尚未安裝這些軟件包,則以下命令將安裝它們:
if(!require(car)){install.packages("car")}
if(!require(lsmeans){install.packages("lsmeans")}
if(!require(multcomp)){install.packages("multcomp")}
?
單自由度對比示例
這個假設(shè)的例子可以代表一項采用階乘設(shè)計的實驗,其中兩個處理(D和C)分別處于兩個級別(1?和2),并且是對照處理。
?
Data = read.table(textConnection(Input),header=TRUE)
Data$Treatment = factor(Data$Treatment,
levels=unique(Data$Treatment))
Data
boxplot(Response ~ Treatment,
data = Data,
ylab="Response",
xlab="Treatment")
### ?Define linear model
model = lm(Response ~ Treatment,
data = Data)
library(car)
Anova(model, type="II")
summary(model)

?
?
?
lsmeans示例
?
contrast ? ? ? ? ? estimate ? ? ? ?SE df t.ratio p.value
D1vsD2 ? ? ? ? ?-0.83333333 0.1549193 10 ?-5.379 ?0.0031
C1vsC2 ? ? ? ? ?-2.10000000 0.1549193 10 -13.555 ?<.0001
InteractionDC ? ?0.03333333 0.1549193 10 ? 0.215 ?1.0000
C1vsC2forD1only -1.03333333 0.1095445 10 ?-9.433 ?<.0001
C1vsC2forD2only -1.06666667 0.1095445 10 ?-9.737 ?<.0001
TreatsvsControl ?3.96666667 0.3464102 10 ?11.451 ?<.0001
T1vsC ? ? ? ? ? ?0.26666667 0.1095445 10 ? 2.434 ?0.3011
T2vsC ? ? ? ? ? ?1.30000000 0.1095445 10 ?11.867 ?<.0001
T3vsC ? ? ? ? ? ?0.66666667 0.1095445 10 ? 6.086 ?0.0012
T4vsC ? ? ? ? ? ?1.73333333 0.1095445 10 ?15.823 ?<.0001
?由于調(diào)整方法不同,p值與multcomp?###的p值略有不同。?
?? ###兩個過程的調(diào)整方法,
?? ### p值和其他統(tǒng)計信息,將是相同的。
?? ###使用
?? Adjust?=“ none”,結(jié)果將與### aov方法相同。
multcomp示例
Estimate Std. Error t value Pr(>|t|)
D1vsD2 == 0 ? ? ? ? ?-0.83333 ? ?0.15492 ?-5.379 ?0.00218 **
C1vsC2 == 0 ? ? ? ? ?-2.10000 ? ?0.15492 -13.555 ?< 0.001 ***
InteractionDC == 0 ? ?0.03333 ? ?0.15492 ? 0.215 ?0.99938
C1vsC2forD1only == 0 -1.03333 ? ?0.10954 ?-9.433 ?< 0.001 ***
C1vsC2forD2only == 0 -1.06667 ? ?0.10954 ?-9.737 ?< 0.001 ***
TreatsvsControl == 0 ?3.96667 ? ?0.34641 ?11.451 ?< 0.001 ***
T1vsC == 0 ? ? ? ? ? ?0.26667 ? ?0.10954 ? 2.434 ?0.17428
T2vsC == 0 ? ? ? ? ? ?1.30000 ? ?0.10954 ?11.867 ?< 0.001 ***
T3vsC == 0 ? ? ? ? ? ?0.66667 ? ?0.10954 ? 6.086 ?< 0.001 ***
T4vsC == 0 ? ? ? ? ? ?1.73333 ? ?0.10954 ?15.823 ?< 0.001 ***
?
一組治療中的全局F檢驗示例
該示例具有由三種紅酒和三種白葡萄酒組成的處理。我們將想知道紅酒組中的處理是否對響應(yīng)變量有影響。這種方法之所以具有優(yōu)勢,是因為仍可以在紅酒中進行事后比較。
?
boxplot(Response ~ Treatment,
data = Data,
ylab="Response",
xlab="Treatment")

?
?
?
與lsmeans?的對比測試
?
問題:紅酒中有功效嗎?
?
?
test(Test, joint=TRUE)
df1 df2 ? ?F p.value
2 ?12 24.3 ?0.0001
使用2個自由度進行了一次假設(shè)檢驗。這調(diào)查了
### 3組治療的效果。
###結(jié)果與multcomp的結(jié)果基本相同
問題:白葡萄酒有效果嗎?
?
test(Test, joint=TRUE)
df1 df2 ? F p.value
2 ?12 0.3 ?0.7462
兩行對比
使用2個自由度進行了一次假設(shè)檢驗。本研究調(diào)查了
###一組3種治療方法中的效果
###結(jié)果與multcomp的結(jié)果相同
?
問題:紅葡萄酒和白葡萄酒之間有區(qū)別嗎?而且,紅酒的平均分離度
?
contrast ? ? ? ?estimate ? ? ? SE df t.ratio p.value
Red_vs_white ? ? ? ? ?21 1.490712 12 ?14.087 ?<.0001
Merlot_vs_Cab ? ? ? ? -3 0.860663 12 ?-3.486 ?0.0179
Cab_vs_Syrah ? ? ? ? ?-3 0.860663 12 ?-3.486 ?0.0179
Syrah_vs_Merlot ? ? ? ?6 0.860663 12 ? 6.971 ?0.0001
請注意,p值是
?? 由于調(diào)整方法不同,因此與multcomp? 不同。?
?
使用Multcomp?進行對比測試
?
問題:紅酒中有功效嗎?
?
Global Test:
F ?DF1 ?DF2 ? ? Pr(>F)
1 ?24.3 ? ?2 ? 12 ?6.029e-05
?
問題:白葡萄酒有效果嗎?
?
Global Test:
F DF1 DF2 Pr(>F)
1 0.3 ? 2 ?12 0.7462
?
問題:紅葡萄酒和白葡萄酒之間有區(qū)別嗎?
?
### Adjustment options: "none", "single-step", "Shaffer",
### ? ? ? ? ? ? ? ? ? ? "Westfall", "free", "holm", "hochberg",
### ? ? ? ? ? ? ? ? ? ? "hommel", "bonferroni", "BH", "BY", "fdr"
Linear Hypotheses:
Estimate Std. Error t value Pr(>|t|)
Red_vs_white == 0 ? ? 21.0000 ? ? 1.4907 ?14.087 ? <0.001 ***
Merlot_vs_Cab == 0 ? ?-3.0000 ? ? 0.8607 ?-3.486 ? 0.0157 *
Cab_vs_Syrah == 0 ? ? -3.0000 ? ? 0.8607 ?-3.486 ? 0.0156 *
Syrah_vs_Merlot == 0 ? 6.0000 ? ? 0.8607 ? 6.971 ? <0.001 ***
(Adjusted p values reported -- single-step method)
###使用test = adjusted(“ none”),結(jié)果將與下面的aov方法相同。
?
?aov內(nèi)的對比測試
在方差分析中使用單自由度對比的另一種方法是在摘要?函數(shù)中使用split選項進行aov分析。
?
boxplot(Response ~ Treatment,
data = Data,
ylab="Response",
xlab="Treatment")
0.018
?

?
### ?Define contrasts
D1vsD2 = ? ? ? ? ?c(1, ?1, -1, -1, ?0)
C1vsC2 = ? ? ? ? ?c(1, -1, ?1, -1, ?0)
InteractionDC = ? c(1, -1, -1, ?1, ?0)
TreatsvsControl = c(1, ?1, ?1, ?1, -4)
Df Sum Sq Mean Sq F value ? Pr(>F)
Treatment ? ? ? ? ? ? ? ? ? ? 4 ?6.189 ? 1.547 ?85.963 1.06e-07 ***
Treatment: D1vsD2 ? ? ? ? ? 1 ?0.521 ? 0.521 ?28.935 ?0.00031 ***
Treatment: C1vsC2 ? ? ? ? ? 1 ?3.307 ? 3.307 183.750 9.21e-08 ***
Treatment: InteractionDC ? ?1 ?0.001 ? 0.001 ? 0.046 ?0.83396
Treatment: TreatsvsControl ?1 ?2.360 ? 2.360 131.120 4.53e-07 ***
Residuals ? ? ? ? ? ? ? ? ? ?10 ?0.180
?
?