การทดสอบสมมติฐานด้วยข้อมูลขนาดใหญ่


12

คุณจะทำการทดสอบสมมติฐานด้วยข้อมูลขนาดใหญ่ได้อย่างไร ฉันเขียนสคริปต์ MATLAB ต่อไปนี้เพื่อเน้นความสับสนของฉัน สิ่งที่มันทำคือสร้างชุดสุ่มสองชุดและเรียกใช้การถดถอยเชิงเส้นอย่างง่ายของตัวแปรหนึ่งในอีกตัวแปรหนึ่ง จะดำเนินการถดถอยนี้หลายครั้งโดยใช้ค่าสุ่มที่แตกต่างกันและรายงานค่าเฉลี่ย สิ่งที่เกิดขึ้นคือเมื่อฉันเพิ่มขนาดตัวอย่างค่า p โดยเฉลี่ยจะน้อยมาก

ฉันรู้ว่าเนื่องจากพลังของการทดสอบเพิ่มขึ้นตามขนาดตัวอย่างเมื่อได้รับตัวอย่างมากพอค่า p จะมีขนาดเล็กพอแม้จะมีข้อมูลแบบสุ่มเพื่อปฏิเสธการทดสอบสมมติฐานใด ๆ ฉันถามไปรอบ ๆ และบางคนบอกว่าด้วย 'ข้อมูลขนาดใหญ่' สำคัญกว่าที่จะดูขนาดเอฟเฟกต์เช่น การทดสอบนั้นสำคัญหรือไม่และมีผลกระทบมากพอที่เราจะสนใจหรือไม่ นี้เป็นเพราะในขนาดตัวอย่างที่มีขนาดใหญ่ P-ค่าจะรับความแตกต่างของขนาดเล็กมากเหมือนมันจะมีการอธิบายที่นี่

อย่างไรก็ตามขนาดของเอฟเฟกต์สามารถกำหนดได้โดยการปรับขนาดของข้อมูล ด้านล่างฉันปรับขนาดตัวแปรอธิบายให้มีขนาดเล็กพอที่ให้ขนาดตัวอย่างใหญ่พอมันมีผลอย่างมากต่อตัวแปรตาม

ดังนั้นฉันสงสัยว่าเราจะได้รับข้อมูลเชิงลึกจาก Big Data ได้อย่างไรหากปัญหาเหล่านี้มีอยู่

%make average
%decide from how many values to make average
obs_inside_average = 100;

%make average counter
average_count = 1;

for average_i = 1:obs_inside_average,






%do regression loop
%number of observations
n = 1000;

%first independent variable (constant term)
x(1:10,1) = 1; 

%create dependent variable and the one regressor
for i = 1:10,

    y(i,1) = 100 + 100*rand();

    x(i,2) = 0.1*rand();

end





%calculate coefficients
beta = (x'*x)\x'*y;

%calculate residuals
u = y - x*beta;

%calcuatate sum of squares residuals
s_2 = (n-2)\u'*u;

%calculate t-statistics
design = s_2*inv(x'*x);

%calculate standard errors
stn_err = [sqrt(design(1,1));sqrt(design(2,2))];

%calculate t-statistics
t_stat(1,1) = sqrt(design(1,1))\(beta(1,1) - 0);
t_stat(2,1) = sqrt(design(2,2))\(beta(2,1) - 0);

%calculate p-statistics
p_val(1,1) = 2*(1 - tcdf(abs(t_stat(1,1)), n-2));
p_val(2,1) = 2*(1 - tcdf(abs(t_stat(2,1)), n-2));






%save first beta to data column 1
data(average_i,1) = beta(1,1);

%save second beta to data column 2
data(average_i,2) = beta(2,1);

%save first s.e. to data column 3
data(average_i,3) = stn_err(1,1);

%save second s.e. to data column 4
data(average_i,4) = stn_err(2,1);

%save first t-stat to data column 5
data(average_i,5) = t_stat(1,1);

%save second t-stat to data column 6
data(average_i,6) = t_stat(2,1);

%save first p-val to data column 7
data(average_i,7) = p_val(1,1);

%save second p-val to data column 8
data(average_i,8) = p_val(2,1);

end

%calculate first and second beta average
b1_average = mean(data(:,1));
b2_average = mean(data(:,2));

beta = [b1_average;b2_average];

%calculate first and second s.e. average
se1_average = mean(data(:,3));
se2_average = mean(data(:,4));

stn_err = [se1_average;se2_average];

%calculate first and second t-stat average
t1_average = mean(data(:,5));
t2_average = mean(data(:,6));

t_stat = [t1_average;t2_average];

%calculate first and second p-val average
p1_average = mean(data(:,7));
p2_average = mean(data(:,8));

p_val = [p1_average;p2_average];

beta
stn_err
t_stat
p_val

การทดสอบสมมติฐานเกี่ยวกับการปฏิเสธแบบจำลองว่าง ด้วยข้อมูลที่มากขึ้นคุณสามารถปฏิเสธ "แบบจำลองโมฆะที่ใหญ่กว่า" เช่นโดยมีเพื่อนร่วมระบบมากขึ้นหรือทดสอบสมมติฐานหลายรายการ
momeara


2
ช้างในห้องเป็นตัวแทนของ "ข้อมูลขนาดใหญ่" ชุดข้อมูลขนาดใหญ่จำนวนมากที่รวบรวมบนอินเทอร์เน็ตเป็นตัวอย่างที่สะดวกสบายที่สุด มีอันตรายที่ซ่อนอยู่ แต่เป็นที่รู้จักกันดีที่แฝงตัวอยู่ในความพยายามที่จะพูดคุยจากกลุ่มตัวอย่างไปสู่กลุ่มประชากรขนาดใหญ่หรือกระบวนการที่กำลังดำเนินอยู่
whuber

1
"บางคนกล่าวว่าด้วย 'ข้อมูลขนาดใหญ่' สำคัญกว่าที่จะดูขนาดเอฟเฟกต์" ด้วย 'ข้อมูลขนาดเล็ก' เป็นสิ่งสำคัญที่จะต้องดูขนาดของเอฟเฟกต์ด้วย
Ari B. Friedman

คำตอบ:


11

ดังที่ปีเตอร์แนะนำฉันคิดว่าหนึ่งในสิ่งสำคัญในยุคของ "ข้อมูลขนาดใหญ่" คือการให้ความสำคัญกับค่า p น้อยลงและมากขึ้นในการประมาณขนาดของผลกระทบ

งานของตัวเองบางอย่างต้องดิ้นรนกับเรื่องนี้ด้วยวิธีที่ฉันคิดว่าร้ายกาจยิ่งกว่ากับ Big Data - สำหรับโมเดลการคำนวณแบบสุ่มพลังของคุณนั้นเป็นหน้าที่ของความอดทนและทรัพยากรในการคำนวณ มันเป็นงานประดิษฐ์

ดังนั้นกลับไปที่การประมาณผลกระทบ แม้ว่าความสำคัญมันจะเพิ่มขึ้น 0.0001% ในบางสิ่งที่สำคัญในโลกแห่งความเป็นจริงหรือไม่?

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


7

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


ขอบคุณไมค์ คุณกำลังพูดว่าในสถานการณ์เหล่านี้การตรวจสอบช่วงความเชื่อมั่นจะแสดงให้เห็นว่าพวกเขามีความกว้างมากจนเราไม่ควรเชื่อถือมูลค่าที่แน่นอนของการประเมินของเรา?
JoeDanger

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

6

สิ่งสำคัญคือต้องดูขนาดของเอฟเฟกต์ไม่ว่าข้อมูลนั้นจะใหญ่หรือเล็กก็ตาม

ด้วยข้อมูลแบบสุ่มอย่างหมดจดคุณควรได้รับผลที่สำคัญ 5% ของเวลา นั่นคือความหมายของค่า p สิ่งนี้เป็นจริงเช่นกันไม่ว่าขนาดตัวอย่างจะเป็นเท่าใด สิ่งที่แตกต่างกับขนาดของกลุ่มตัวอย่างคือขนาดของเอฟเฟกต์ที่จะพบได้นั้นมีนัยสำคัญ แต่ด้วยเสียงตัวอย่างบริสุทธิ์ขนาดใหญ่มีความแตกต่างเพียงเล็กน้อยเท่านั้น ด้วยตัวอย่างเล็ก ๆ ความแตกต่างที่ยิ่งใหญ่เกิดขึ้นบ่อยครั้งมากขึ้น คิดว่าการโยนเหรียญ 10 ครั้ง: การได้ 8, 9 หรือ 10 หัวจะไม่ไร้สาระ อย่างไรก็ตามหากคุณโยนเหรียญ 1,000 ครั้งมันจะแปลกจริง ๆ ที่จะได้รับ 800 หัวน้อยกว่ามาก 900 หรือ 1,000 (ตัวเลขที่แน่นอนสามารถคำนวณได้ แต่นั่นไม่ใช่จุดอย่างไรก็ตามด้วย 1,000 ทอยแม้แต่การเบี่ยงเบนเล็กน้อย จาก 500 จะมีนัยสำคัญ

เช่นการทดสอบทีด้วยข้อมูลสุ่มความยาว 2 เวกเตอร์ 10 ตัว

set.seed(102811)
samp.size <- 10
t10 <- vector("numeric", 100)
for (i in 1:100){
x <- rnorm(samp.size)
y <- rnorm(samp.size)
t <- t.test(x,y)
t10[i] <- t$p.value
sum(t10 < .05)/100

ฉันได้ 0.07

ด้วยเวกเตอร์สองขนาด 1,000

set.seed(10291)
samp.size <- 1000
t1000 <- vector("numeric", 100)
for (i in 1:100){
  x <- rnorm(samp.size)
  y <- rnorm(samp.size)
  t <- t.test(x,y)
  t1000[i] <- t$p.value
}  
sum(t1000 < 0.05)/100

ฉันได้ 0.05


1
ฉันพบว่าร่างที่ดีนี้มีเอกสารทางวิชาการ / สถิติตำราใดเล่มหนึ่งที่สามารถอ้างอิงซึ่งสร้างประเด็นที่คล้ายกันได้หรือไม่?
SAFEX

1
จุดไหนที่เจาะจง? เกี่ยวกับการดูขนาดเอฟเฟกต์? หรือเกี่ยวกับการสุ่มคืออะไร?
Peter Flom

"สิ่งที่แตกต่างกันกับขนาดของกลุ่มตัวอย่างเป็นวิธีที่เล็กขนาดผลจะต้องมีการที่จะพบได้อย่างมีนัยสำคัญ" นี้จะง่ายมากจากข้อความ แต่มีผลงานทางวิชาการที่พิสูจน์ให้เห็นถึงจุดนี้
SAFEX

1
ฉันไม่รู้หนังสือที่พิสูจน์ได้อย่างชัดเจน - หากคุณต้องการหนังสือสถิติคณิตศาสตร์บางประเภทฉันไม่ใช่คนที่จะถาม ฉันแน่ใจว่าบางคนที่นี่จะรู้ แต่พวกเขาอาจไม่เห็นกระทู้ความคิดเห็นนี้ อาจจะถามคำถามแยกต่างหากเช่น "หลักฐานที่ชัดเจนว่าอะไรจะแตกต่างกันไป ... "
Peter Flom

1
เสร็จแล้วและขอขอบคุณอีกครั้งสำหรับคำอธิบายที่ใช้งานง่าย ( stats.stackexchange.com/questions/412643/ … )
SAFEX

2

ดังที่ได้กล่าวไปแล้วในการทดสอบสมมติฐานคุณกำลังตรวจสอบสมมติฐานว่างโดยปกติแล้วด้วยความหวังว่าคุณจะปฏิเสธได้ นอกเหนือจากคำตอบอื่น ๆ ฉันขอเสนอวิธีการที่แตกต่างกันบ้าง

โดยทั่วไปหากคุณมีทฤษฎีบางอย่างเกี่ยวกับสิ่งที่อาจเกิดขึ้นในข้อมูลของคุณคุณสามารถทำการวิเคราะห์เชิงยืนยัน (เช่นการวิเคราะห์ปัจจัยเชิงยืนยันเป็นเพียงตัวอย่างเดียว) ในการทำเช่นนั้นคุณจะต้องมีแบบจำลอง จากนั้นคุณสามารถดูว่าแบบจำลองของคุณเหมาะสมกับข้อมูลอย่างไร วิธีการนี้จะช่วยให้สามารถทดสอบแบบจำลองที่แตกต่างกัน สิ่งที่ดีกับ Big Data คือมันช่วยให้คุณทำการทดสอบแบบจำลองเหล่านี้ได้ ในทางตรงกันข้ามในทางจิตวิทยาเช่นมันมักจะเป็นไปไม่ได้ที่จะทำเช่นนั้นเพราะขนาดตัวอย่างมักจะเล็กเกินไปสำหรับวิธีการเหล่านี้

ฉันรู้ว่าโดยทั่วไปแล้วกับ Big Data จะใช้วิธีการสำรวจเนื่องจากยังไม่มีทฤษฎี นอกจากนี้เนื่องจากฉันไม่ทราบว่าคุณสนใจสิ่งนี้จริง ๆ อาจไม่ใช่ตัวเลือก

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