Test di ipotesi con Big Data


12

Come si eseguono test di ipotesi con big data? Ho scritto il seguente script MATLAB per sottolineare la mia confusione. Tutto ciò che fa è generare due serie casuali ed eseguire una semplice regressione lineare di una variabile sull'altra. Esegue questa regressione più volte utilizzando valori casuali diversi e riporta le medie. Ciò che tende ad accadere è quando aumento le dimensioni del campione, i valori p in media diventano molto piccoli.

So che poiché la potenza di un test aumenta con la dimensione del campione, dato un campione abbastanza grande, i valori p diventeranno abbastanza piccoli, anche con dati casuali, da rifiutare qualsiasi test di ipotesi. Ho chiesto in giro e alcune persone hanno detto che con "Big Data" è più importante guardare la dimensione dell'effetto, cioè. se il test è significativo E ha un effetto abbastanza grande per noi da preoccuparci. Questo perché in campioni di grandi dimensioni i valori p rilevano differenze molto piccole, come è spiegato qui .

Tuttavia, la dimensione dell'effetto può essere determinata ridimensionando i dati. Di seguito ridimensiono la variabile esplicativa a una grandezza abbastanza piccola che, data una dimensione del campione abbastanza grande, ha un effetto significativo sulla variabile dipendente.

Quindi mi chiedo, come possiamo ottenere informazioni dai Big Data se esistono questi problemi?

%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

Il test di ipotesi riguarda il rifiuto di modelli null. Con più dati è possibile rifiutare "modelli null più grandi", ad esempio avendo più covariate o testando più ipotesi.
Momeara,


2
L'elefante nella stanza è la rappresentatività dei "big data". Molti enormi set di dati raccolti su Internet sono (nella migliore delle ipotesi) esempi di praticità; vi sono pericoli nascosti ma ben noti che si nascondono nello sforzo di generalizzare dal campione a una popolazione più ampia o al processo in corso.
whuber

1
"Alcune persone hanno affermato che con" Big Data "è più importante osservare la dimensione dell'effetto". Con "Small Data" è importante esaminare anche la dimensione dell'effetto.
Ari B. Friedman

Risposte:


11

Come ha suggerito Peter, penso che una delle cose importanti nell'era dei "Big Data" sia mettere ancora meno enfasi sui valori di p, e più su una stima dell'entità dell'effetto.

Alcuni dei miei lavori lottano con questo in modi che ritengo siano ancora più insidiosi rispetto ai Big Data: per i modelli computazionali stocastici, il tuo potere è interamente una funzione della pazienza e delle risorse informatiche. È un costrutto artificiale.

Quindi torna alla stima dell'effetto. Anche se è significativo, un aumento dello 0,0001% in qualcosa importa nel mondo reale?

Ho anche giocato con l'inversione di alcune idee alla base del rapporto sul potere di studio. Invece di riferire la potenza che il tuo studio ha dovuto rilevare l'effetto osservato, riporta la dimensione minima dell'effetto che lo studio è stato potenziato per trovare. In questo modo il lettore può sapere se il significato era essenzialmente garantito.


7

L'intuizione che desideri verrà dagli intervalli di confidenza, non tanto dai valori p. Con una dimensione del campione molto grande otterrai intervalli di confidenza molto precisi, a condizione che i tuoi presupposti statistici siano corretti.


Grazie Mike. Stai dicendo in queste situazioni, l'esame degli intervalli di confidenza mostrerà che sono così ampi che non dovremmo davvero fidarci dell'esatto valore delle nostre stime?
JoeDanger,

Ciò che è interessante è quanto intuitivamente, la domanda è stata formulata come un problema per dati di grandi dimensioni (in cui i test di ipotesi che ci informano che è improbabile che qualcosa sia 0 sono piuttosto inutili) e non come un problema per i piccoli dati (dove le stime dei parametri sono molto imprecise e spesso, tutto ciò che si potrebbe dire è quanto sia improbabile che il parametro sia esattamente 0).
jona,

6

È importante esaminare la dimensione dell'effetto indipendentemente dal fatto che i dati siano grandi o piccoli.

Con dati puramente casuali, dovresti ottenere un risultato significativo il 5% delle volte. Questo è ciò che significa p-value. Questo vale anche indipendentemente dalle dimensioni del campione. Ciò che varia in base alla dimensione del campione è quanto piccolo deve essere significativo il valore dell'effetto; ma, con grandi campioni di puro rumore, sono probabili solo piccole differenze; con piccoli campioni, si verificano più grandi differenze più spesso. Pensa di lanciare una moneta 10 volte: ottenere 8, 9 o anche 10 teste non sarebbe assurdo. Tuttavia, se lanci una moneta 1000 volte, sarebbe davvero strano ottenere 800 teste, molto meno 900 o 1000 (i numeri esatti possono essere calcolati, ma non è questo il punto. Tuttavia, con 1000 lanci, anche una piccola deviazione da 500 sarà significativo.

ad esempio un test t con dati casuali, 2 vettori di lunghezza 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

Ho 0,07

Con due vettori della dimensione 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

Ho 0,05.


1
Florn, lo trovo ben redatto, ci sono dei documenti accademici / libri di testo statistici a cui si può fare riferimento che fanno un punto simile?
SAFEX,

1
Quale punto specifico? Riguardo alle dimensioni degli effetti? O su cosa sia casuale?
Peter Flom - Ripristina Monica

"Quello che varia con la dimensione del campione è quanto piccola la dimensione dell'effetto deve essere da trovare significativo", questo è molto intuitiva dal testo, ma c'è il lavoro accademico che dimostra questo punto
SAFEX

1
Non conosco un libro che lo provi esplicitamente - se vuoi una sorta di libro di statistiche matematiche, non sono io la persona a cui chiedere. Sono sicuro che qualcuno qui lo saprà, ma potrebbero non vedere questo thread di commenti. Forse fai una domanda separata come "Prova esplicita che ciò che varia ...."
Peter Flom - Ripristina Monica

1
fatto e grazie ancora per la descrizione intuitiva ( stats.stackexchange.com/questions/412643/… )
SAFEX,

2

Come già accennato, nel test delle ipotesi stai effettivamente investigando l'ipotesi nulla, di solito nella speranza che tu possa rifiutarla. Oltre alle altre risposte, vorrei proporre un approccio leggermente diverso.

In generale, se hai una sorta di teoria su cosa potrebbe succedere nei tuoi dati, potresti fare un'analisi di conferma (come l' analisi dei fattori di conferma come solo un esempio). Per fare ciò avresti bisogno di un modello. Puoi quindi vedere come il tuo modello si adatta ai dati. Questo approccio consentirebbe anche di testare modelli diversi uno contro l'altro. La cosa bella con i Big Data è che ti permette di fare questi test modello. Al contrario, in psicologia, ad esempio, spesso non è proprio possibile farlo, perché le dimensioni del campione tendono ad essere troppo piccole per questo tipo di metodi.

Mi rendo conto che in genere con i Big Data viene utilizzato un approccio esplorativo, perché non esiste ancora una teoria. Inoltre, poiché non so a cosa ti interessi esattamente, questa potrebbe non essere un'opzione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.