Test d'hypothèse avec Big Data

12

Comment effectuez-vous des tests d'hypothèses avec des mégadonnées? J'ai écrit le script MATLAB suivant pour souligner ma confusion. Il ne fait que générer deux séries aléatoires et exécuter une régression linéaire simple d'une variable sur l'autre. Il effectue cette régression plusieurs fois en utilisant différentes valeurs aléatoires et rapporte des moyennes. Ce qui a tendance à se produire lorsque j'augmente la taille de l'échantillon, les valeurs de p deviennent en moyenne très petites.

Je sais que parce que la puissance d'un test augmente avec la taille de l'échantillon, étant donné un échantillon suffisamment grand, les valeurs de p deviendront suffisamment petites, même avec des données aléatoires, pour rejeter tout test d'hypothèse. J'ai demandé autour et certaines personnes ont dit qu'avec le «Big Data», il est plus important de regarder la taille de l'effet, c'est-à-dire. si le test est significatif ET a un effet suffisamment important pour que nous nous en soucions. En effet, dans les échantillons de grande taille, les valeurs de p s'accumuleront de très petites différences, comme cela est expliqué ici .

Cependant, la taille de l'effet peut être déterminée par la mise à l'échelle des données. Ci-dessous, je modifie la variable explicative à une amplitude suffisamment petite pour que, étant donné un échantillon suffisamment grand, elle ait un effet significatif important sur la variable dépendante.

Je me demande donc, comment pouvons-nous obtenir un aperçu du Big Data si ces problèmes existent?

%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
JoeDanger
la source
Le test d'hypothèse consiste à rejeter les modèles nuls. Avec plus de données, vous pouvez rejeter les «modèles nuls plus gros», par exemple en ayant plus de covariables ou en testant plusieurs hypothèses.
momeara
2
L'éléphant dans la salle est la représentativité du «big data». De nombreux ensembles de données énormes collectés sur Internet sont (au mieux) des exemples de commodité; il existe des dangers cachés mais bien connus qui se cachent dans l'effort de généralisation de l'échantillon à une population plus large ou au processus en cours.
whuber
1
"Certaines personnes ont dit qu'avec le" Big Data ", il est plus important de regarder la taille de l'effet." Avec «Small Data», il est également important de regarder la taille de l'effet.
Ari B. Friedman

Réponses:

11

Comme Peter l'a suggéré, je pense qu'une des choses importantes à l'ère du "Big Data" est de mettre encore moins l'accent sur les valeurs p, et plus sur une estimation de l'ampleur de l'effet.

Certains de mes propres travaux ont du mal avec cela d'une manière qui me semble encore plus insidieuse qu'avec le Big Data - pour les modèles de calcul stochastiques, votre puissance est entièrement fonction de la patience et des ressources informatiques. C'est une construction artificielle.

Revenons donc à l'estimation de l'effet. Même si c'est important, une augmentation de 0,0001% de quelque chose importe-t-elle dans le monde réel?

J'ai également essayé de renverser certaines des idées qui sous-tendent le rapport sur le pouvoir d'étude. Au lieu de rapporter la puissance de votre étude pour détecter l'effet observé, signalez la taille minimale de l'effet que l'étude a été poussée à trouver. De cette façon, le lecteur peut savoir si la signification était essentiellement garantie.

Fomite
la source
7

Les informations que vous désirez proviendront des intervalles de confiance, pas autant des valeurs de p. Avec un échantillon de très grande taille, vous obtiendrez des intervalles de confiance très précis, à condition que vos hypothèses statistiques soient correctes.

Mike Flynn
la source
Merci Mike. Voulez-vous dire que dans ces situations, l'examen des intervalles de confiance montrera qu'ils sont si larges que nous ne devrions pas vraiment nous fier à la valeur exacte de nos estimations?
JoeDanger
Ce qui est intéressant, c'est comment intuitivement, la question a été formulée comme un problème pour les grandes données (où les tests d'hypothèse nous informant de la probabilité que quelque chose soit 0 sont plutôt inutiles), et non comme un problème pour les petites données (où les estimations des paramètres sont très imprécises et souvent, tout ce que l'on peut dire, c'est la probabilité que le paramètre soit précisément 0).
jona
6

Il est important de regarder la taille de l'effet, que les données soient grandes ou petites.

Avec des données purement aléatoires, vous devriez obtenir un résultat significatif 5% du temps. C'est ce que signifie la valeur p. Cela est également vrai quelle que soit la taille de l'échantillon. Ce qui varie avec la taille de l’échantillon, c’est la taille de l’effet à trouver significative mais, avec de grands échantillons de bruit pur, seules de petites différences sont probables; avec de petits échantillons, des différences plus importantes se produisent plus souvent. Pensez à lancer une pièce 10 fois: obtenir 8, 9 ou même 10 têtes ne serait pas absurde. Cependant, si vous lancez une pièce 1000 fois, il serait vraiment étrange d'obtenir 800 têtes, encore moins 900 ou 1000 (les chiffres exacts peuvent être calculés, mais ce n'est pas le point. Cependant, avec 1000 lancers, même une petite déviation à partir de 500 sera significatif.

par exemple un test t avec des données aléatoires, 2 vecteurs de longueur 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

J'ai 0,07

Avec deux vecteurs de taille 1000

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

J'ai 0,05.

Peter Flom - Réintégrer Monica
la source
1
Florn, je trouve cela bien rédigé, y a-t-il des documents universitaires / manuels de statistiques auxquels on peut se référer qui font un point similaire?
SAFEX
1
Quel point précis? A propos de la recherche des tailles d'effet? Ou sur ce qu'est le hasard?
Peter Flom - Réintègre Monica
"Ce qui varie avec la taille de l'échantillon, c'est la taille de la taille de l'effet qui doit être trouvée significative", c'est très intuitif d'après le texte, mais y a-t-il un travail académique qui prouve ce point
SAFEX
1
Je ne connais pas de livre qui le prouve explicitement - si vous voulez une sorte de livre de statistiques mathématiques, je ne suis pas la personne à demander. Je suis sûr que quelqu'un ici le saura, mais il se peut qu'il ne voie pas ce fil de commentaire. Peut-être poser une question distincte comme "Preuve explicite que ce qui varie ...."
Peter Flom - Réintégrer Monica
1
fait et merci encore pour la description intuitive ( stats.stackexchange.com/questions/412643/… )
SAFEX
2

Comme cela a déjà été mentionné, dans les tests d'hypothèse, vous étudiez en réalité l'hypothèse nulle, généralement dans l'espoir de pouvoir la rejeter. En plus des autres réponses, je voudrais proposer une approche quelque peu différente.

D'une manière générale, si vous avez une sorte de théorie sur ce qui pourrait se passer dans vos données, vous pourriez faire une analyse de confirmation (comme l' analyse factorielle confirmatoire comme un seul exemple). Pour ce faire, vous auriez besoin d'un modèle. Vous pouvez alors voir dans quelle mesure votre modèle correspond aux données. Cette approche permettrait également de tester différents modèles les uns contre les autres. Ce qui est bien avec le Big Data, c'est qu'il vous permet de faire ces tests de modèle. En revanche, en psychologie, par exemple, il n'est souvent pas vraiment possible de le faire, car les tailles d'échantillon ont tendance à être trop petites pour ce type de méthodes.

Je me rends compte qu'avec le Big Data, une approche exploratoire est généralement utilisée, car il n'y a pas encore de théorie. De plus, comme je ne sais pas exactement ce qui vous intéresse, ce n'est peut-être pas vraiment une option.

Jens Kouros
la source