Данялитика. Анализ данных
СтатистикаБлог Данилы Елистратова. Преподаю в Центральном Университете Т-Банка и в Skypro. Рассказываю про аналитику, статистику, программирование и математику, а иногда про экономику и лингвистику. Курс по аналитике со мной: https://go.sky.pro/analytics_danya
- Последний пост
- 12 авг.
- Последнее чтение
- 21:30
- Постов за неделю
- 1
- Всего постов
- 156
- Тип
- открытый
- Язык
- русский
- Категория
- Экономика
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- 327
- 1/48двое суток
- 374
- 1/72трое суток
- 404
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Друзья, доброе утро!☀️ Спасибо за множество комментов под прошлым постом! Вижу, что тема с анализом реальных исследований зашла👍 Давайте поделюсь своими наблюдениями, но вы и так в комментах нашли вещи, на которые я сам не обратил внимания🔥 1️⃣Разумеется, одна из ключевых проблем заключается в том, что "грипп" в рамках данного исследования бывает двух видов: "общая картина" и "диагностированный". При этом "общей картины" большинство: 24/57 в группе "плацебо" и 21/62 в группе "арбидол", т.е. чуть больше трети наблюдений могут быть с уверенностью отнесены к классу "болеющих гриппом". Это называется "размытием метрики" и ведёт или к излишней сегментации результатов, или вовсе к игнорированию данного факта. Если мы останется только на сегменте официально подтверждённого гриппа, то получим уморительные результаты на табличке во вложении. 2️⃣Также важно отметить, что любое разрешение, сверх арбидола, было разрешено. Без доказанной гипотезы о равномерности дополнительного лечения в двух группах сравнение автоматически становится невалидным. Как правильно написали в комментах, "всё порешала травка из народной медицины"😄 3️⃣Для сравнения групп используются как t-критерий Стьюдента, так и U-критерий Манна-Уитни. Само по себе это верно, но в статье лишь один раз упоминаются названия этих критериев, и мы, когда видим p-value<0.05, не понимаем, какой именно тест дал этот результат (какой-то один или оба?). - U-критерий является непараметрическим критерием, то есть может использоваться для выборок любого размера. - А вот t-критерий работает благодаря Центральной предельной теореме, которая, как подсказывает название, является предельным правилом, то есть работает, когда у нас есть много-много наблюдений. На практике 200/300 - это уже довольно много, но никак не 30 или 50. Ещё в статье упоминалось угловое преобразование Фишера, и в комментариях абсолютно верно было отмечено, что это преобразование значительно "улучшает жизнь" экспериментатору на маленьких выборках. 4️⃣Посмотрите на таблицу-2. Мало того, что было замерено 4 метрики на 5 временных интервалах (т.е. 20 метрик!) и не было сказано ни слова о поправке на множественное тестирование, так и прокрасы присутствуют не везде (например, в метрике "интоксикация на 24ч" нет разницы между значениями 40.3 и 29.8 ввиду малого количества наблюдений), а также уровень значимости скачет, как ему захочется (где-то альфа=5%, где-то 2%, где-то 1%, а где-то и вовсе 0.01%). Это делается для того, чтобы искусственно поднять значимость результатов. Если мы везде выставим 0.01%, то прокрасы хоть и будут уверенными, но будут малочисленными, а если, наоборот, выставить 5%, то прокрасов будет много, но не получится флексить их "значимостью". Теперь заход на следующую тему. В выборке ведь по-любому были те, кто выздоровел бы так и так, без арбидола. В табличке во вложении мы видим, что 7 человек вылечились в течение 60 дней после верифицированного гриппа. Допустим, что все семеро - это те, у кого стальной иммунитет и кто выздоровел бы так и так. Всего у нас 45 пациентов, а в группу "арбидол" из них попало 24. Вопросы: - Какова вероятность, что 6 (или даже больше) пациентов с супер-иммунитетом все попадут в первую группу? - С помощью какого распределения можно ответить на этот вопрос? - Как в пару строчек с помощью питона посчитать вероятность такого "нечестного" распределения? В следующем посте обсудим!
Дорогие подписчики, всем привет!☀️ Пару лет назад в Центральном Университете на курсе "Введение в статистику" на первом курсе бакалавриата был один отличный кейс, который наглядно показывает, что наука науке рознь, а самое главное в исследовании - не постановка вопроса и результат, а так называемый дизайн эксперимента ✍️ Существует такой препарат под названием "Арбидол". В международном медицинском сообществе он считается препаратом с недоказанной эффективностью, и исследование, с которым я предлагаю вам познакомиться, является отличной тому демонстрацией. Вот ссылка на исследование. Как вы думаете: - По каким именно параметрам эксперимента можно сделать вывод о его несостоятельности? - Как именно можно манипулировать выборкой, чтобы получить желаемые результаты? - Какие важные параметры эксперимента не были указаны в исследовании? Пишите ваши мысли в комментариях, а в следующем посте пройдёмся по статье и рассмотрим все варианты!🔥
Всем привет!☀️ Недавно встретил интересный кейс, который проверяет понимание того, как хранятся объекты в питоновском окружении. Дело в том, что существует большая разница между двумя операторами: "==" и "is". Буквальное равенство значений, присвоенных переменным, проверяется через двойное равно (не путать с одиночным равно, которое присваивает значения переменным!). Здесь никаких сомнений нет - число 257 действительно равно числу 257🙂 Теперь разберёмся с is: В питоновской реализации объекты небольших целых чисел обычно создаются заранее. Стандартный диапазон - это числа от -5 до 256. Когда программе требуется такое число, интерпретатор переиспользует уже существующий объект: a = int("256") b = int("256") print(a == b) # True print(a is b) # True Число 257 в этот диапазон не входит, поэтому при создании во время выполнения могут появиться два разных объекта: a = int("257") b = int("257") print(a == b) # True print(a is b) # False Это сделано для экономии памяти и ускорения работы: числа вроде 0, 1 и -1 встречаются в программах постоянно, поэтому создавать их заново каждый раз невыгодно. ❗️Но полагаться на такое поведение нельзя. Компилятор иногда объединяет одинаковые константы, поэтому даже 257 is 257 в некоторых случаях может вернуть True. Такая вот неочевидная закономерность😀 А вы встречались с подобным поведением переменных?
Дорогие друзья!☺️ Примерно неделю назад этому каналу стукнуло два с половиной года❗️ Хочу сказать большое спасибо моим подписчикам, которые всё это время лайкали и комментировали, а также делились своими инсайтами, опытом и переживаниями. Что мы только не разбирали за это время! И скрипты SQL, и питоновский код, и задачи по статистике, и аналитические метрики, и специфику разных сфер бизнеса... Даже про экономику и иностранные языки поговорить успели)) и составили словарик английских слов, близких к бизнесу и айти. На канале также было 4 стрима-интервью с различными представителями айтишки. Также напоминаю, что найти все посты по интересующей вас теме можно с помощью системы хештегов👍 Пишите в комментариях, о чём вам было бы интересно почитать в следующих постах! Вариантов развития повестки может быть множество, начиная от математического лора и заканчивая фишками из программирования. Можем также поразбирать ваши резюме и пройтись по вакансиям на hh.ru😉 В завершение поста поделюсь своими новостями. Я по-прежнему работаю на позиции лида курса по "Основам статистики" в магистратуре Центрального Университета. Через месяц с небольшим к нам зайдёт уже пятый поток магистров! Магистры по-прежнему будут представлены тремя специальностями: 1️⃣ML (Машинное Обучение) 2️⃣PM (Product Management) 3️⃣PA (Продуктовая Аналитика). В этот раз было решено значительно изменить и расширить наш курс по статистике. Дело в том, что ранее курс был единым для всех - этакая золотая середина, которую будет интересно послушать любителям математики из ML, но и при этом которая не похоронит за пару занятий интерес к предмету у тех, кто математику знает плохо или давно забыл. CSAT и Образовательные результаты были весьма неплохие, но по обратной связи мы поняли, что одной средней программы для такого спектра специалистов будет недостаточно. Поэтому теперь программ будет пять😄🤯🙈 У нас будут: 💵 Продакт-менеджеры (которых мы не будем мучить математикой вообще, но будем накидывать кейсы, в частности, о подсчёте денег) 📊 Аналитики базового уровня (которых мы особо мучить не будем, но будем давать много-много аб тестов) 🤖 МЛ-щики базового уровня (адской математики также не будет, но будут приложения в различных МЛ-моделях) 📊♾️ Аналитики продвинутого уровня (с жОсткой матикой и множеством аб-тестов, как и положено аналитикам) 🤖♾️ МЛ-щики продвинутого уровня (самый хардкор, с доказательствами, разложениями Тейлора и Фурье, характеристическими функциями, а также со множеством приложений статистики в МЛ) Программы, разумеется, не будут на все 100% уникальными. Задачи, лекции и домашки в них будут повторяться и пересекаться, но мы сделаем всё возможное, чтобы каждая из них стала аутентичной и полезной. Пожелайте нам удачи в бою😄💪 P.S. Подписчики, кто учился или учится у нас в ЦУ, напишите - считаете ли вы данное нововведение полезным исходя из вашего опыта?
без подписи
Всем привет!👋 Сегодня хотел бы продолжить тему, начатую в прошлом посте🙂 Напомню: мы говорили о факториалах и о различных их вариациях. Как вы абсолютно верно заметили в комментариях, аналогом непрерывного факториала является гамма-функция, которая обозначается знакомой нам буквой "Г"☺️ Формула гамма-функции (1) выглядит страшно, ибо там мало того что интеграл, так еще и экспонента, еще и две разные переменные. Предлагаю думать об этом следующим образом: 1️⃣Функция e^(-t) используется как фактор сглаживания (посмотрите на ее график на картинке-2 во вложении) 2️⃣Именно благодаря ей принцип "перемножения всего, что меньше" применяется к любому положительному числу. 3️⃣Классический факториал является частным случаем гамма-функции, как мы можем увидеть в формуле (2). То есть, если мы подставим в качестве x любое натуральное число, то получим перемножение всех натуральных чисел, меньше либо равных данному. На основании гамма-функции построено гамма-распределение, которое часто используется и в анализе, и в машинном обучении. Его интерпретация весьма интересна. Допустим, вы ждёте автобус на остановке. Существует так называемое экспоненциальное распределение, которое моделирует количество времени, которое пройдёт, пока вы не дождётесь ближайший автобус. В таком случае, гамма-распределение покажет, сколько времени пройдёт, пока не придёт k-ый автобус ✍️ В бизнес-плоскости можно привести такой пример: Вы ожидаете клиентские платежи в вашем маркетплейсе. Для дневной окупаемости вам требуется как минимум 150 платежей (со средним чеком). Тогда время ожидания одного платежа - это экспоненциальное распределение, а время ожидания 150 платежей - это гамма-распределение для k=150. А встречались ли с ним вы? В каком контексте?😉
Всем привет!👋 Недавно запускал сториз с таким мемом. Хочу рассказать вам о нескольких вариациях всем известного факториала, один из которых используется здесь🙂 1. Во-первых, сам факториал "!" обозначает произведение всех натуральных чисел, предшествующих данному. Например, 3! = 3*2*1=6. 2. Во-вторых, аддитивный аналог факториала "?", который и используется в меме. "Аддитивный" обозначает сложение, то есть 3?=3+2+1=6. А у нас тут кстати 6?=21🙂 3. В-третьих, есть двойной факториал "!!", который даёт то же, что и обычный, но с пропуском каждого второго числа. Таким образом, 5!!=5*3*1=15. 4. Левый факториал !n используется, чтобы рассчитать сумму факториалов всех предыдущих натуральных чисел. То есть !3=3!+2!+1!=6+2+1=9. Но самое мозговзрывательное - это понятие непрерывного факториала👻 То есть, например, чему равно 6.287! или 0.5! ?🤯 Кто уже встречался с непрерывным факториалом, пишите в комментариях!✍️
Друзья, всем привет!☀️ Спасибо за активность под предыдущим постом! Было много хороших идей❤️ Давайте обсудим. Напомню задачу: Есть два абсолютно одинаковых офисных здания, с одинаковым количеством этажей и с одинаковым количеством сотрудников. В каждом здании есть по лифту, единственное чем они отличаются – алгоритмом перемещения по этажам и реакцией на вызовы. Как узнать какой лифт лучше? Задача в поиске метрик, но не только в нём :) 1️⃣Начнём с того, что нас интересует именно клиентская сторона вопроса. То есть нас не интересуют технические характеристики и пробег лифта, мы хотим, чтоб среднестатистический клиент мог добраться от этажа А до этажа Б за минимальное время. Если этого положительного UX-эффекта можно было бы достичь, бесконечно гоняя лифт туда-сюда, мы бы этим решением воспользовались, ведь минимизация пробега лифта и рост его лайфтайма в нашу задачу не входят. 2️⃣Предположим, что количество людей, количество пользующихся лифтом людей, распределение людей по этажам, траектории людей между этажами и скорость лифтов одинаковые и постоянные в обоих зданиях. Была в комментариях хорошая идея про сегментацию на часы пик и менее загруженные часы, чтобы понять, какой лифт лучше справляется с повышенной нагрузкой. Но для упрощения задачи предположим, что наши здания совмещают в себе и торговый центр, и бизнес-центр, и многоквартирный дом, поэтому поток большой и постоянный всегда. 3️⃣Третий вопрос заключается в том, какие метрики мы можем собрать, а какие не можем. Допустим, у нас есть круглосуточные камеры в обоих лифтах, по которым мы с помощью ИИ можем определить, сколько людей находились в лифте в любой момент времени. Метрики, разумеется могут быть самые разные: - Количество перевезённых людей - Количество совершённых "человеко-этажей" - Время между нажатием кнопки и приходом лифта - Кол-во остановок лифта за один этаж поездки - Сколько человек именно совершило поездку, а не нажали кнопку и не дождались лифт - Кол-во человек в лифте за один интервал времени и многие-многие другие Но очень важный нюанс заключается в том, что нас интересуют не только сами измерения (метрики), но и точечные оценки, которые мы к ним применяем 🤓 Например, "Время между нажатием кнопки и приходом лифта" - нас интересует, разумеется матожидание (т.е. его выборочная вариация - среднее арифметическое). Но нас также интересует разброс, т.е. дисперсия этого показателя. Одно дело если вам надо будет ждать "пять минут плюс минус 10 секунд", и другое дело - "плюс минус три минуты". С одной стороны, есть вероятность уехать раньше, но, с другой - есть такая же вероятность простоять аж восемь минут. На собеседовании в рамках этого рассуждения важно показать не только умение находить правильные метрики, процессы, механизмы и сегменты. Важно продемонстрировать умение работать с метрикой, а первый показатель этого - понимание, что у любой выборки есть точечные оценки, которые описывают её распределение✍️ Ссылка на пост про точечные оценки и знаменитую Датазаврову дюжину.
Друзья, всем привет!🌻 Предлагаю еще одну классическую задачку-рассуждайку с собесов✍️ Насколько я знаю, она была очень популярна в Яндексе (и, возможно, остаётся таковой до сих пор) Постановка Есть два абсолютно одинаковых офисных здания, с одинаковым количеством этажей и с одинаковым количеством сотрудников. В каждом здании есть по лифту, единственное чем они отличаются – алгоритмом перемещения по этажам и реакцией на вызовы. Вопрос Как узнать какой лифт лучше? Подсказка Любая дата-дривен компания (и, конечно же, Яндекс в первых рядах) больше всего любит слово "метрика". При формулировании ответа не забудьте не просто высказать мысли в формате "здравого смысла", но и облачить их в бизнесово-аналитический язык😄 Знание метрик, их соотношений, точечных оценок случайных величин и прочих аксессуаров дата анализа кратно повышает шанс, что вас посчитают за "своего" и возьмут🤝 Пишите ваши ответы в комментариях! Вместе обсудим!🔥 А в следующем посте скажу, как бы на этот вопрос отвечал я.
Друзья, всем привет!☀️ Возвращаюсь к вам с ответом к прошлому посту и спасибо за обсуждения в комментариях!🔥 Напомню, задача звучала так: Рассмотрим сферу доставки продуктов из физических магазинов. 1️⃣В каких заказах средняя оценка удовлетворённости заказом будет ниже: в маленьких или в больших. Почему? 2️⃣Какое распределение можно использовать для ответа на этот вопрос? 3️⃣Какие предпосылки о клиентской функции полезности необходимо сделать? Здесь явного "правильного ответа", как такового, нет😄 Это рассуждайка, призванная продемонстрировать собеседующему ваши размышления. Начнём с конца. Что такое "клиентская функция полезности"? Это некая абстрактная "удовлетворенность" клиентом по результатам сборки и доставки заказа, которая заканчивается какой-то оценкой. А уже на основании оценок мы потом рассчитаем CSAT или NPS. Как можно "испортить" клиентский опыт? Очевидно, не доложив или перепутав какой-то товар на сборке. Если у нас N заказов в товаре и упаковка каждого - это независимое событие с вероятностью успеха p, это означает, что сборка общего заказа следует биномиальному распределению Bin(N,p). И вот тут появляется несколько вариантов моделирования. Вариант 1. Строгий клиент Если был перепутан хотя бы один товар в заказе, тогда настроение бесповоротно испорчено. В таком случае вероятность испорченного настроения равна 1 - p^N. То есть любой вариант кроме идеального испортит настроение. Логично, что чем больше товаров, тем выше вероятность перепутать хоть что-то, так как p^N стремится к нулю (из-за того, что p<1). Получается, что чем крупнее заказ, тем ниже оценка удовлетворенности. Вариант 2. Учёт относительного вклада товара Представьте, что вас взбесит сильнее: перепутанный товар в заказе из всего двух товаров или из сотни? Наверное, к замене одной жвачки в заказе на 10к вы отнесетесь более лояльно🙂 Таким образом, получаем следующую модель: - С одной стороны, чем больше заказ, тем выше вероятность допустить хотя бы одну ошибку. - Но, с другой стороны, чем больше заказ, тем меньше на эту ошибку обращаешь внимания. - Получается, что можно найти такие параметры убывания "цены ошибки", чтобы на самом деле разницы между большими и малыми заказами не было. Чтобы прирост вероятности ошибки в точности компенсировался падением её важности. Но на реальных данных всё куда менее произаично😄 Берём заказы с оценками, смотрим их денежный или товарный объём и с помощью какого-нибудь коэффициента корреляции делаем вывод о зависимости этих признаков👍 Другое дело, что простой корреляции маловато. Ведь мы хотим сделать вывод не только о статистической, но и о причинно-следственной связи✍️
Привет, дорогие подписчики!🌻 Хочу предложить вам еще одну задачку с собеседований на порассуждать🔥 Рассмотрим сферу доставки продуктов из физических магазинов. 1️⃣В каких заказах средняя оценка удовлетворённости заказом будет ниже: в маленьких или в больших. Почему? 2️⃣Какое распределение можно использовать для ответа на этот вопрос? 3️⃣Какие предпосылки о клиентской функции полезности необходимо сделать? Пишите ответы в комментариях! А в следующем посте через несколько дней я дам ответ☺️
Всем привет!🤝 Продолжаем говорить об интересных кейсах, связанных со статистикой, на которые можно часто нарваться на собеседованиях🔥 У нас уже с вами был парадокс Симпсона, а в прошлый раз мы обсудили классическую задачу на априорную вероятность. Сегодня хочу рассказать вам о так называемом парадоксе Берксона. Он связан с корреляцией, про которую у нас уже тоже был не один пост (пост-1, пост-2, пост-3). Парадокс Берксона возникает, когда мы анализируем не всю популяцию, а только людей, попавших в специальную подвыборку✍️ Рассмотрим медицинский пример. Пусть существуют две болезни: А и В. В общей популяции эти болезни независимы: наличие болезни A не влияет на наличие болезни B. Допустим, в больницу попадают люди, у которых есть хотя бы одна из этих болезней. Поэтому если мы смотрим только на пациентов больницы, появляется искусственная отрицательная связь, ведь: - если пациент уже в больнице и у него нет болезни A, то у него есть болезнь B; - если у него нет болезни B, то у него есть болезнь A. Из-за этого внутри больницы может казаться, что болезни «защищают» друг от друга, хотя в общей популяции они независимы. Этот эффект возникает из-за того, что в выборке нет пациентов, у которых не было бы ни одной из этих двух болезней. То есть в терминах единиц и нулей это те пациенты, у которых значение бинарного вектора составляет (0,0). В выборке остаются только (1,0) и (0,1) и в более редких случаях (1,1). Попробуйте сами провести симуляцию с помощью следующего нехитрого питоновского кода: df = pd.DataFrame({ "person_id": range(1, 21), "disease_a": [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1], "disease_b": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], }) print(df["disease_a"].corr(df["disease_b"])) df["hospital"] = (df["disease_a"] == 1) | (df["disease_b"] == 1) hospital_df = df[df["hospital"]] print(hospital_df["disease_a"].corr(hospital_df["disease_b"])) На "генеральной совокупности" корреляция равна нулю, а на "больничной выборке" она достигнет весьма уважаемого значения -0.5. Разумеется, это значение получится статистически незначимым, но это лишь следствие малого кол-ва наблюдений. Можно увеличить эту выборку в сто раз, и тогда "ложная корреляция" станет вполне значимой. Вывод (не только из этого кейса, но и из многих предыдущих) заключается в том, что корреляция - это тонкий инструмент, требующий глубинного понимания данных и выполнения многих условий, а не универсальная чёрная коробка, которая "съест" всё что угодно и выдаст универсальную метрику от 0 до 1, подлежащую немедленной интерпретации🙂
без подписи
без подписи
Дорогие подписчики, всех с новой неделей!🔥 Сегодня хотелось бы поговорить про один очень популярный тип задач на расчёт вероятности, которые часто дают на экзаменах и собеседованиях. У этого типа даже своё название есть - "задачи на априорную вероятность". Рассмотрим пример: Есть медицинский тест с точностью 99%. Это значит: - если человек болен, тест покажет болезнь в 99 случаях из 100; - если человек здоров, тест покажет здоровье в 99 случаях из 100. Заболевание очень редкое: реально болеет 1 человек из 1.000.000. Вопрос: Вы сдали тест, и он показал положительный результат. Какова вероятность, что вы действительно больны? Ответ представлен на картинках 1 - 3. 1️⃣Картинка-1: вводим обозначения. 2️⃣Картинка-2: решаем задачу с помощью формулы условной вероятности. 3️⃣Картинка-3: получаем то же решение интуитивно. Априорной вероятностью здесь называется та самая "одна миллионная", то есть реальная вероятность заболеть вне различных условных конструкций и тестов на болезнь. Логично, что, чем меньше априорная вероятность, тем меньше будет и вероятность оказаться больным при условии положительного теста вне зависимости от точности данного теста🙂
Ещё одно применение нейросетей😀 В Telegram появился поиск каналов . К сожалению, найти качественный канал через встроенный поиск по-прежнему невозможно. Но есть альтернатива: интерактивная карту «Атлас», которая решает эту проблему с помощью нейросетей. Она наглядно группирует каналы с похожей тематикой и аудиторией рядом друг с другом. Ради интереса я решил посмотреть «соседей» собственного канала по нашей Tech-тематике. В нашел целую группу крутых авторов с мощной живой экспертизой, которых я раньше нигде не встречал. Посмотреть подборку Внутри: ИИ для работы и бизнеса, IT-контент для любого уровня от джуна до сеньора, а также глубокая аналитика по ИБ и анонимности. Подписывайтесь на самые крутые Tech-каналы в один клик!
без подписи
Привет, дорогие подписчики!👋 В прошлом посте мы начали разговор об "интуиции" в математике👻 Я считаю, что метод "стопиццот" (т.е. подстановка заоблачных цифр в формулу или алгоритм, чтоб проверить краевые случаи) - это "интуитивный" подход, не основанный на строгих доказательствах или понимании объектов и правил. Предлагаю продолжить этот разговор🤝 Сегодня я бы хотел дать вам "интуитивное" понимание того, как работают численные методы в математике и что это вообще такое. Помню, как-то делал сториз с опросом о вашей заинтересованности в численных методах и получил много голосов "за". Вообще надо сказать, что численные методы - это моё второе имя образование. На протяжении трёх лет в Сорбонне я писал на листочке всякие диффуры и интегралы, чтобы потом решить их в каком-нибудь Матлабе численно. Численные методы можно описать двумя словами: "сделай дискретным". 1️⃣Допустим, есть у вас функция, описывающая электрический ток, и вам надо посчитать интеграл этой функции. Интегрировать аналитически этого крокодила попросту невозможно ("дифференцирование - техника, а интегрирование - искусство"). Тогда просто вспоминаем, что интеграл - это площадь под кривой данной функции. А что такое площадь под гладкой непрерывной кривой? Да это ж просто прямоугольнички, если не гнуть пальцы, что вам важен пятый знак после запятой. Считаем высоты прямоугольников, находим их площади и приближаем значение интеграла. Чем мельче "нарежем" площадь, тем точнее посчитаем. См.картинку-1 2️⃣То же самое работает и с дифференциальными уравнениями. По сути диффур - это некий закон функции, который работает на определённой площади. Например, температура в комнате от батареи (в максимально простой форме) распространяется по закону "сумма вторых производных функции U по координатам x, y и z равна нулю". Эта непрерывная функция U - это и есть "функция распространения жары", которая поясняет, в какой точке какая окажется температура в каждый момент времени. Численный метод работает так же, как и в более простых случаях. Возьмём комнату и нарежем её на маленькие кубики. В каждом кубике заменим производную (т.е. предельно малый прирост функции) на просто прирост функции (U1 - U0)/(d1-d0). Это называется "методом конечных разностей". Всё, готово. Мы Приближенно считаем значения функции U на границах кубиков вместо того, чтоб получать аналитическое выражение истинной функции U. Чем мельче нарезаем комнату, тем точнее получается результат. См.картинку-2 (2-мерный случай) Ставь 🤓 если хочешь продолжения и более глубокого раскрытия темы.
Всем привет! 👋 Сегодня я хотел бы обобщить парадокс из прошлого поста и на его примере поговорить об общем широком подходе к решению аналитических и математических задач 🤓 Этот подход можно назвать «анализом краевого случая» или «поиском корнер-кейсов». Смысл заключается в том, что вы после постановки задачи сразу представляете себе самый «краевой», или «вырожденный» случай. Зачастую получается так, что на нем сразу виден ответ. 1️⃣Например, вернемся к парадоксу Симпсона из прошлого поста и задаче про сегменты в такси. Смысл решения ведь заключается в том, что у вас есть разница в метрике на различных сегментах и, если переиграть веса сегментов в пользу более слабых, вы получите падение суммарной метрики даже при условии того, на самих сегментах есть незначительное увеличение. То есть чем больше разница в метрике между сегментами, тем проще найти пример ситуации, который и будет решением задачи. Применяем к этому поиск корнер-кейса: Пусть у нас есть два сегмента А и В. Сегмент А составляет 99% и в нём конверсия составляет 99%, а сегмент В - соответственно, составляет 1% и конверсия в нём тоже 1%. Очевидно, что смена местами весов приведёт к огромному падению конверсии и даже значительный прирост конверсий в обоих сегментах возместить это не сможет. 2️⃣Этот же принцип можно применять и к нехитрым математическим задачам. Например, в матане часто надо искать пределы. Рассмотрим последовательность вида n/(e^n), то есть линейная функция, делённая на экспоненту. Известно, что данный предел будет равняться нулю при стремлении n к бесконечности, так как "экспонента возрастает быстрее любой линейной функции". Однако на интуитивном уровне мы можем подставить вместо n какое-то большое число. Начнём с 10 и получим 10/e^10. Предположим, что е=2 (хотя по факту 2,72...). Из курса информатики помним, что 2^10=1024, то есть в ответе какое-то весьма небольшое число. А если возьмём n, равное миллиарду? Разрыв между числителем и знаменателем станет еще больше, а отношение в конце концов станет почти нулём. 3️⃣Теперь обратимся к статистике. Почему медиана устойчивее среднего к выбросам? Можно вспоминать формулы, а можно сразу рассмотреть вырожденный случай. Представьте, что у вас есть зарплаты: {100, 100, 100, 100, 100} Среднее и медиана равны 100. А теперь добавим одного миллиардера: {100, 100, 100, 100, стопиццот миллиардов} Среднее мгновенно улетает вверх, потому что оно учитывает величину каждого значения. А медиана не меняется. То есть анализ экстремального случая сразу интуитивно объясняет разницу между средним и медианой лучше любой формулы. А вы пользуетесь таким методом при подходе к аналитическим задачам?🤔 Пишите в комментариях!
Дорогие подписчики, всем привет!👋 Мы отвлеклись на некоторое время на всякие лингвистические приколы и голосования, а теперь возвращаемся обратно к собеседованиям и анализу данных в целом🤓 Кстати спасибо, что проголосовали в прошлом посте! Как вы думаете, если нарисовать гистограмму ваших ответов, на какое распределение это будет похоже?🤔 Очень часто можно встретить задачи и ситуации, которые прекрасно описываются парадоксом Симпсона. Встречались ли вы с таким, друзья? Не путать этого Симпсона с Гомером Симпсоном, а также с Томасом Симпсоном, который придумал правило численного интегрирования, названное его фамилией🙂 Давайте напомню. Парадокс Симпсона говорит о том, что тенденция, наблюдаемая в отдельных сегментах, исчезает или меняется на противоположную, когда сегменты объединяются в одну выборку. Классический пример, который у меня спрашивали при трудоустройстве в агрегатор такси "Ситимобил" около 6 лет назад 🚕🚕 У нас в агрегаторе есть три сегмента: "Эконом", "Комфорт" и "Люкс". Конверсия из заказа в поездку выросла во всех трёх сегментах. А в целом по агрегатору она упала. Как такое возможно? Ну для начала обсудим, в какой форме должен быть ответ? Если у вас спрашивают "возможно ли такое" или похожую формулировку, то вам достаточно привести пример конкретной ситуации с цифрами, и вуаля ответ готов☺️ но и можно пояснить, что именно в этих цифрах такого магического, что ситуация "отыскалась". Здесь всё очень просто: суммарная конверсия может быть представлена как среднее взвешенное по конверсиям-сегментам, т.е. скалярное произведение конверсий и весов сегментов. Также существует ограничение, что сумма всех весов равна единице. Получаем задачу с ограничением, но тут и невооружённым взглядом видно, что мы можем таким образом подобрать веса, что суммарная конверсия упадёт, несмотря на рост каждой конкретной конверсии. Смотрите цифры на картинке во вложении! А в следующем посте мы продолжим эту тему, и я дам более общий подход для решения таких задач. А вам когда-нибудь встречалась похожая задача в работе или на собесе?✍️