Спасибо, Глеб, отличные уроки! 1. На 1:35:58 ты выборкам А и В ставишь конверсию 0.1 и 0.12, а при расчете pval оставляешь старую конверсию 0.118. Её нужно было пересчитать? 2. Почему мы полагаем что выборки А и В - это биномиальные распределения? У нас ведь есть только 700 и 300 наблюдений по каждой и мы не можем из этого предположить, что среднее это n*p, а дисперсия это n*p*q как у биномиального распределения.
Привет! 1) Да, там косяк. Конверсия для нулевой гипотезы вообще нужно каждый раз пересчитывать! Я обновил в ноутбуке, можешь посмотреть как это должно выглядеть. colab.research.google.com/drive/1IoV10W-tDvWnA-VpvhzW4ewMOrc4ppWC?usp=sharing Спасибо огромное, что заметил и написал! 2) Когда у нас может быть либо 0 либо 1, то это не может быть ни чем кроме биномиального распределения. Если точнее, то это распределение Бернулли, но Бернулли это частный случай биномиального. И нам не важны его параметры: если только нолики и единички, то все, мы имеем дело с Бернулли.
@@GlebMikhaylov 1) Думаю, тут все же не пересчет конверсии нужен а объединение выборок A и В в одну с дальнейшим семплированием из них двух других выборок А и В без возвращения. Типа так: def resample_diff(a, b): ab = np.hstack((a, b)) np.random.shuffle(ab) return abs(ab[:len(a)].mean() - ab[len(a):].mean()) И уже их надо использовать в расчете выпивал: pval = np.mean([resample_diff(a, b) >= diff for _ in range(1000)]) Если перейти к задачам с непрерывными случайными величинами, то объединение выборок с последующим семплированием из них новых выборок (без возвращения) кажется более логичным. Поскольку мы не должны создавать новые случайные величины.
@@mlpython1089 Да, все верно, лучше всего объединять выборки и бутстрепить с них, но всегда обязательно с повторением! Вот почему: stats.stackexchange.com/a/171452/111782 В случае с 1 и 0 не важно генерим мы из распределения с заданной вероятностью или из объединенных выборок, т.к. там только нолики и единички. И как раз повторение превращает нашу объединенную выборку в генератор (распределение) А вот в случае непрерывной величины, мы уже не знаем распределение, и нам остается только бутстрапить из объединенных выборок, но обязательно с повторением, иначе не будет эффекта генератора.
2 часа благотворительной работы, Глеб the best. На ODS тебе надо памятник поставить )!. Никак не получается на онлайн попасть, смотрю офлайн ), спасибо тебе 🔥💪
Спасибо. Легче становится понимать некоторые аспекты ML - особенно нравится про ошибки и связки с recall и precision - и уже статистика кажется не такой страшной. Попробовал уже доверительные интервалы считать на предсказания моделей в регрессии :)) Теперь хочется все обсчитывать :))
Абсолютное золото! Несколько дней смотрел по несколько часов видосов о статтистике и аб-тестах. Было понятно ну так себе. И только тут я всё понял, я просветлился, аааааааааа
На моменте с объяснением равномерного распределения p-value ушел сам че т рисовать и моделировать, замучал chat gpt, но так и не понял. Затем ты рассказал про равновероятные точки и тут дошло! У нас ведь распределение с холмиком получается за счет того, что на каждом равном интервале у нас разное количество точек, где кучность концентрируется около среднего. Но если вероятность выпадения каждой точки одинаковая, то, если многократно собирать выборки из этой совокупности, у нас получится, что каждая точка выпала примерно по разу. Аналогично с двумя выборками и, соответственно, разницей между ними. Таким образом на гистограмму p-value ляжет каждая точка совокупкости, а кучности не будет, потому что шаг в p-value - это не значение точки, а вероятность. Короч - если бы мы на этот же график нанесли ещё и значения, для которых считался p-value, то был бы холм в районе единицы, потому что большинство точек сконцентрировано у нуля (мы же разницу считаем, а средняя разница у выборок из одной совокупности будет равна нулю). Но тут другое, тут просто вероятность выпадения каждой точки, которая отделена от значений этих точек - то есть просто статистика выпадания каждого n эксперимента, как в примере с подсчетом порядковых номеров каждой точки.
С коронавирусом хороший пример. Ошибка первого рода - тест показывает 1, когда человек здоров - достаточно мала. Тогда как ошибка второго рода - больному ставят отрицательный результат - достаточно высока (чуть ли не под 30%). Из-за этого во многом народ считал эти тесты бесполезными.
По поводу уличной магии... Ну, смотрите, если я правильно понял, у нас две выборки из одного и того же распределения (неважно какого), и мы считаем их средние значения a и b, а затем считаем p-value как функцию вида: p-value = p(epsilon) = P[|a-b|
1:45 - В общем, жил был один мужик, было ему лет тридцать. Сел он один раз смотреть программу «Время». Включил телевизор, подвинул кресло, чтоб удобней было. Там сначала появились часы - ну, как обычно. Он, значит, свои проверил - правильно ли идут. Все как обычно было. Короче, пробило ровно девять часов. И появляется на экране слово «Время», только не белое, как всегда раньше было, а почему-то черное. Ну, он немножко удивился, но потом решил, что это просто новое оформление сделали, и стал смотреть дальше. А дальше все опять было как обычно. Сначала какой-то трактор показали, потом израильскую армию. Потом сказали, что какой-то академик умер, потом немного показали про спорт, а потом про погоду - прогноз на завтра. Ну все, «Время» кончилось, и мужик решил встать с кресла. - Потом напомните, я про зеленое кресло расскажу, - влез Вася. - Значит, хочет он с кресла встать и чувствует, что не может. Сил совсем нет. Тогда он на свою руку поглядел и видит, что на ней вся кожа дряблая. Он тогда испугался, изо всех сил напрягся, встал с кресла и пошел к зеркалу в ванную, а идти трудно… Но все-таки кое-как дошел. Смотрит на себя в зеркало и видит - все волосы у него седые, лицо в морщинах и зубов нет. Пока он «Время» смотрел, вся жизнь прошла. Пелевин))
Про уличную магию я чего то совсем не понял что Глеб хотел пояснить. Типа построил гистограмму ряда от 1 до 1000, (ну или от 0.001 до 1) и удивляешься, что количество чисел в диапазоне 1-200 такое же как в диапазоне 201-400 и в 401-600 итд?! эмм что тут магического. А про равномерное распределение p-value интересно, спасибо!
@GlebMikhaylov По поводу почему двусторонний чаще всего используется в А, Б тесте: например я решил сделать односторонний тест с альтернативой типа конверсия будет больше, и получил высокое p value, могу подумать что нулевую отвергнуть не получилось (мол лендинги одинаковые), но при этом конверсия нового лендинга может быть в сто раз ХУЖЕ старого. и если глазами на нее не посмотреть то по p-value ты никакой аномалии не заметишь оно будет высоким в этом тесте. в случае же двустороннего теста ты увидишь низкое p-value как для случая когда конверсия ниже и когда она выше, то есть ты поймешь что выборки точно не одинаковы, а в какую сторону это как тебе чел написал - глазами посмотреть
@GlebMikhaylov Глеб привет! Подскажи пожалуйста на 28:00 площадь левее 0,75 (вероятность - 12,5%) А вероятность получить удовлетворенность 0,8 и ниже это всего лишь около 50%?
После просмотра трансляции понимаешь, что N лет работал на ощупь - вроде делал всё правильно, но хз почему делал именно так. А теперь как будто линзы контактные надел и прозрел. Нет, как будто сделал лазерную коррекцию зрения. Гранд мерси!
а так что в итоге, лэндинг лучше или нет? мы вроде проверили только, что вероятность того, что разницы нет меньше 1%. А вероятность того, что лэндинг хуже или лучше как проверить
Глеб, привет Ты в конце, при подсчете мощности, в цикле, когда считал pval с помощью монте-карло, забыл выборкам поменять размер на 680 Для контрольных поменял, а для тех, с помощью которых считаешь pval похоже забыл
@@GlebMikhaylov и среднее у тебя при генерации выборок для подсчёта pval тоже не поменяно и 0.118 стоит, а при первом эксперименте, где 10% и 12% конверсия надо 0.106 (тут я не проводил эксперимент, но такое ощущение, что можность будет сильно выше, чем получилось), при втором 0.115 (ну здесь, наверное, сильно не изменится)
Глеб, по поводу загадки двустороннего теста. Разве нельзя до модуля проверить разницу между каждыми наблюдениями? Если будет отрицательное значение средней разницы, то она негативная, например.
Не поверишь, вот сам час назад об этом думал)). Если мы отойдем от проверки гипотез и определим p-value, как вероятность получить такое же или меньшее значение (или по модулю, чтобы было с обеих сторон), то да, p-value всегда будет равномерным. Единственное, если переменная будет дискретной и ее значения могут повторяться, то тогда будет сложно отсортировать значения, и следовательно посчитать p-value. В дискретном случае равномерность p-value можно получить только если мы рандомно отсортируем одинаковые значения. И тут у тебя должен возникнуть вопрос: но почему тогда мы иногда получаем не равномерно распределенное p-value? Тут уже в игру вступают гипотезы. Неравномерное распределение мы можем получить в двух случаях: 1) нулевая гипотеза не верна 2) тест не подходит под наши данные. В первом случае мы считаем p-value на основе распределения среднего согласно нулевой гипотезе на сэмплах, которые приходят из другого распределения. Во втором случае, мы так же считаем p-value на основе распределения среднего согласно нулевой гипотезе, которое по ЦПТ должно быть нормальным, но наше реальное выборочное среднее распределено ненормально. Вот тут еще много обсуждений почему p-value при нулевой гипотезе распределен равномерно. stats.stackexchange.com/questions/10613/why-are-p-values-uniformly-distributed-under-the-null-hypothesis
@@GlebMikhaylov Глеб, pct - это range(1,1001)/1000 - равномерно банально (и потому идеальная прямая). Делай столбец такой хоть к распределению Парето - будет равномерность. Не улавливается связь к нормальному распределению
Глеб, очень крутые стримы. Почему мы посчитали общую конверсию с учетом обеих групп 0.118, а не взяли конверсию первой группы 0.10? Ведь мы говорим, что вторая группа не отличается от первой. Этот момент мне сложно принять.
Мы как бы представляем, что мы получили наши данные без деления на группы, мы их перемешиваем. Взять только первую группу мы не можем, т.к. тогда мы просто проигнорируем вторую. Ведь вдруг наше деление на группы совершенно не имеет смысла и это лишь названия и по факту первая и вторая группы не отличаются. Объединяя их, мы представляем что данные пришли не из разных групп, а из по сути из одной большой
Не могу загуглить что означает z статистика - первое значение, которое возвращает тест пропорций. На гитхабе из кода вывести формулу пытался, но очень запутано для меня. Все ресурсы, всегда опускают описание этой статистики. Пожалуйста, подскажи, что она означает?
Привет,, не могу понять определение бутстрап - "имитировать многократное получение выборки из генеральной совокупности, используя данные из имеющейся у нас выборки.", в вашем видео мы скорее создаем выборки на основе уже имеющихся условий (которые нам дал менеджера виноградного дня) новые выборки, а не используем уже имеющуюся. Слегка запутался.
Я вообще часто использую взаимозаменяемо бутстреп и Монте-карло. Я называю так процессы, где мы генерим выборки, не важно из распределения или другой выборки. В пример с менеджером Виноградного дня мы действительно генерим выборки из распределения с параметрами нулевой гипотезы. И ни как не используем выборку с данными. Бутстрепить выборку с данными мы тут можем например для определения доверительного интервала. Но чаще всего бутстрепом называют процесс генерации выборок из другой выборки. Например, если у нас есть две группы, то мы можем объединить эти группы в одну и тем самым получить условия нулевой гипотезы, что разницы нет. И за тем из этой объединенной выборки генерить выборки и смотреть в скольки случаях они будут отличаться.
У нас же есть изначальное значение конверсии, и мы видим что оно больше либо меньше, вот мы и проверяем статзначимость, а если устанавливаем ее - значит изначальное значение разницы в конверсии имеет правильное направление, разве нет?
Все же один момент мне не понятен. p-value - это же по сути вероятность события, которое противоречит нулевой гипотезе. Так почему же если эта вероятность меньше, то мы должны отвергать её, если она своей незначительностью подтверждает эту гипотезу?
Наборот. Мы считаем вероятность события на фоне нулевой гипотезы. Если вероятность получить это событие в условиях нулевой гипотезы мала, то событие сильно противоречит нулевой гипотезе. Это очень редкое и маловероятное событие для нулевой гипотезы поэтому мы можем решить ее отвергнуть
Что то я не понял трудности в интуиции в двухстороннем. Мы поставили нулевую, что они одинаковые, поэтому альтернатива скажет, что они разные. Разница может быть в обе стороны. Третий ответ не ерунда.
Возможно, твой вопрос в том, почему учитывая оба варианта различия (второй лендинг и лучше и хуже), и получая p-value из этих соображений, мы, тем не менее делаем вывод, что второй лендинг именно лучше, а не хуже?
Так тут тоже, вроде, все интуитивно понятно. У нас же по факту получилась конверсия больше: 0.16 против 0.1. Наблюдать такую разницу в кейсе, когда вторая страница на самом деле хуже - еще менее вероятно, чем исходную нулевую гипотезу. Все очевидно ж, нет?
А кто-нибудь может пояснить, почему получается разный pvalue в задаче про соцопрос при разных методах? pvalue = scipy.stats.binom.cdf(75, 100, 0.8) from statsmodels.stats.proportion import proportions_ztest as pz _, pvalue = pz(75, 100, 0.8, alternative='smaller')