Büyük verilerle hipotez testlerini nasıl yapıyorsunuz? Karışıklığımı vurgulamak için aşağıdaki MATLAB senaryosunu yazdım. Tek yaptığı iki rastgele seri oluşturmak ve bir değişkenin diğerinde basit bir doğrusal regresyonunu çalıştırmaktır. Bu regresyonu farklı rasgele değerler kullanarak birkaç kez gerçekleştirir ve ortalamaları rapor eder. Örnekleme boyutunu büyüttüğümde gerçekleşme eğilimi, ortalama olarak p değerleri çok küçük oluyor.
Bir testin gücü örnek büyüklüğü ile arttığı için, yeterince büyük bir örnek verildiğinde, p değerlerinin herhangi bir hipotez testini reddetmek için rastgele verilerle bile yeterince küçük hale geleceğini biliyorum. Etrafa sordum ve bazı insanlar 'Büyük Veri' ile etki büyüklüğüne bakmak, yani daha önemli olduğunu söyledi. testin önemli olup olmadığı VE bizim ilgilenmemiz için yeterince büyük bir etkiye sahip olup olmadığı. Bunun nedeni, büyük örnek boyutlarında, p değerlerinin burada açıklandığı gibi çok küçük farklardan oluşmasıdır .
Ancak, etki boyutu verilerin ölçeklendirilmesiyle belirlenebilir. Açıklayıcı değişkeni, yeterince büyük bir örneklem büyüklüğü veren yeterince küçük bir büyüklükte ölçeklendirdiğimde, bağımlı değişken üzerinde büyük bir etkisi vardır.
Merak ediyorum, bu problemler varsa Büyük Verilerden nasıl bir fikir edinebiliriz?
%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