Про среднее из модельного распределения. Демонстрируемый код возвращает нам 4 параметра для моделирования распределения. Они соответствуют параметрам (a, b, loc, scale). Поэтому для получения среднего используем следующий код: from scipy.stats import johnsonsb johnsonsb.mean(a, b, loc, scale) А чтобы помонтекарлить выборки подойдет такой код: johnsonsb.rvs(a=8.635547387774977, b=1.940117105713055, loc=-622.7363950863808, scale=9922160.800678246, size=1000)
Да, текст действительно слился из-за темы видимо. Ещё можно было использовать другое распределение, которое имело почти такую же маленькую ошибку. Пирсона например
Глеб, спасибо за ваш замечательный курс! ❤ До этого мне казалось, что жизнь проходит мимо меня потому что я не знаю математики)) вы показали, что можно стать математиком (ну, почти математиком 😅) После ваших разъяснений понятно что когда и зачем из математического использовать для своих целей.
Глеб, привет 👋 Ты когда начал рассказывать про ненормальное распределение (в серединке стрима) - хотел посчитать среднее для нормального распределения, из которого строится логнормальное. Там надо было сначала все распределение прологарифммровать, а потом взять среднее. np.log(a).mean() как раз получается нужный результат Огромное спасибо тебе за стримы!!! Очень много полезного рассказываешь, респект!
В видео говорится, что при ненормальном распределении есть проблема в генерации выборки В для бутстрепа с заданной новой средней. Но если, как в задаче, мы знаем, что после логарифмирования выборки А у нас получается близкое к нормальному распределение с известным стандартным отклонением, то что мешает генерировать нормальные распределения с заданной новой средней и этим ст.отклонением, а потом возводить экспоненту в полученные значения? Как бы log/exp математически взаимообратны...
У этого ролика поразительно мало лайков. Жалко поставить что ли? Отличный плейлист, не знаю ничего, что бы так же на пальцах демонстрировало заумную "науку".
Глеб, привет! Спсибо за этот классный курс!! Твой подход к изучению статистики через моделирование СУПЕР! Я тут кажется нашел ошибку. На 1:10:49 вычисляя размер выборки для логнормального распределения ты считаешь стандартное отклонение как a.std(), классно было бы его замонтекарлить. Из-за того, что ты вычислял стандартное отклонение для отдельно взятой выборки, у тебя получилось большое отклонение от реального значения стандартного отклонения. И наверое std стоит монтекарлить обьединяя обе выборки? В итоге получается так std_log = np.mean([np.concatenate([a(), b()]).std() for _ in tqdm(range(1_000))]) Я забутстрапил 1000 std взял среднее от массива, в итоге получились сдедующие значения: std: 8000, sample_size=501694, power = 0.803. Ты делаешь вывод, что t-test здесь не применим и даже для рассчитанного размера выборки дает мощность меньше, чем предполагалось. А выходит, что применим (мощность почти как планировали), просто размер выборки нужен очень большой. Подскажи пожалуйста, это верные выводы?
При бесконечном размере выборке нам вообще не нужна статистика. Смысл статистики как раз сделать вывод на выборке разумного размера. При бесконечном увеличении выборки выборочное среднее из любого распределения будет распределено нормально. Поэтому твои выводы верны: если мы увеличиваем выборку то рано или поздно т-тест будет применим. Тут мы исходим из того, что мы не можем увеличить выборку и должны довольствоваться тем, что есть.
Привет из 2024) Мне кажется, тогда проще использовать формулу дисперсии для логнормального распределения из википедии и взять из нее корень, чтобы получить std. std = ((np.exp(sigma**2)-1)*np.exp(2*mean+sigma**2))**.5 И использовать ее в для effect_size в power.tt_ind_solve_power(effect_size=effect_size, power = .8, alpha=.05, ratio=1) Тогда действительно получится нужна выборка n = 505170 (очень большая)
а 36 получилось и для контрольной и для тестовой группы? или 36 только для тестовой и пофиг сколько для контрольной? также вот мы тоже 200 нашли для инкама...это 200 и для целевой и для контрольной?
Их делают, но это сложно. ttest нельзя применять (ну или просто гигантские выборки нужны) А если применять Манн Уитни или понижение дисперсии то уже нулевая гипотеза другая.
@@GlebMikhaylov спасибо большое за ответ! Может быть еще подскажешь..) Везде про А/Б говорят, но есть еще одна актуальная задача: сравнение готовых выборок Например, есть выборка A с показателем P по времени, то есть таблица имеет вид: id_A | P | date И такая же таблица для выборки B id_B | P | date Вот мне нужно понять, на сколько фактически отличается показатель P для выборки А от показателя P для выборки B Даты для каждых выборок одинаковые, условия, в которых они находились, тоже. Отличается только один параметр, влияние которого на целевую переменную мы и хотим замерить Просто в основном ролики про эксперименты и их планирование. А вот как правильно посмотреть фактическое влияние показателя на значение какой-то метрики, не совсем понятно :(
Привет, Глеб. Подскажи правильно ли я действую! Хочу использовать для аб теста Манна-Уитни и проверить его мощность. 1. Подобрал распределение fit data to destribution. 2. Скорректировал параметры чтобы средние в выборках соответствовали моим. 3. Делаю бутстрап и смотрю мощность теста корректируя размеры выборок.
@@GlebMikhaylov Как-то консультировался у аналитика, работающего в Яндекс, так он мне сказал забыть про Манна-Уитни, из-за того что он ранговый его никогда не используют в индустрии за пределами науки. Я без комментариев, для меня это ещё темный лес
Глеб, добрый день! У Вас есть курс по SQL, что бы от создания своей базы до работы с ней. Сейчас данные аккумулируются в 1с, но имею большие проблемы к прямому доступу к ним. Работаю как то через анус. Сначала скачиваю данные в csv, затем читаю их pandas и там обрабатываю. Затем сохраняю опять в csv. В итоге имею большой объём разрозненных таблиц. Как то это нехорошо. Конечно проще всего организовать прямой доступ к 1с, но не понимаю как это сделать. Решил создать свою базу, дубль необходимой инфо из 1с, переодически обновлять ее.
Привет! Курса именно по созданию базы нет, но я вижу, что ты и так вроде разобрался: создаешь таблицы да и все. И да, создать аналитическую базу это отличная идея. Как раз вот и научился управлять базами данных, дата инженеринг!
@@GlebMikhaylov Странно, во множестве источников сказано, что для t-теста нам нужно принять допущение о нормальной форме распределения именно генеральных совокупностей из которых берутся выборки. Поэтому если у нас есть основания полагать, что генеральная совокупность расределена не нормально (в основном определяется по форме выборок) то лучше использовать непараметрические тесты или бутстрап. Или я ошибаюсь?
@@GlebMikhaylov Так выборочные средние будут всегда нормально распределены. Например возьмем выборку из распределения Парретто как у вас в видео и возьмем большое кол-во выборок и построим распределение средних этих выборок и оно будет нормальным. Как тогда определить, что t-test нам не подходит
@@maxp1059 Нет, оно не всегда будет нормальным. Будет ли оно нормальным зависит от кол-во наблюдений в выборке (ЦПТ). Если наблюдений мало, но выборочное среднее может иметь не нормальное распределение
Глеб а как среднее может быть распределено нормально , это же число , не понимаю. Ну вот есть у меня ГС , со средним 5 как понять что это среднее распределено нормально
Выборочное среднее должно быть распределено нормально. Это проверяется бутстрапом: берешь например 1000 выборок и по каждой считаешь среднее. И вот у тебя уже 1000 средних и ты можешь посмотреть на их распределение. И понятно, что по ЦПТ при бесконечно больших выборка выборочное среднее из любого распределения будет распределено нормально. Но на практике у нас нет этой бесконечного и каждое распределение имеет разную "скорость" схождения ЦПТ. Поэтому нам надо проверять, а достаточно ли нам размера сэмпла чтобы выборочное среднее было распределено нормально.
Спасибо за ваши труды, благодаря которым получается закреплять материал!
Не подскажите, по каким именно материалам учитесь?
Спасибо огромное! Смотрю ваши стримы как увлекательный сериал❤ Умеете объяснять человеческим языком сложные вещи
Про среднее из модельного распределения.
Демонстрируемый код возвращает нам 4 параметра для моделирования распределения.
Они соответствуют параметрам (a, b, loc, scale).
Поэтому для получения среднего используем следующий код:
from scipy.stats import johnsonsb
johnsonsb.mean(a, b, loc, scale)
А чтобы помонтекарлить выборки подойдет такой код:
johnsonsb.rvs(a=8.635547387774977, b=1.940117105713055, loc=-622.7363950863808, scale=9922160.800678246, size=1000)
Да, текст действительно слился из-за темы видимо. Ещё можно было использовать другое распределение, которое имело почти такую же маленькую ошибку. Пирсона например
Полезный мануал для работы со своими выборками. Спасибо.
Привет! В разделе про универсальность Манн-Уитни нужно его тестить без логарифмирования выборки.
Глеб, спасибо за ваш замечательный курс! ❤
До этого мне казалось, что жизнь проходит мимо меня потому что я не знаю математики)) вы показали, что можно стать математиком (ну, почти математиком 😅)
После ваших разъяснений понятно что когда и зачем из математического использовать для своих целей.
Спасибо огромное за теплые слова о моем курсе!) И за все комментарии) ❤️
Глеб, привет 👋
Ты когда начал рассказывать про ненормальное распределение (в серединке стрима) - хотел посчитать среднее для нормального распределения, из которого строится логнормальное. Там надо было сначала все распределение прологарифммровать, а потом взять среднее. np.log(a).mean() как раз получается нужный результат
Огромное спасибо тебе за стримы!!! Очень много полезного рассказываешь, респект!
В видео говорится, что при ненормальном распределении есть проблема в генерации выборки В для бутстрепа с заданной новой средней. Но если, как в задаче, мы знаем, что после логарифмирования выборки А у нас получается близкое к нормальному распределение с известным стандартным отклонением, то что мешает генерировать нормальные распределения с заданной новой средней и этим ст.отклонением, а потом возводить экспоненту в полученные значения? Как бы log/exp математически взаимообратны...
У этого ролика поразительно мало лайков. Жалко поставить что ли? Отличный плейлист, не знаю ничего, что бы так же на пальцах демонстрировало заумную "науку".
Глеб, привет! Спсибо за этот классный курс!! Твой подход к изучению статистики через моделирование СУПЕР!
Я тут кажется нашел ошибку. На 1:10:49 вычисляя размер выборки для логнормального распределения ты считаешь стандартное отклонение как a.std(), классно было бы его замонтекарлить. Из-за того, что ты вычислял стандартное отклонение для отдельно взятой выборки, у тебя получилось большое отклонение от реального значения стандартного отклонения.
И наверое std стоит монтекарлить обьединяя обе выборки? В итоге получается так std_log = np.mean([np.concatenate([a(), b()]).std() for _ in tqdm(range(1_000))])
Я забутстрапил 1000 std взял среднее от массива, в итоге получились сдедующие значения: std: 8000, sample_size=501694, power = 0.803.
Ты делаешь вывод, что t-test здесь не применим и даже для рассчитанного размера выборки дает мощность меньше, чем предполагалось. А выходит, что применим (мощность почти как планировали), просто размер выборки нужен очень большой. Подскажи пожалуйста, это верные выводы?
При бесконечном размере выборке нам вообще не нужна статистика. Смысл статистики как раз сделать вывод на выборке разумного размера.
При бесконечном увеличении выборки выборочное среднее из любого распределения будет распределено нормально. Поэтому твои выводы верны: если мы увеличиваем выборку то рано или поздно т-тест будет применим.
Тут мы исходим из того, что мы не можем увеличить выборку и должны довольствоваться тем, что есть.
Привет из 2024) Мне кажется, тогда проще использовать формулу дисперсии для логнормального распределения из википедии и взять из нее корень, чтобы получить std.
std = ((np.exp(sigma**2)-1)*np.exp(2*mean+sigma**2))**.5
И использовать ее в для effect_size в power.tt_ind_solve_power(effect_size=effect_size, power = .8, alpha=.05, ratio=1)
Тогда действительно получится нужна выборка n = 505170 (очень большая)
Брат-леопард, у тебя есть про АБ с использованием прогнозирования?
Про тесты без контрольной группы?
Привет! Нет, про эти темы нет
а 36 получилось и для контрольной и для тестовой группы? или 36 только для тестовой и пофиг сколько для контрольной? также вот мы тоже 200 нашли для инкама...это 200 и для целевой и для контрольной?
А можно ли получить ноутбук bank-ds-trainee-test-case если можно или это секретная информация?
colab.research.google.com/drive/1tLilhS4nwwbMXI3Iysga6Yz8MsRDFjre?usp=sharing
@@GlebMikhaylov Супер, спасибо!
Глеб, привет! Подскажи, пожалуйста, почему на жирнохвостовых распределениях не делают а/b тестов?
Их делают, но это сложно. ttest нельзя применять (ну или просто гигантские выборки нужны) А если применять Манн Уитни или понижение дисперсии то уже нулевая гипотеза другая.
@@GlebMikhaylov спасибо большое за ответ! Может быть еще подскажешь..) Везде про А/Б говорят, но есть еще одна актуальная задача: сравнение готовых выборок
Например, есть выборка A с показателем P по времени, то есть таблица имеет вид:
id_A | P | date
И такая же таблица для выборки B
id_B | P | date
Вот мне нужно понять, на сколько фактически отличается показатель P для выборки А от показателя P для выборки B
Даты для каждых выборок одинаковые, условия, в которых они находились, тоже. Отличается только один параметр, влияние которого на целевую переменную мы и хотим замерить
Просто в основном ролики про эксперименты и их планирование. А вот как правильно посмотреть фактическое влияние показателя на значение какой-то метрики, не совсем понятно :(
Привет, Глеб.
Подскажи правильно ли я действую!
Хочу использовать для аб теста Манна-Уитни и проверить его мощность.
1. Подобрал распределение fit data to destribution.
2. Скорректировал параметры чтобы средние в выборках соответствовали моим.
3. Делаю бутстрап и смотрю мощность теста корректируя размеры выборок.
В целом да, я так же это себе представляю. Можешь еще рядышком посчитать размеры выборок для ти теста и сравнить
@@GlebMikhaylov Как-то консультировался у аналитика, работающего в Яндекс, так он мне сказал забыть про Манна-Уитни, из-за того что он ранговый его никогда не используют в индустрии за пределами науки. Я без комментариев, для меня это ещё темный лес
Глеб, добрый день! У Вас есть курс по SQL, что бы от создания своей базы до работы с ней. Сейчас данные аккумулируются в 1с, но имею большие проблемы к прямому доступу к ним. Работаю как то через анус. Сначала скачиваю данные в csv, затем читаю их pandas и там обрабатываю. Затем сохраняю опять в csv. В итоге имею большой объём разрозненных таблиц. Как то это нехорошо. Конечно проще всего организовать прямой доступ к 1с, но не понимаю как это сделать. Решил создать свою базу, дубль необходимой инфо из 1с, переодически обновлять ее.
Привет! Курса именно по созданию базы нет, но я вижу, что ты и так вроде разобрался: создаешь таблицы да и все. И да, создать аналитическую базу это отличная идея. Как раз вот и научился управлять базами данных, дата инженеринг!
Ну прям леопард)
Если средние выборок распределены нормально (ЦПТ в действии), то используем ттест, а если нет - то манн уитни?
Грубо говоря да.
@@GlebMikhaylov Странно, во множестве источников сказано, что для t-теста нам нужно принять допущение о нормальной форме распределения именно генеральных совокупностей из которых берутся выборки. Поэтому если у нас есть основания полагать, что генеральная совокупность расределена не нормально (в основном определяется по форме выборок) то лучше использовать непараметрические тесты или бутстрап. Или я ошибаюсь?
@@maxp1059 Нормально должны быть распределены выборочные средние, а не сами данные
@@GlebMikhaylov Так выборочные средние будут всегда нормально распределены. Например возьмем выборку из распределения Парретто как у вас в видео и возьмем большое кол-во выборок и построим распределение средних этих выборок и оно будет нормальным. Как тогда определить, что t-test нам не подходит
@@maxp1059 Нет, оно не всегда будет нормальным. Будет ли оно нормальным зависит от кол-во наблюдений в выборке (ЦПТ). Если наблюдений мало, но выборочное среднее может иметь не нормальное распределение
Глеб а как среднее может быть распределено нормально , это же число , не понимаю. Ну вот есть у меня ГС , со средним 5 как понять что это среднее распределено нормально
Выборочное среднее должно быть распределено нормально. Это проверяется бутстрапом: берешь например 1000 выборок и по каждой считаешь среднее. И вот у тебя уже 1000 средних и ты можешь посмотреть на их распределение.
И понятно, что по ЦПТ при бесконечно больших выборка выборочное среднее из любого распределения будет распределено нормально. Но на практике у нас нет этой бесконечного и каждое распределение имеет разную "скорость" схождения ЦПТ. Поэтому нам надо проверять, а достаточно ли нам размера сэмпла чтобы выборочное среднее было распределено нормально.
@@GlebMikhaylov спасибо