我有一个数据集,我在上面运行了ANCOVA并进行了postHoc分析。当我通过键入summary(data(来查看我的数据的概要时,我只看到t值和p值。
有没有一种方法可以让我看到cohen在这个问题上的d值?我正在使用R统计数据包。
关于效果大小的注记
问候!首先,你永远不会用科恩的d作为ANCOVA。ANCOVA更常见的效应大小是η平方或部分η平方。此外,我没有看到您发布任何代码或数据,所以很难准确猜测到目前为止您是如何运行模型的。我可以用一些数据运行一个模型,如果你想至少知道如何使用,你可以使用这些数据,但下次在你的问题中提供你的数据的dput
,以及你迄今为止运行的代码。
运行ANCOVA
首先,我们可以加载effectsize
库来获得我们的eta平方估计,并加载我们的数据,但要做一些小的更改。
#### Library ####
library(effectsize)
library(tidyverse)
library(rstatix)
#### Load Data ####
data(obk.long,
package = "afex")
#### Modify Data ####
obk.long <- obk.long[1:240 %% 3 == 0, ]
obk.long$id <- seq_len(nrow(obk.long))
如果我们查看数据,我们可以检查ANCOVA:是否合适(至少在表面上(
#### Inspect Data ####
glimpse(obk.long)
在这里你可以看到这个命令的数据:
Rows: 80
Columns: 7
$ id <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1…
$ treatment <fct> control, control, control, control, control, control…
$ gender <fct> M, M, M, M, M, M, M, M, M, M, M, M, M, M, M, F, F, F…
$ age <dbl> -4.75, -4.75, -4.75, -4.75, -4.75, -2.75, -2.75, -2.…
$ phase <fct> pre, post, post, fup, fup, pre, post, post, fup, fup…
$ hour <fct> 3, 1, 4, 2, 5, 3, 1, 4, 2, 5, 3, 1, 4, 2, 5, 3, 1, 4…
$ value <dbl> 4, 3, 3, 3, 4, 5, 2, 5, 5, 1, 5, 4, 5, 6, 6, 7, 2, 5…
然后,我们可以使用以下模型拟合ANCOVA:
#### Fit Data to ANCOVA ####
fit <- aov(value ~ gender + phase + treatment,
data = obk.long)
summary(fit)
在这里你可以看到模型的摘要:
Df Sum Sq Mean Sq F value Pr(>F)
gender 1 9.11 9.11 2.932 0.091 .
phase 2 3.06 1.53 0.493 0.613
treatment 2 81.04 40.52 13.037 1.41e-05 ***
Residuals 74 229.98 3.11
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
我们还可以查看与以下代码的成对比较:
#### Tukey PWC ####
tukey_hsd(fit)
如图所示:
# A tibble: 7 × 9
term group1 group2 null.…¹ estim…² conf.…³ conf.…⁴ p.adj p.adj…⁵
* <chr> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
1 gender F M 0 0.675 -0.110 1.46 9.1 e-2 ns
2 phase fup post 0 -0.125 -1.18 0.929 9.57e-1 ns
3 phase fup pre 0 -0.531 -1.82 0.760 5.89e-1 ns
4 phase post pre 0 -0.406 -1.70 0.885 7.33e-1 ns
5 treatme… contr… A 0 2.04 0.773 3.30 7.14e-4 ***
6 treatme… contr… B 0 2.21 1.10 3.31 2.56e-5 ****
7 treatme… A B 0 0.170 -1.01 1.35 9.37e-1 ns
# … with abbreviated variable names ¹null.value, ²estimate, ³conf.low,
# ⁴conf.high, ⁵p.adj.signif
获得部分Eta
从那里你只需运行以下代码:
#### Run Effect Size ####
eta_squared(fit,
partial = T)
这给了你效果大小:
# Effect Size for ANOVA (Type I)
Parameter | Eta2 (partial) | 95% CI
-----------------------------------------
gender | 0.04 | [0.00, 1.00]
phase | 0.01 | [0.00, 1.00]
treatment | 0.26 | [0.12, 1.00]
- One-sided CIs: upper bound fixed at [1.00].
旁注
在运行ANCOVA或从模型中获取摘要之前,您应该检查许多事情。在解释效果大小等结果之前,最好确保它符合所有模型假设。如果这有帮助,请告诉我。