Teste de hipótese com Big Data


12

Como você realiza testes de hipóteses com big data? Eu escrevi o seguinte script do MATLAB para enfatizar minha confusão. Tudo o que ele faz é gerar duas séries aleatórias e executar uma regressão linear simples de uma variável na outra. Ele realiza essa regressão várias vezes usando diferentes valores aleatórios e médias de relatórios. O que tende a acontecer é que, à medida que aumenta o tamanho da amostra, os valores de p ficam, em média, muito pequenos.

Eu sei que, como o poder de um teste aumenta com o tamanho da amostra, dada uma amostra grande o suficiente, os valores de p se tornarão pequenos o suficiente, mesmo com dados aleatórios, para rejeitar qualquer teste de hipótese. Eu perguntei ao redor e algumas pessoas disseram que com 'Big Data' é mais importante observar o tamanho do efeito, ou seja. se o teste é significativo E tem um efeito suficientemente grande para que possamos nos preocupar. Isso ocorre porque em tamanhos de amostra grandes, os valores p captam diferenças muito pequenas, como é explicado aqui .

No entanto, o tamanho do efeito pode ser determinado pela escala dos dados. Abaixo da escala da variável explicativa para uma magnitude suficientemente pequena que, dado um tamanho de amostra suficientemente grande, ela tem um grande efeito significativo na variável dependente.

Então, eu estou me perguntando, como podemos obter informações sobre o Big Data se esses problemas existem?

%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

O teste de hipóteses trata da rejeição de modelos nulos. Com mais dados, você pode rejeitar "modelos nulos maiores", por exemplo, tendo mais covariáveis ​​ou testando várias hipóteses.
Momeara 13/08


2
O elefante na sala é a representatividade do "big data". Muitos grandes conjuntos de dados coletados na Internet são (na melhor das hipóteses) amostras de conveniência; existem perigos ocultos, mas bem conhecidos, à espreita no esforço de generalizar da amostra para uma população maior ou processo contínuo.
whuber

1
"Algumas pessoas disseram que, com o 'Big Data', é mais importante observar o tamanho do efeito". Com 'Dados pequenos', é importante observar também o tamanho do efeito.
Ari B. Friedman

Respostas:


11

Como Peter sugeriu, acho que uma das coisas importantes na era do "Big Data" é colocar ainda menos ênfase nos valores de p e mais em uma estimativa da magnitude do efeito.

Parte do meu trabalho lida com isso de maneiras que eu acho ainda mais insidiosas do que com o Big Data - para modelos computacionais estocásticos, seu poder é inteiramente uma função da paciência e dos recursos de computação. É uma construção artificial.

Então volte para a estimativa do efeito. Mesmo que seja significativo, um aumento de 0,0001% em algo importa no mundo real?

Também andei brincando com a reversão de algumas das idéias por trás do relatório do poder de estudo. Em vez de relatar o poder que seu estudo teve para detectar o efeito observado, relatou o tamanho mínimo de efeito que o estudo foi acionado para encontrar. Dessa forma, o leitor pode saber se o significado era essencialmente garantido.


7

A percepção que você deseja virá de intervalos de confiança, não tanto de valores-p. Com um tamanho de amostra muito grande, você obterá intervalos de confiança muito precisos, desde que suas suposições estatísticas estejam corretas.


Obrigado Mike. Você está dizendo que nessas situações o exame dos intervalos de confiança mostrará que eles são tão amplos que não devemos realmente confiar no valor exato de nossas estimativas?
JoeDanger

O interessante é que, intuitivamente, a pergunta foi formulada como um problema para grandes dados (onde testes de hipóteses nos informando quão improvável algo é 0) são inúteis) e não como um problema para pequenos dados (onde as estimativas de parâmetros são muito imprecisas e, muitas vezes, tudo o que se poderia dizer é quão improvável é que o parâmetro seja precisamente 0).
Jona

6

É importante observar o tamanho do efeito, independentemente de os dados serem grandes ou pequenos.

Com dados puramente aleatórios, você deve obter um resultado significativo 5% do tempo. É isso que o valor p significa. Isso também é verdade, independentemente do tamanho da amostra. O que varia com o tamanho da amostra é quão pequeno o tamanho do efeito deve ser considerado significativo; mas, com grandes amostras de ruído puro, apenas pequenas diferenças são prováveis; com amostras pequenas, diferenças maiores ocorrem com mais frequência. Pense em jogar uma moeda 10 vezes: obter 8, 9 ou até 10 cabeças não seria absurdo. No entanto, se você jogar uma moeda 1000 vezes, seria realmente estranho obter 800 cabeças, muito menos 900 ou 1000 (os números exatos podem ser calculados, mas esse não é o ponto. No entanto, com 1000 lançamentos, mesmo um pequeno desvio de 500 será significativo.

por exemplo, um teste t com dados aleatórios, 2 vetores de comprimento 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

Eu tenho 0,07

Com dois vetores do tamanho 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

Eu tenho 0,05.


1
Florn, acho isso bem elaborado, há algum artigo acadêmico / estatístico que alguém possa referenciar que faça um argumento semelhante?
SAFEX 12/06/19

1
Qual ponto específico? Sobre olhar tamanhos de efeito? Ou sobre o que é aleatório?
Peter Flom - Restabelece Monica

"O que varia com o tamanho da amostra é o quão pequeno o tamanho do efeito tem de ser de ser encontrado significativo", isto é muito intuitiva do texto, mas há trabalho acadêmico que comprova este ponto
SAFEX

1
Não conheço um livro que o comprove explicitamente - se você quiser algum tipo de livro de estatística matemática, não sou eu quem perguntará. Tenho certeza de que alguém aqui saberá, mas eles podem não ver este tópico de comentário. Talvez faça uma pergunta separada como "Prova explícita de que o que varia ...."
Peter Flom - Restabelece Monica

1
pronto e obrigado novamente pela descrição intuitiva ( stats.stackexchange.com/questions/412643/… )
SAFEX

2

Como já foi mencionado, no teste de hipóteses você está realmente investigando a hipótese nula, geralmente na esperança de poder rejeitá-la. Além das outras respostas, gostaria de propor uma abordagem um pouco diferente.

De um modo geral, se você tem algum tipo de teoria sobre o que pode estar acontecendo em seus dados, pode fazer uma análise confirmatória (como a análise fatorial confirmatória como apenas um exemplo). Para fazer isso, você precisaria de um modelo. Você pode ver como seu modelo se ajusta aos dados. Essa abordagem também permitiria testar modelos diferentes entre si. O bom do Big Data é que ele permite que você efetue esses testes de modelo. Em contraste, na psicologia, por exemplo, muitas vezes não é realmente possível fazê-lo, porque o tamanho da amostra tende a ser muito pequeno para esse tipo de método.

Percebo que, normalmente, com Big Data, uma abordagem exploratória é usada, porque ainda não há teoria. Além disso, como não sei exatamente em que você está interessado, isso pode não ser realmente uma opção.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.