Cohen's d สำหรับการทดสอบตัวอย่างขึ้นอยู่กับ


10

คำถามด่วน: ฉันเคยเห็นโคเฮนคำนวณวิธีที่ต่างกันสองวิธีสำหรับตัวอย่างที่ต้องทดสอบ t-test (เช่นการออกแบบภายในตัวอย่างที่ทดสอบประสิทธิภาพของยาที่มีการจับเวลาก่อน / หลัง)

  1. ใช้ค่าเบี่ยงเบนมาตรฐานของคะแนนการเปลี่ยนแปลงในส่วนของสมการสำหรับ Cohen's d
  2. การใช้ค่าเบี่ยงเบนมาตรฐานของคะแนนทดสอบก่อนกำหนดในส่วนของสมการสำหรับ Cohen's d

ฉันพบว่ามีวรรณกรรมน้อยมากที่อธิบายถึงการใช้และ / หรือตัวเลือกใดตัวเลือกหนึ่ง

มีความคิดด่วนไหม?


คุณค้นพบวิธีการคำนวณโคเฮนสำหรับการทดสอบตัวอย่างแบบจับคู่หรือไม่
user552231

@ user552231 มีโค้ดโอเพ่นซอร์ส R สำหรับ Cochen's D คุณเคยดูไหม
HelloWorld

คำตอบ:


6

Geoff Cumming มีความคิดเห็นเล็กน้อยเกี่ยวกับเรื่องนี้ (นำมาจากCumming, 2013 ):

อย่างไรก็ตามในหลายกรณีตัวเลือกมาตรฐานที่ดีที่สุดไม่ใช่ SD ที่จำเป็นสำหรับการอนุมานต่อผลที่เป็นปัญหา ยกตัวอย่างเช่นพิจารณาการออกแบบที่จับคู่เช่นการทดสอบก่อนโพสต์อย่างง่าย ๆ ซึ่งผู้เข้าร่วมกลุ่มเดียวให้ข้อมูลทั้งแบบทดสอบก่อนและหลัง เครื่องมือมาตรฐานที่เหมาะสมที่สุดมักจะอยู่เสมอ (คัมมิง, 2012, pp. 290–294; คัมมิง & ฟินช์, 2001, pp. 568–570) การประมาณค่าของ SD ในประชากรที่ทดสอบก่อนหน้านี้อาจจะเป็น , SD ที่ทดลองก่อนหน้านี้ ในทางตรงกันข้ามการอนุมานเกี่ยวกับความแตกต่างนั้นต้องใช้ SD ของความแตกต่างที่จับคู่ไม่ว่าจะเป็นการทดสอบแบบจับคู่หรือเพื่อคำนวณ CI ในส่วนที่แตกต่าง (Cumming & Finch, 2005) ในกรณีที่คะแนนก่อนและหลังเรียนมีความสัมพันธ์กันs1sdiffsdiffจะมีขนาดเล็กกว่าการทดสอบของเราจะมีความละเอียดอ่อนมากขึ้นและค่าของ d คำนวณอย่างผิดพลาดโดยใช้เนื่องจากเครื่องมือสร้างมาตรฐานจะใหญ่เกินไปs1sdiff

เหตุผลหลักสำหรับการเลือกเป็นเครื่องมือมาตรฐานในการออกแบบที่จับคู่คือ SD ที่มีการทดสอบก่อนหน้าประชากรจะทำให้ความรู้สึกทางแนวคิดที่ดีที่สุดเป็นหน่วยอ้างอิง อีกเหตุผลที่สำคัญคือการได้รับค่า d ที่น่าจะเทียบเคียงได้กับค่า d ที่ได้จากการทดลองแบบคู่อื่น ๆ อาจมีความสัมพันธ์ก่อนการทดลองและหลังการทดลองที่แตกต่างกันรวมถึงการออกแบบที่แตกต่างกัน ผลกระทบเดียวกัน ค่า d ในกรณีดังกล่าวทั้งหมดมีแนวโน้มที่จะนำมาเปรียบเทียบกันเพราะใช้เครื่องมือมาตรฐานเดียวกันนั่นคือการควบคุมหรือ SD ที่ทดสอบก่อน การเปรียบเทียบดังกล่าวเป็นสิ่งจำเป็นสำหรับการวิเคราะห์อภิมานเช่นเดียวกับการตีความที่มีความหมายในบริบทspre


3

ผมพบคำตอบอย่างเป็นทางการในพรมแดนในด้านจิตวิทยา ถ้าคือสถิติการทดสอบและคือการสังเกตจำนวนดังนั้น:tN

d=tN

โปรดทราบว่าสิ่งนี้จะให้การเปลี่ยนแปลงค่าเฉลี่ยที่เป็นมาตรฐานแก่คุณโดยที่การเปลี่ยนแปลงค่าเฉลี่ยนั้นเป็นมาตรฐานในแง่ของส่วนเบี่ยงเบนมาตรฐานของคะแนนการเปลี่ยนแปลง (สิ่งที่แสดงเป็น 1 ในคำถาม)
Wolfgang

0

นี่คือฟังก์ชั่น R ที่แนะนำซึ่งคำนวณ g Hedges 'g (เวอร์ชันที่ไม่เอนเอียงของ Cohen's d) พร้อมกับช่วงความมั่นใจสำหรับการออกแบบระหว่างหรือภายในเรื่อง:

gethedgesg <-function( x1, x2, design = "between", coverage = 0.95) {
  # mandatory arguments are x1 and x2, both a vector of data

  require(psych) # for the functions SD and harmonic.mean.

  # store the columns in a dataframe: more convenient to handle one variable than two
  X <- data.frame(x1,x2)

  # get basic descriptive statistics
  ns  <- lengths(X)
  mns <- colMeans(X)
  sds <- SD(X)

  # get pairwise statistics
  ntilde <- harmonic.mean(ns)
  dmn    <- abs(mns[2]-mns[1])
  sdp    <- sqrt( (ns[1]-1) *sds[1]^2 + (ns[2]-1)*sds[2]^2) / sqrt(ns[1]+ns[2]-2)

  # compute biased Cohen's d (equation 1) 
  cohend <- dmn / sdp

  # compute unbiased Hedges' g (equations 2a and 3)
  eta     <- ns[1] + ns[2] - 2
  J       <- gamma(eta/2) / (sqrt(eta/2) * gamma((eta-1)/2) )
  hedgesg <-  cohend * J

  # compute noncentrality parameter (equation 5a or 5b depending on the design)
  lambda <- if(design == "between") {
    hedgesg * sqrt( ntilde/2)
  } else {
    r <- cor(X)[1,2]
    hedgesg * sqrt( ntilde/(2 * (1-r)) )
  }

  # confidence interval of the hedges g (equations 6 and 7)
  tlow <- qt(1/2 - coverage/2, df = eta, ncp = lambda )
  thig <- qt(1/2 + coverage/2, df = eta, ncp = lambda )

  dlow <- tlow / lambda * hedgesg 
  dhig <- thig / lambda * hedgesg 

  # all done! display the results
  cat("Hedges'g = ", hedgesg, "\n", coverage*100, "% CI = [", dlow, dhig, "]\n")

}

นี่คือวิธีการใช้งาน:

x1 <- c(53, 68, 66, 69, 83, 91)
x2 <- c(49, 60, 67, 75, 78, 89)

# using the defaults: between design and 95% coverage
gethedgesg(x1, x2)

# changing the defaults explicitely
gethedgesg(x1, x2, design = "within", coverage = 0.90 )

ฉันหวังว่ามันจะช่วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.