将R

时间:2018-07-31 20:07:46

标签: r linear-regression anova

我有两种药物(A(3个水平)和B(2个水平))联合治疗的两种不同疾病(癌症和正常)的菌落计数数据。对于殖民地,我有不同的类型+总计,但我可以在不同的测试中查看不同的类型。

df <- data.frame( Patient = rep( 1:6, 6), Disease = rep( c( "cancer", "normal"), 18), DrugA = c( rep( 0, 12), rep( 30, 12), rep( 100, 12)), DrugB = rep( c( rep( 0, 6), rep( 2, 6)), 3), n.colonies = sample( 10:300, size = 36) )
head(df)

我的问题是我想比较两种情况(癌症和正常)之间每种疗法(DrugA和DrugB的组合)的差异。为此,我做了以下事情:

df$treatment.factor <- paste( df$DrugA, df$DrugB, sep = ".")
library(stats)
a <- aov( formula = n.colonies ~ Disease:treatment.factor, data = df)
summary(a)
TukeyHSD(a)

结果返回所有可能的组合,包括相同条件下的不同治疗选项。我有什么方法可以将测试组限制为针对不同疾病的相同治疗因素?我当时只是想进行感兴趣的t检验,并针对多个比较进行更正,但这似乎并不完全适合我。我也在考虑对每种情况(根据DrugB进行分离)进行回归分析,但是仅获得3分(3种DrugA浓度)也无济于事。

有什么建议吗?谢谢!

爱德华多

1 个答案:

答案 0 :(得分:0)

我不确定是否了解。也许你想要

library(lsmeans)
lsmeans(a, pairwise ~ Disease:treatment.factor | treatment.factor)

$contrasts
treatment.factor = 0.0:
 contrast           estimate       SE df t.ratio p.value
 cancer - normal -101.333333 74.31826 24  -1.364  0.1854

treatment.factor = 0.2:
 contrast           estimate       SE df t.ratio p.value
 cancer - normal  -92.333333 74.31826 24  -1.242  0.2261

treatment.factor = 100.0:
 contrast           estimate       SE df t.ratio p.value
 cancer - normal   50.666667 74.31826 24   0.682  0.5019

treatment.factor = 100.2:
 contrast           estimate       SE df t.ratio p.value
 cancer - normal    1.666667 74.31826 24   0.022  0.9823

treatment.factor = 30.0:
 contrast           estimate       SE df t.ratio p.value
 cancer - normal    9.000000 74.31826 24   0.121  0.9046

treatment.factor = 30.2:
 contrast           estimate       SE df t.ratio p.value
 cancer - normal   79.333333 74.31826 24   1.067  0.2964