R語言析因設計分析:線性模型中的對比

原文鏈接:http://tecdat.cn/?p=9649

 

對比度可用於對線性模型中的處理進行比較。

常見的用途是使用析因設計時,除析因設計外還使用控制或檢查處理。在下面的第一個示例中,有兩個級別(12)的兩個處理(DC),然後有一個對照 處理。此處使用的方法是方差的單向分析,然後使用對比來檢驗各種假設。

在下面的第二個示例中,對六種葡萄酒進行了測量,其中一些是紅色,而有些是白色。我們可以比較的治療通過設置對比,並進行F檢驗紅酒組。這類似於測試紅酒的主要效果。

  

 

使用的軟件包

如果尚未安裝這些軟件包,則以下命令將安裝它們:

if(!require(car)){install.packages("car")}
if(!require(lsmeans){install.packages("lsmeans")}
if(!require(multcomp)){install.packages("multcomp")}


 

單自由度對比示例

這個假設的例子可以代表一項採用階乘設計的實驗,其中兩個處理(DC)分別處於兩個級別(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

 

 由於調整方法不同,p值與multcomp ###的p值略有不同。 
   ###兩個過程的調整方法,
   ### p值和其他統計信息,將是相同的。

   ###使用
   Adjust =“ none”,結果將與### 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檢驗示例

該示例具有由三種紅酒和三種白葡萄酒組成的處理。我們將想知道紅酒組中的處理是否對響應變量有影響。這種方法之所以具有優勢,是因爲仍可以在紅酒中進行事後比較。

 



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個自由度進行了一次假設檢驗。這調查了
### 3組治療的效果。

###結果與multcomp的結果基本相同

問題:白葡萄酒有效果嗎?

 



test(Test, joint=TRUE)

df1 df2   F p.value
  2  12 0.3  0.7462

兩行對比
使用2個自由度進行了一次假設檢驗。本研究調查了
###一組3種治療方法中的效果

###結果與multcomp的結果相同
 

問題:紅葡萄酒和白葡萄酒之間有區別嗎?而且,紅酒的平均分離度

 



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值是
   由於調整方法不同,因此與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

 

問題:紅葡萄酒和白葡萄酒之間有區別嗎?

 



   ### 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”),結果將與下面的aov方法相同。

 

 aov內的對比測試

在方差分析中使用單自由度對比的另一種方法是在摘要 函數中使用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



 

 

發佈了445 篇原創文章 · 獲贊 246 · 訪問量 97萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章