Bagaimana Anda melakukan tes hipotesis dengan data besar? Saya menulis skrip MATLAB berikut untuk menekankan kebingungan saya. Yang dilakukannya hanyalah menghasilkan dua seri acak, dan menjalankan regresi linier sederhana dari satu variabel di variabel lainnya. Itu melakukan regresi ini beberapa kali menggunakan nilai acak yang berbeda dan rata-rata laporan. Apa yang cenderung terjadi adalah ketika saya meningkatkan ukuran sampel, nilai-p rata-rata menjadi sangat kecil.
Saya tahu bahwa karena kekuatan tes meningkat dengan ukuran sampel, mengingat sampel yang cukup besar, nilai-p akan menjadi cukup kecil, bahkan dengan data acak, untuk menolak tes hipotesis apa pun. Saya bertanya-tanya dan beberapa orang mengatakan bahwa dengan 'Big Data' lebih penting untuk melihat ukuran efek, yaitu. apakah tes ini signifikan DAN memiliki efek yang cukup besar untuk kita pedulikan. Ini karena dalam ukuran sampel besar nilai-p akan mengambil perbedaan yang sangat kecil, seperti yang dijelaskan di sini .
Namun, ukuran efek dapat ditentukan dengan penskalaan data. Di bawah ini saya skala variabel penjelas ke besarnya cukup kecil yang diberikan ukuran sampel yang cukup besar, itu memiliki efek signifikan besar pada variabel dependen.
Jadi saya bertanya-tanya, bagaimana kita mendapatkan wawasan dari Big Data jika masalah ini ada?
%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