datacamp / datacamp/rdocumentation-2.0

function `cohen.d`: Hedge's g uses wrong DFs for one-sample case

Open
#155 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
301
Forks
54
Avg merge
16h 19m
Merged PRs (30d)
1

Description

There is a small mistake in the function cohen.d:
According to Cumming (2011) p. 294, the degrees of freedom are N-1 for a one-sample design (i.e., if f=NA) and also for a within-subjects design (i.e., if paired=T). Only for the case with two independent samples, the degrees of freedom are N-2. The function, however, also calculates N-2 for the one-sample case (and possibly also for paired=T I have not checked this.

Minimal Reproducible Example:
library(tidyverse); iris %>% group_by(Species) %>% summarise( cohen_d = effsize::cohen.d(Sepal.Length, f=NA)$estimate, n = Sepal.Length %>% na.omit() %>% length(), #should not use n() because it doesn't handle NAs correctly hedges_g = effsize::cohen.d(Sepal.Length, NA, hedges.correction=T)$estimate, hedges_g_df1 = cohen_d * (1 - (3 / (4 * (n-1) - 1))), #for one-sample & within: df = N - 1 hedges_g_df2 = cohen_d * (1 - (3 / (4 * (n-2) - 1))), #for two independent samples check_df1 = hedges_g == hedges_g_df1, check_df2 = hedges_g == hedges_g_df2 )

MRE

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the provided iris minimal reproducible example and inspect the implementation of effsize::cohen.d, especially its Hedges' g degrees-of-freedom calculation. Compare the one-sample and paired cases with the independent-samples case; the issue is done when the correction uses N-1 for the former cases and N-2 only for independent samples.

Written by the indexing model from the issue text.

Assessment

Tech stack
r
Domain
data
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.