Проверка гипотез с большими данными

12

Как вы выполняете проверки гипотез с большими данными? Я написал следующий скрипт MATLAB, чтобы подчеркнуть мою путаницу. Все, что он делает, это генерирует два случайных ряда и запускает простую линейную регрессию одной переменной с другой. Он выполняет эту регрессию несколько раз, используя разные случайные значения и сообщает средние значения. Как правило, при увеличении размера выборки значения p в среднем становятся очень маленькими.

Я знаю, что поскольку мощность теста возрастает с увеличением размера выборки, учитывая достаточно большую выборку, значения p станут достаточно малыми даже при случайных данных, чтобы отклонить любой тест гипотезы. Я спрашивал вокруг, и некоторые люди говорили, что с «большими данными» важнее смотреть на величину эффекта, т.е. является ли тест значительным И имеет ли эффект, достаточно большой для нас, чтобы о нем заботиться. Это связано с тем, что при больших размерах выборки p-значения будут очень сильно различаться, как это объясняется здесь .

Однако размер эффекта можно определить путем масштабирования данных. Ниже я масштабирую объясняющую переменную до достаточно малой величины, что при достаточно большом размере выборки оказывает существенное влияние на зависимую переменную.

Поэтому мне интересно, как мы можем получить представление о больших данных, если эти проблемы существуют?

%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
источник
Проверка гипотезы об отклонении нулевых моделей. С большим количеством данных вы можете отклонить «большие нулевые модели», например, имея больше ковариат или проверяя несколько гипотез.
momeara
2
Слон в комнате - репрезентативность «больших данных». Многие огромные наборы данных, собранные в Интернете, являются (в лучшем случае) образцами удобства; Есть скрытые, но хорошо известные опасности, скрывающиеся в усилиях по обобщению выборки для большей популяции или продолжающемуся процессу.
whuber
1
«Некоторые люди говорят, что с« большими данными »важнее смотреть на величину эффекта». С «Маленькими данными» важно также учитывать размер эффекта.
Ари Б. Фридман

Ответы:

11

Как предположил Питер, я думаю, что одна из важных вещей в эпоху «больших данных» - это уделять еще меньше внимания значениям р, а больше - оценке величины эффекта.

Некоторые из моих собственных работ борются с этим способами, которые, на мой взгляд, еще более коварны, чем с большими данными - для стохастических вычислительных моделей ваша мощь полностью зависит от терпения и вычислительных ресурсов. Это искусственная конструкция.

Итак, вернемся к оценке эффекта. Даже если это важно, увеличение на 0,0001% чего-либо имеет значение в реальном мире?

Я также пытался изменить некоторые идеи, лежащие в основе сообщения о силе обучения. Вместо того, чтобы сообщать о силе, которую ваше исследование должно было обнаружить наблюдаемый эффект, сообщая о минимальном размере эффекта, который было найдено для исследования. Таким образом, читатель может узнать, гарантировано ли значение.

фомиты
источник
7

Понимание того, что вы желаете, будет основываться на доверительных интервалах, а не на р-значениях. При очень большом размере выборки вы получите очень точные доверительные интервалы, если ваши статистические предположения верны.

Майк Флинн
источник
Спасибо майк Вы говорите, что в этих ситуациях проверка доверительных интервалов покажет, что они настолько широки, что нам не следует доверять точным значениям наших оценок?
JoeDanger
Интересно то, насколько интуитивно, вопрос был сформулирован как проблема для больших данных (где проверки гипотез, сообщающие нам, что маловероятно, чтобы что-то было 0, довольно бессмысленно), а не как проблема для небольших данных (где оценки параметров очень неточны и часто все, что можно сказать, это то, насколько маловероятно, чтобы параметр был точно равен 0).
Иона
6

Важно смотреть на размер эффекта независимо от того, являются ли данные большими или маленькими.

С чисто случайными данными вы должны получить значительный результат в 5% случаев. Вот что означает р-значение. Это также верно независимо от размера выборки. Что зависит от размера выборки, так это то, насколько маленький размер эффекта должен быть найден значительным; но при больших выборках чистого шума возможны только небольшие различия; с небольшими выборками большие различия встречаются чаще. Подумайте о подбрасывании монеты 10 раз: получение 8, 9 или даже 10 голов не было бы абсурдом. Однако, если вы подбрасываете монету 1000 раз, было бы странно получить 800 голов, а тем более 900 или 1000 (точные числа можно вычислить, но это не главное. Однако при 1000 бросках даже небольшое отклонение от 500 будет значительным.

например, t-критерий со случайными данными, 2 вектора длиной 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

Я получил 0,07

С двумя векторами размера 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

Я получил 0,05.

Питер Флом - Восстановить Монику
источник
1
Florn, я нахожу это хорошо составленным, есть ли какие-нибудь учебные материалы / учебники по статистике, на которые можно сослаться, которые указывают на подобное?
SAFEX
1
Какой конкретный момент? О взгляде на размеры эффекта? Или о том, что случайное?
Питер Флом - Восстановить Монику
«Что зависит от размера выборки, так это то, насколько мал размер эффекта должен быть найден значительным», это очень интуитивно понятно из текста, но есть ли академическая работа, доказывающая этот момент
SAFEX
1
Я не знаю книги, которая бы это явно доказывала - если вы хотите какую-то книгу по математической статистике, я не тот человек, которого нужно спрашивать. Я уверен, что кто-то здесь будет знать, но они могут не видеть эту ветку комментариев. Возможно, задайте отдельный вопрос, такой как «Явное доказательство того, что меняется ...»
Питер Флом - Восстановите Монику
1
готово и еще раз спасибо за интуитивное описание ( stats.stackexchange.com/questions/412643/… )
SAFEX
2

Как уже упоминалось, при проверке гипотез вы фактически исследуете нулевую гипотезу, обычно в надежде, что вы можете отвергнуть ее. В дополнение к другим ответам я хотел бы предложить несколько иной подход.

Вообще говоря, если у вас есть какая-то теория о том, что может происходить в ваших данных, вы можете провести подтверждающий анализ (например, подтверждающий факторный анализ в качестве одного из примеров). Для этого вам понадобится модель. Затем вы можете увидеть, насколько хорошо ваша модель соответствует данным. Этот подход также позволит тестировать разные модели друг против друга. Хорошая вещь с большими данными в том, что они позволяют вам на самом деле делать эти модельные тесты. Напротив, в психологии, например, это часто не представляется возможным, потому что размеры выборки, как правило, слишком малы для такого рода методов.

Я понимаю, что обычно для больших данных используется исследовательский подход, потому что теории пока нет. Кроме того, поскольку я не знаю, что именно вас интересует, на самом деле это не вариант.

Дженс Курос
источник