¿Cómo se realizan las pruebas de hipótesis con Big Data? Escribí el siguiente script de MATLAB para enfatizar mi confusión. Todo lo que hace es generar dos series aleatorias y ejecutar una regresión lineal simple de una variable sobre la otra. Realiza esta regresión varias veces utilizando diferentes valores aleatorios y promedios de informes. Lo que suele suceder es que a medida que aumento el tamaño de la muestra, los valores p en promedio se vuelven muy pequeños.
Sé que debido a que el poder de una prueba aumenta con el tamaño de la muestra, dada una muestra lo suficientemente grande, los valores p serán lo suficientemente pequeños, incluso con datos aleatorios, para rechazar cualquier prueba de hipótesis. Pregunté y algunas personas dijeron que con 'Big Data' es más importante observar el tamaño del efecto, es decir. si la prueba es significativa Y tiene un efecto lo suficientemente grande como para que nos importe. Esto se debe a que en los tamaños de muestra grandes, los valores p recogerán diferencias muy pequeñas, como se explica aquí .
Sin embargo, el tamaño del efecto puede determinarse mediante el escalado de los datos. A continuación, escalo la variable explicativa a una magnitud lo suficientemente pequeña que, dado un tamaño de muestra lo suficientemente grande, tiene un gran efecto significativo sobre la variable dependiente.
Entonces, me pregunto, ¿cómo podemos obtener una idea de Big Data si existen estos problemas?
%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
fuente
Respuestas:
Como sugirió Peter, creo que una de las cosas importantes en la era de "Big Data" es poner aún menos énfasis en los valores p, y más en una estimación de la magnitud del efecto.
Algunos de mis propios trabajos luchan con esto de una manera que creo que es aún más insidiosa que con Big Data: para los modelos informáticos estocásticos, su poder es completamente una función de paciencia y recursos informáticos. Es una construcción artificial.
Así que regrese a la estimación del efecto. Incluso si es significativo, ¿un aumento del 0,0001% en algo importa en el mundo real?
También he estado jugando con revertir algunas de las ideas detrás de informar sobre el poder del estudio. En lugar de informar el poder que su estudio tenía para detectar el efecto observado, informar el tamaño mínimo del efecto que el estudio tuvo poder para encontrar. De esa manera, el lector puede saber si la importancia estaba esencialmente garantizada.
fuente
La idea que desea vendrá de los intervalos de confianza, no tanto de los valores p. Con un tamaño de muestra muy grande, obtendrá intervalos de confianza muy precisos, siempre que sus suposiciones estadísticas sean correctas.
fuente
Es importante observar el tamaño del efecto independientemente de si los datos son grandes o pequeños.
Con datos puramente aleatorios, debe obtener un resultado significativo el 5% del tiempo. Eso es lo que significa el valor p. Esto también es cierto independientemente del tamaño de la muestra. Lo que varía con el tamaño de la muestra es cuán pequeño debe ser significativo el tamaño del efecto; pero, con grandes muestras de ruido puro, solo es probable que haya pequeñas diferencias; con muestras pequeñas, las diferencias más grandes ocurren con mayor frecuencia. Piense en lanzar una moneda 10 veces: obtener 8, 9 o incluso 10 caras no sería absurdo. Sin embargo, si arroja una moneda 1000 veces, sería realmente extraño obtener 800 caras, mucho menos 900 o 1000 (se pueden calcular los números exactos, pero ese no es el punto. Sin embargo, con 1000 lanzamientos, incluso una pequeña desviación a partir de 500 será significativo.
Por ejemplo, una prueba t con datos aleatorios, 2 vectores de longitud 10
Obtuve 0.07
Con dos vectores de tamaño 1000
Tengo 0.05.
fuente
Como ya se mencionó, en las pruebas de hipótesis en realidad está investigando la hipótesis nula, generalmente con la esperanza de poder rechazarla. Además de las otras respuestas, me gustaría proponer un enfoque algo diferente.
En términos generales, si tiene algún tipo de teoría sobre lo que podría estar sucediendo en sus datos, podría hacer un análisis confirmatorio (como el análisis factorial confirmatorio como solo un ejemplo). Para hacerlo, necesitarías un modelo. Luego puede ver qué tan bien su modelo se ajusta a los datos. Este enfoque también permitiría probar diferentes modelos uno contra el otro. Lo bueno de Big Data es que te permite hacer estas pruebas de modelo. En contraste, en psicología, por ejemplo, a menudo no es realmente posible hacerlo, porque los tamaños de muestra tienden a ser demasiado pequeños para este tipo de métodos.
Me doy cuenta de que, por lo general, con Big Data, se utiliza un enfoque exploratorio, porque todavía no existe una teoría. Además, dado que no sé qué le interesa exactamente, esto podría no ser realmente una opción.
fuente