คุณจะทำการทดสอบสมมติฐานด้วยข้อมูลขนาดใหญ่ได้อย่างไร ฉันเขียนสคริปต์ 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