我正在尝试对以下数据进行配对 t 检验:
化合物 | 日 | 分数1 | 分数2 |
---|---|---|---|
A | 1 | 3.3 | 16.5 |
A | 2 | 1.4 | 11.2 |
A | 3 | 2.8 | 15.3 |
A | 4 | 0.6 | 42.4 |
A | 5 | 0.9 | 20 |
A | 6 | 21 | 43.8 |
A | 7 | 22 | 56.5 |
A | 8 | 1.1 | 9.6 |
A | 9 | 2.3 | 6.5 |
A | 10 | 0.4 | 7.1 |
B | 1 | 1.2 | 15.4 |
B | 2 | 1.4 | 11.4 |
... | ... | ... | ... |
B | 10 | 14.3 | 18.7 |
我想分别对化合物 A 和 B 进行 t 检验。 我尝试了以下方法:
library(dplyr)
library(broom)
data <- df1 %>%
group_by(compound) %>%
do(tidy(t.test(df1$fraction1,
df1$fraction2,
mu = 0,
alt = "two.sided",
paired = TRUE,
conf.level = 0.95)))
data
最终结果如下: A
tibble: 2 × 9
# Groups: compound [2]
compound estimate statistic p.value parameter conf.low conf.high method alternative
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <chr>
1 A -9.58 -3.47 0.00254 19 -15.3 -3.81 Paired t-test two.sided
2 B -9.58 -3.47 0.00254 19 -15.3 -3.81 Paired t-test two.sided
但是,它没有单独考虑化合物 A 和 B。 如何对两种化合物进行配对 t 检验?是否还可以查看显着性水平(即表示为 ns、*、** 等)?
非常感谢!
目前还不清楚您的分析目标是什么,以及您的研究问题是什么。但要按原样回答问题,然后分别对每种化合物进行配对 t 检验并获得表示为
ns
、*
、**
等的显着性水平,您需要确保 t.test
函数应用于复合变量的每组内。您当前方法的问题在于 t.test
应用于整个数据集而不是每个组内。以下是使用 dplyr
和 broom
实现此目的的方法:
library(dplyr)
library(broom)
# Example data frame
df1 <- data.frame(
compound = rep(c("A", "B"), each = 10),
day = rep(1:10, 2),
fraction1 = c(3.3, 1.4, 2.8, 0.6, 0.9, 21, 22, 1.1, 2.3, 0.4, 1.2, 1.4, 2.8, 0.6, 0.9, 21, 22, 1.1, 2.3, 14.3),
fraction2 = c(16.5, 11.2, 15.3, 42.4, 20, 43.8, 56.5, 9.6, 6.5, 7.1, 15.4, 11.4, 15.3, 42.4, 20, 43.8, 56.5, 9.6, 6.5, 18.7)
)
# Perform paired t-test separately for each compound
result <- df1 %>%
group_by(compound) %>%
do(tidy(t.test(.$fraction1,
.$fraction2,
mu = 0,
alt = "two.sided",
paired = TRUE,
conf.level = 0.95)))
# Function to add significance level
add_significance <- function(p.value) {
if(p.value < 0.001) {
return("***")
} else if(p.value < 0.01) {
return("**")
} else if(p.value < 0.05) {
return("*")
} else {
return("ns")
}
}
# Add significance level to the result
result <- result %>%
mutate(significance = sapply(p.value, add_significance))
print(result)
结果如下:
# A tibble: 2 × 10
# Groups: compound [2]
compound estimate statistic p.value parameter conf.low conf.high method alternative significance
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <chr> <chr>
1 A -17.3 -4.41 0.00170 9 -26.2 -8.43 Paired t-test two.sided **
2 B -17.2 -4.31 0.00195 9 -26.2 -8.18 Paired t-test two.sided **
配对 t 检验适用于比较两个相关组,例如每种化合物每天的
fraction1
和 fraction2
测量值。该检验假设配对观测值之间的差异呈正态分布。虽然每种化合物 10 个观察值的样本量对于 t 检验来说(几乎)是合理的,但解释小样本的结果需要谨慎。
此外,执行多次 t 检验会增加 I 类错误(误报)的风险,因此需要使用 Bonferroni 校正等方法对多重比较进行调整。报告置信区间和 p 值可以提供有关估计精度的宝贵信息。使用成对散点图或 Bland-Altman 图可视化数据可以进一步了解
fraction1
和 fraction2
之间的关系。
可以使用单一混合效应回归模型对数据进行建模。混合效应模型可以解释固定效应(观察结果一致)和随机效应(捕获组内的变异性,例如不同的化合物)。这种方法可以有效地处理配对观察内和组之间的相关性。然而,在不了解更多有关数据和研究问题的情况下,我现在犹豫是否要对此说更多。