การใช้การทดสอบการเปลี่ยนรูปแบบใน R เพื่อใช้แทนการทดสอบแบบที (ทั้งคู่และไม่ใช่คู่)?


56

ฉันมีข้อมูลจากการทดสอบที่ฉันวิเคราะห์โดยใช้การทดสอบที ตัวแปรตามคือสเกลช่วงเวลาและข้อมูลไม่ถูกจับคู่ (เช่น 2 กลุ่ม) หรือจับคู่ (เช่นภายในวิชา) เช่น (ภายในวิชา):

x1 <- c(99, 99.5, 65, 100, 99, 99.5, 99, 99.5, 99.5, 57, 100, 99.5, 
        99.5, 99, 99, 99.5, 89.5, 99.5, 100, 99.5)
y1 <- c(99, 99.5, 99.5, 0, 50, 100, 99.5, 99.5, 0, 99.5, 99.5, 90, 
        80, 0, 99, 0, 74.5, 0, 100, 49.5)

อย่างไรก็ตามข้อมูลนั้นไม่ปกติดังนั้นผู้ตรวจสอบคนหนึ่งขอให้เราใช้สิ่งอื่นนอกเหนือจากการทดสอบ t อย่างไรก็ตามอย่างที่เราสามารถเห็นได้ง่ายข้อมูลไม่เพียง แต่ไม่กระจายตามปกติ แต่การแจกแจงไม่เท่ากันระหว่างเงื่อนไข: ข้อความแสดงแทน

ดังนั้นการทดสอบแบบไม่มีพารามิเตอร์ตามปกติคือ Mann-Whitney-U-Test (unpaired) และการทดสอบ Wilcoxon (จับคู่) ไม่สามารถใช้งานได้เนื่องจากต้องมีการแจกแจงที่เท่าเทียมกันระหว่างเงื่อนไข ดังนั้นฉันตัดสินใจว่าการทดสอบการเปลี่ยนรูปใหม่หรือการเปลี่ยนรูปแบบบางอย่างจะดีที่สุด

ตอนนี้ฉันกำลังมองหาการใช้งาน R ของการเปลี่ยนรูปแบบการทดสอบ t-test หรือคำแนะนำอื่น ๆ เกี่ยวกับข้อมูล

ฉันรู้ว่ามีแพ็กเกจ R- บางอย่างที่สามารถทำสิ่งนี้ให้ฉันได้ (เช่นเหรียญ, ดัด, exactRankTest ฯลฯ ) แต่ฉันไม่รู้ว่าจะเลือกแบบไหน ดังนั้นถ้าใครที่มีประสบการณ์การใช้การทดสอบเหล่านี้สามารถให้ฉันเริ่มเตะนั่นจะเป็น ubercool

ปรับปรุง:มันจะเหมาะถ้าคุณสามารถให้ตัวอย่างของวิธีการรายงานผลจากการทดสอบนี้

คำตอบ:


43

ไม่สำคัญว่าเนื่องจากสถิติทดสอบจะเป็นความแตกต่างในค่าเฉลี่ย (หรือสิ่งที่เทียบเท่า) ความแตกต่างเล็ก ๆ อาจมาจากการใช้วิธีการ Monte-Carlo ลองสามแพ็คเกจกับข้อมูลของคุณด้วยการทดสอบด้านเดียวสำหรับตัวแปรอิสระสองตัว:

DV <- c(x1, y1)
IV <- factor(rep(c("A", "B"), c(length(x1), length(y1))))
library(coin)                    # for oneway_test(), pvalue()
pvalue(oneway_test(DV ~ IV, alternative="greater", 
                   distribution=approximate(B=9999)))
[1] 0.00330033

library(perm)                    # for permTS()
permTS(DV ~ IV, alternative="greater", method="exact.mc", 
       control=permControl(nmc=10^4-1))$p.value
[1] 0.003

library(exactRankTests)          # for perm.test()
perm.test(DV ~ IV, paired=FALSE, alternative="greater", exact=TRUE)$p.value
[1] 0.003171822

ในการตรวจสอบค่า p ที่แน่นอนพร้อมการคำนวณพีชคณิตทั้งหมดด้วยตนเองฉันจะ จำกัด ข้อมูลไว้ที่ 9 ค่าแรก

x1 <- x1[1:9]
y1 <- y1[1:9]
DV <- c(x1, y1)
IV <- factor(rep(c("A", "B"), c(length(x1), length(y1))))
pvalue(oneway_test(DV ~ IV, alternative="greater", distribution="exact"))
[1] 0.0945907

permTS(DV ~ IV, alternative="greater", exact=TRUE)$p.value
[1] 0.0945907

# perm.test() gives different result due to rounding of input values
perm.test(DV ~ IV, paired=FALSE, alternative="greater", exact=TRUE)$p.value
[1] 0.1029412

# manual exact permutation test
idx  <- seq(along=DV)                 # indices to permute
idxA <- combn(idx, length(x1))        # all possibilities for different groups

# function to calculate difference in group means given index vector for group A
getDiffM <- function(x) { mean(DV[x]) - mean(DV[!(idx %in% x)]) }
resDM    <- apply(idxA, 2, getDiffM)  # difference in means for all permutations
diffM    <- mean(x1) - mean(y1)       # empirical differencen in group means

# p-value: proportion of group means at least as extreme as observed one
(pVal <- sum(resDM >= diffM) / length(resDM))
[1] 0.0945907

coinและexactRankTestsทั้งคู่มาจากผู้เขียนคนเดียวกัน แต่coinดูเหมือนจะกว้างกว่าและกว้างขวางกว่า - ในแง่ของเอกสาร exactRankTestsไม่ได้พัฒนาอย่างแข็งขันอีกต่อไป ฉันจึงเลือกcoin(เพราะฟังก์ชั่นข้อมูลเช่นนี้support()) เว้นแต่คุณไม่ต้องการจัดการกับวัตถุ S4

แก้ไข: สำหรับสองตัวแปรขึ้นอยู่กับไวยากรณ์คือ

id <- factor(rep(1:length(x1), 2))    # factor for participant
pvalue(oneway_test(DV ~ IV | id, alternative="greater",
                   distribution=approximate(B=9999)))
[1] 0.00810081

ขอบคุณสำหรับคำตอบที่ดีของคุณ! อีก 2 คำถาม: ตัวอย่างที่สองของคุณหมายถึงเหรียญในความเป็นจริงนั้นให้การเปลี่ยนแปลงที่เป็นไปได้ทั้งหมดและเป็นการทดสอบที่แน่นอนหรือไม่ ในกรณีของฉันจะไม่ได้รับการทดสอบที่แน่นอนหรือไม่?
Henrik

10
(+1) ไม่น่าแปลกใจที่การทดสอบ t (unpaired) จะให้ค่า p-value เท่ากับ 0.000349 แม้จะมีสิ่งวิจารณ์กล่าวว่า t-test เป็นที่ใช้บังคับกับข้อมูลเหล่านี้ เหตุผลก็คือการแจกแจงการสุ่มตัวอย่างของค่าเฉลี่ยอยู่ที่ประมาณปกติแม้ว่าการแจกแจงของข้อมูลจะไม่ ยิ่งไปกว่านั้นอย่างที่คุณเห็นจากผลลัพธ์การทดสอบ t-test นั้นค่อนข้างอนุรักษ์นิยมมากกว่าการทดสอบการเปลี่ยนรูป (ซึ่งหมายความว่าผลลัพธ์ที่สำคัญกับการทดสอบแบบ t-test บ่งชี้ว่าการทดสอบการเปลี่ยนรูปแบบมีแนวโน้มที่จะมีความสำคัญเช่นกัน)
whuber

2
@Henrik สำหรับบางสถานการณ์ (การทดสอบที่เลือกและความซับซ้อนเชิงตัวเลข) coinสามารถคำนวณการกระจายการเปลี่ยนแปลงที่แน่นอน (โดยไม่ต้องผ่านการเปลี่ยนลำดับทั้งหมดจริง ๆ มีอัลกอริธึมที่สวยงามกว่านั้น) เมื่อพิจารณาทางเลือกแล้วการกระจายที่แน่นอนนั้นน่าจะเหมาะสมกว่า แต่ความแตกต่างของการประมาณ Monte-Carlo ด้วยการจำลองซ้ำจำนวนมากควรมีขนาดเล็ก
caracal

1
@Caracal ขอบคุณสำหรับการชี้แจง ยังคงมีคำถามหนึ่งข้อ: ข้อมูลที่ฉันนำเสนอถูกจับคู่แล้ว ดังนั้นฉันต้องการเทียบเท่ากับ t-test ที่จับคู่ คือoneway_testฟังก์ชั่นที่ถูกต้อง? และถ้าใช่ข้อมูลใดที่ไม่ถูกต้องสำหรับข้อมูลที่ไม่ได้จับคู่
Henrik

2
@Henrik coinผู้เขียนเขียนฉันที่oneway_test()ไม่สามารถคำนวณการกระจายที่แน่นอนสำหรับกรณีที่ต้องพึ่งพาคุณต้องไปกับการประมาณ MC ( wilcoxsign_test()เหมาะสำหรับการทดสอบที่แน่นอนเท่านั้น) ฉันไม่ทราบเรื่องนี้และต้องการข้อผิดพลาดในกรณีนั้น แต่ MC ควรมีความถูกต้องเพียงพอกับการทำซ้ำจำนวนมาก
caracal

29

ฉันเชื่อว่ามีความคิดเห็นตามลำดับ

1) ฉันขอแนะนำให้คุณลองแสดงข้อมูลภาพหลายภาพเพราะพวกเขาสามารถจับภาพสิ่งที่สูญเสียโดยฮิสโทแกรม (กราฟเหมือน) และฉันขอแนะนำอย่างยิ่งให้คุณวางแผนบนแกนแบบเคียงข้างกัน ในกรณีนี้ฉันไม่เชื่อว่าฮิสโทแกรมจะทำงานได้ดีมากในการสื่อสารคุณสมบัติเด่นของข้อมูลของคุณ ตัวอย่างเช่นลองดู boxplots แบบเคียงข้างกัน:

boxplot(x1, y1, names = c("x1", "y1"))

ข้อความแสดงแทน

หรือแม้กระทั่งระแนงข้างๆ:

stripchart(c(x1,y1) ~ rep(1:2, each = 20), method = "jitter", group.names = c("x1","y1"), xlab = "")

ข้อความแสดงแทน

x1y1x1y1x1y1y1

2) คุณไม่ได้อธิบายรายละเอียดว่าข้อมูลของคุณมาจากไหนหรือวัดอย่างไร แต่ข้อมูลนี้สำคัญมากเมื่อถึงเวลาเลือกขั้นตอนทางสถิติ ตัวอย่างสองตัวอย่างข้างต้นของคุณเป็นอิสระหรือไม่ มีเหตุผลใดบ้างที่จะเชื่อได้ว่าการกระจายตัวอย่างเล็กน้อยของทั้งสองตัวอย่างควรเหมือนกัน (ยกตัวอย่างเช่นความแตกต่างของตำแหน่ง) สิ่งที่ต้องพิจารณาก่อนการศึกษาที่ทำให้คุณมองหาหลักฐานของความแตกต่างระหว่างสองกลุ่มคืออะไร?

zppค่าจะเป็นเพียงสถิติ มันไม่ได้บอกสิ่งที่คุณอยากรู้: มีหลักฐานว่าทั้งสองตัวอย่างมาจากการแจกแจงที่ต่างกันหรือไม่

pค่าแต่ก็จะเป็นอย่างไร คุณทำอะไรสำเร็จจริง ๆ ?

5) ในความคิดของฉันข้อมูลเหล่านี้เป็นตัวอย่างที่สมบูรณ์แบบ (?) ที่ภาพที่เลือกมาอย่างดีมีค่าการทดสอบสมมติฐาน 1,000 ครั้ง เราไม่ต้องการสถิติเพื่อบอกความแตกต่างระหว่างดินสอกับยุ้งฉาง คำสั่งที่เหมาะสมในมุมมองของฉันสำหรับข้อมูลเหล่านี้จะเป็น "ข้อมูลเหล่านี้แสดงความแตกต่างที่มีการทำเครื่องหมายตามตำแหน่งขนาดและรูปร่าง" คุณสามารถติดตามด้วยสถิติเชิงพรรณนา (ที่มีประสิทธิภาพ) สำหรับแต่ละรายการเพื่อคำนวณความแตกต่างและอธิบายความแตกต่างในบริบทของการศึกษาต้นฉบับของคุณ

ppที่แสดงให้เห็นว่าการแจกแจงนั้นแตกต่างกันแล้วดำเนินการตามสถิติเชิงพรรณนาข้างต้น คุณจะต้องเพิ่มสัญญาณรบกวนลงในตัวอย่างสองตัวอย่าง (และแน่นอนทั้งหมดนี้ถือว่าตัวอย่างของคุณเป็นอิสระซึ่งคุณไม่ได้ระบุไว้อย่างชัดเจน)

คำตอบนี้ยาวกว่าที่ฉันตั้งใจไว้มาก ขอโทษสำหรับเรื่องนั้น.


ฉันอยากรู้ว่าคุณจะพิจารณาวิธีการมองภาพเสมือนต่อไปนี้อย่างเหมาะสมหรือไม่: bootstrap ประมาณช่วงเวลาของทั้งสองกลุ่ม (หมายถึงความแปรปรวนและช่วงเวลาที่สูงกว่าหากคุณต้องการ) จากนั้นวางแผนการประมาณเหล่านี้และช่วงความมั่นใจ สำหรับระดับของการทับซ้อนระหว่างกลุ่มในแต่ละช่วงเวลา วิธีนี้ช่วยให้คุณสามารถพูดคุยเกี่ยวกับความแตกต่างที่เป็นไปได้ของคุณสมบัติการกระจายที่หลากหลาย หากมีการจับคู่ข้อมูลให้คำนวณคะแนนที่แตกต่างและเริ่มช่วงเวลาของการแจกแจงเดี่ยวนี้ คิด?
Mike Lawrence

2
(+1) การวิเคราะห์ที่ดี คุณพูดถูกอย่างสมบูรณ์ว่าผลลัพธ์ชัดเจนและไม่จำเป็นต้องกดจุดด้วยค่า p คุณอาจจะสุดขีดเล็กน้อยในคำสั่งของ (3) ของคุณเพราะการทดสอบ t- ไม่จำเป็นต้องมีข้อมูลกระจาย หากคุณมีความกังวลมีการปรับความเบ้ (เช่นตัวแปรของเฉิน): คุณสามารถดูว่าค่า p สำหรับการทดสอบที่ปรับเปลี่ยนนั้นเปลี่ยนคำตอบหรือไม่ ถ้าไม่คุณน่าจะโอเค ในสถานการณ์นี้โดยเฉพาะกับข้อมูลเหล่านี้ (เบ้อย่างมาก) การทดสอบ t-t จึงใช้งานได้ดี
whuber

(+1) เยี่ยมมาก! และแสดงความคิดเห็นที่ดีมาก
chl

ดูเหมือนว่าเราจะยอมรับความคิดที่ว่าการแจกแจงพื้นฐานนั้น "คล้ายกัน" กับการสร้างอินสแตนซ์สุ่ม ดังนั้นจึงไม่มีใครตั้งคำถาม: ทั้งสองนี้มาจากเบต้า (0.25, 0.25) แล้วการทดสอบจะเป็นไปได้หรือไม่ว่าพวกเขามีพารามิเตอร์ centrality (ไม่ใช่) เดียวกันหรือไม่ และนั่นจะไม่เป็นการพิสูจน์ว่าใช้การทดสอบการเปลี่ยนรูปหรือวิลคอกซัน
DWIN

4

5

ความคิดเห็นของฉันไม่ได้เกี่ยวกับการดำเนินการทดสอบการเปลี่ยนรูป แต่เกี่ยวกับประเด็นทั่วไปที่เพิ่มขึ้นจากข้อมูลเหล่านี้และการอภิปรายโดยเฉพาะโพสต์โดย G. Jay Kerns

การแจกแจงสองแบบนั้นดูคล้ายกับฉันมากยกเว้นกลุ่ม 0s ใน Y1 ซึ่งแตกต่างจากการสังเกตอื่น ๆ ในตัวอย่างนั้นมาก (เล็กที่สุดถัดไปคือประมาณ 50 ในระดับ 0-100) เช่นเดียวกับ X1 ทั้งหมด ฉันจะตรวจสอบก่อนว่ามีสิ่งใดที่แตกต่างจากการสังเกตเหล่านั้นหรือไม่

ประการที่สองสมมติว่า 0s เหล่านั้นอยู่ในการวิเคราะห์โดยบอกว่าการทดสอบการเปลี่ยนแปลงนั้นไม่ถูกต้องเพราะการแจกแจงนั้นดูเหมือนจะแตกต่างกันไปตามคำถาม หากค่าว่างเป็นจริง (การแจกแจงเหมือนกัน) คุณ (ด้วยความน่าจะเป็นที่สมเหตุสมผล) ได้รับการแจกแจงที่ดูแตกต่างจากสองอย่างนี้ไหม? ตอบว่าเป็นจุดทดสอบทั้งหมดใช่มั้ย บางทีในกรณีนี้บางคนอาจพิจารณาคำตอบที่ชัดเจนโดยไม่ต้องทำการทดสอบ แต่ด้วยการแจกแจงเล็ก ๆ ที่แปลกประหลาดเหล่านี้ฉันไม่คิดว่าฉันจะทำ


ดูเหมือนว่านี่ควรเป็นความคิดเห็นอย่างน้อยหนึ่งคำตอบไม่ใช่คำตอบ หากคุณคลิก "เพิ่มความคิดเห็น" สีเทาขนาดเล็กคุณสามารถใส่ความคิดของคุณลงในบทสนทนาด้านล่างคำถามหรือคำตอบเฉพาะที่เป็นของพวกเขา คุณทำคะแนนที่สำคัญที่นี่ แต่ไม่ชัดเจนว่านี่ไม่ใช่สถานที่ที่เหมาะสมสำหรับพวกเขา
gung - Reinstate Monica

1
@gung มีชื่อเสียงเล็กน้อยที่จะสามารถแสดงความคิดเห็น ;-)
whuber

4
2(1/2)7.01

4

เนื่องจากคำถามนี้ปรากฏขึ้นอีกครั้งฉันอาจเพิ่มคำตอบอีกแรงบันดาลใจจากโพสต์บล็อกล่าสุดผ่าน R-Bloggers จาก Robert Kabacoff ผู้เขียนQuick-RและR ในการดำเนินการโดยใช้lmPermแพ็คเกจ

อย่างไรก็ตามวิธีการนี้ให้ผลลัพธ์ที่แตกต่างอย่างมาก (และไม่แน่นอนมาก) กับผลลัพธ์ที่สร้างโดยcoinแพ็คเกจในคำตอบของ @caracakl (ค่า p ของการวิเคราะห์ภายในเรื่อง0.008) การวิเคราะห์ใช้การเตรียมข้อมูลจากคำตอบของ @ caracal เช่นกัน:

x1 <- c(99, 99.5, 65, 100, 99, 99.5, 99, 99.5, 99.5, 57, 100, 99.5, 
        99.5, 99, 99, 99.5, 89.5, 99.5, 100, 99.5)
y1 <- c(99, 99.5, 99.5, 0, 50, 100, 99.5, 99.5, 0, 99.5, 99.5, 90, 
        80, 0, 99, 0, 74.5, 0, 100, 49.5)

DV <- c(x1, y1)
IV <- factor(rep(c("A", "B"), c(length(x1), length(y1))))
id <- factor(rep(1:length(x1), 2)) 

library(lmPerm)

summary(aovp( DV ~ IV + Error(id)))

ผลิต:

> summary(aovp( DV ~ IV + Error(id)))
[1] "Settings:  unique SS "

Error: id
Component 1 :
          Df R Sum Sq R Mean Sq
Residuals 19    15946       839


Error: Within
Component 1 :
          Df R Sum Sq R Mean Sq Iter Pr(Prob)  
IV         1     7924      7924 1004    0.091 .
Residuals 19    21124      1112                
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

หากคุณเรียกใช้หลาย ๆ ครั้งค่า p จะข้ามไปมาระหว่าง ~ .05 และ ~ .1

แม้ว่ามันจะเป็นคำตอบสำหรับคำถามให้ฉันอนุญาตให้ตั้งคำถามในตอนท้าย (ฉันสามารถย้ายคำถามนี้ไปเป็นคำถามใหม่ได้หากต้องการ):
ความคิดใด ๆ ว่าทำไมการวิเคราะห์นี้จึงไม่เสถียรและทำให้ค่า p แตกต่างกันไป วิเคราะห์เหรียญ? ฉันทำอะไรผิดหรือเปล่า?


2
อาจเป็นการดีกว่าถ้าถามคำถามนี้เป็นคำถามแยกต่างหากถ้าเป็นคำถามที่คุณต้องการให้ตอบแทนที่จะเป็นวิธีแก้ปัญหาอื่นที่คุณต้องการแสดงรายการที่เหลือ ฉันสังเกตเห็นว่าคุณระบุชั้นข้อผิดพลาด แต่ @caracal ไม่ได้; นั่นจะเป็นการเดาครั้งแรกของฉันที่ความแตกต่าง b / t เอาท์พุทนี้ & ของเขา นอกจากนี้เมื่อจำลองค่ามักจะกระโดดไปรอบ ๆ ; สำหรับการทำซ้ำคุณระบุเมล็ดพันธุ์เช่นset.seed(1); เพื่อความแม่นยำมากขึ้นในการประเมิน MC คุณเพิ่มจำนวนการวนซ้ำ ฉันไม่แน่ใจว่าคำตอบเหล่านี้เป็นคำตอบที่ถูกต้องสำหรับคำถามของคุณ แต่อาจเกี่ยวข้องกัน
gung - Reinstate Monica

2
ฉันขอแนะนำให้ทำการเปรียบเทียบผลลัพธ์ MC กับการคำนวณด้วยตนเองโดยใช้การทดสอบการเปลี่ยนรูปแบบเต็มรูปแบบ ดูโค้ดสำหรับตัวอย่างของคุณสำหรับการเปรียบเทียบoneway_anova()(ใกล้เคียงกับผลลัพธ์ที่ถูกต้องเสมอ) และaovp()(โดยทั่วไปอยู่ไกลจากผลลัพธ์ที่ถูกต้อง) ฉันไม่รู้ว่าทำไมaovp()ให้ผลลัพธ์ที่แตกต่างกันอย่างมาก แต่อย่างน้อยสำหรับกรณีนี้ที่นี่พวกเขาไม่น่าเชื่อ @gung การโทรครั้งสุดท้ายไปยังoneway_test(DV ~ IV | id, ...)คำตอบดั้งเดิมของฉันได้ระบุชั้นข้อผิดพลาดสำหรับกรณีที่ต้องพึ่งพา (ไวยากรณ์ที่แตกต่างจากที่ใช้aov())
caracal

@caracal คุณพูดถูก ฉันไม่ได้ดูบล็อกรหัสสุดท้ายหลังจากแก้ไข ฉันกำลังดูบล็อกโค้ดด้านบน - เลอะเทอะในส่วนของฉัน
gung - Reinstate Monica

ฉันไม่ต้องการคำตอบจริงๆ เป็นเพียงความเป็นไปได้อีกอย่างหนึ่งที่ควรค่าแก่การกล่าวถึงที่นี่ น่าเสียดายที่มันอยู่ไกลจากผลลัพธ์อื่น ๆ ซึ่งฉันก็สังเกตเห็น
Henrik

1
@Henrik เรียกใช้ aovp ด้วย maxExact = 1,000 หากใช้เวลานานเกินไปให้ตั้งค่า iter = 1000000 และ Ca = 0.001 การคำนวณสิ้นสุดลงเมื่อข้อผิดพลาดมาตรฐานโดยประมาณของ p น้อยกว่า Ca * p (ค่าที่ต่ำกว่าให้ผลลัพธ์ที่มีเสถียรภาพมากขึ้น)
xmjx

1

สัดส่วนคะแนนเหล่านี้หรือไม่ ถ้าเป็นเช่นนั้นคุณไม่ควรใช้การทดสอบพาราเมตริกแบบ gaussian แน่นอนและในขณะที่คุณสามารถใช้วิธีการที่ไม่ใช้พารามิเตอร์เช่นการทดสอบการเปลี่ยนรูปหรือวิธีการบูตฉันขอแนะนำให้คุณได้รับพลังทางสถิติมากขึ้นโดย ใช้วิธีพาราเมตริกแบบ non-gaussian ที่เหมาะสม โดยเฉพาะเมื่อใดก็ตามที่คุณสามารถคำนวณการวัดสัดส่วนภายในหน่วยความสนใจ (เช่นผู้เข้าร่วมในการทดสอบ) คุณสามารถและควรใช้รูปแบบเอฟเฟกต์แบบผสมที่ระบุการสังเกตด้วยข้อผิดพลาดกระจายแบบทวินาม ดูดิกสัน 2004


คะแนนไม่ใช่สัดส่วน แต่การประเมินโดยผู้เข้าร่วมในระดับ 0 ถึง 100 (ข้อมูลที่นำเสนอเป็นวิธีการประมาณการในหลาย ๆ รายการที่มีมาตราส่วนนั้น)
Henrik

จากนั้นไม่ใช่พารามิเตอร์จะดูเหมือนเป็นวิธีการแบบดั้งเดิมไป ที่กล่าวว่าฉันสงสัยว่าข้อมูลขนาดดังกล่าวอาจได้รับการอนุมานเป็นประโยชน์ที่จะได้รับจากกระบวนการทวินามและดังนั้นจึงวิเคราะห์เช่นนี้ นั่นคือคุณบอกว่าแต่ละคะแนนเป็นค่าเฉลี่ยของหลาย ๆ รายการและสมมุติว่าแต่ละรายการมีขนาด 10 พอยต์ซึ่งในกรณีนี้ฉันจะแสดงการตอบสนองของการพูดว่า "8" เป็นชุดการทดลอง 8 ของ ซึ่งมีค่า 1 และสองซึ่งมีค่า 0 ทุกป้ายที่มีป้ายกำกับเดียวกันในตัวแปร "รายการ" ด้วยข้อมูลที่ขยายเพิ่ม / ทวินามคุณสามารถคำนวณแบบจำลองเอฟเฟกต์ทวินาม
Mike Lawrence

จากความคิดเห็นก่อนหน้าของฉันฉันควรทราบว่าในข้อมูลขยาย / binomial-ized คุณสามารถจำลองตัวแปร "item" เป็นเอฟเฟกต์แบบคงที่หรือแบบสุ่ม ฉันคิดว่าฉันโน้มตัวไปสู่การสร้างแบบจำลองมันเป็นเอฟเฟกต์คงที่เพราะสมมุติว่าคุณอาจสนใจไม่ใช่แค่การบัญชี แต่ยังประเมินความแตกต่างของรายการและการโต้ตอบที่เป็นไปได้ระหว่างรายการและตัวแปรตัวทำนายอื่น ๆ
Mike Lawrence

0

เพียงเพิ่มวิธีอื่น ๆezPermของezแพ็คเกจ:

> # preparing the data
> DV <- c(x1, y1)
> IV <- factor(rep(c("A", "B"), c(length(x1), length(y1))))
> id <- factor(rep(1:length(x1), 2))
> df <- data.frame(id=id,DV=DV,IV=IV)
>
> library(ez)
> ezPerm( data = df, dv = DV, wid = id, within = IV, perms = 1000)
|=========================|100%              Completed after 17 s 
  Effect     p p<.05
1     IV 0.016     *

นี้ดูเหมือนว่าจะมีความสอดคล้องกับoneway_testของcoinแพคเกจ:

> library(coin)
> pvalue(oneway_test(DV ~ IV | id,  distribution=approximate(B=999999)))
[1] 0.01608002
99 percent confidence interval:
 0.01575782 0.01640682

อย่างไรก็ตามทราบว่านี้ไม่ได้เช่นเดียวกับที่จัดไว้ให้โดย @caracal ในตัวอย่างของเขาเขารวมalternative="greater"ดังนั้นความแตกต่างในค่า p ~0.008กับ~0.016เทียบ

aovpแพคเกจข้อเสนอแนะในหนึ่งในคำตอบมีพิรุธผลิตที่ต่ำกว่าค่า P-และวิ่งพิรุธอย่างรวดเร็วแม้ในขณะที่ฉันพยายามที่ค่าสูงสำหรับIter, CaและmaxIterข้อโต้แย้ง:

library(lmPerm)
summary(aovp(DV ~ IV + Error(id/IV), data=df,  maxIter = 1000000000))
summary(aovp(DV ~ IV + Error(id/IV), data=df,  Iter = 1000000000))
summary(aovp(DV ~ IV + Error(id/IV), data=df,  Ca = 0.00000000001))

ที่กล่าวว่าการขัดแย้งที่ดูเหมือนว่าจะลดลงเล็กน้อยรูปแบบของ P-ค่าจาก~.03และ~.1(ผมได้ Thant ช่วงที่ใหญ่กว่าที่รายงานโดย @Henrik) เพื่อและ0.030.07

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