"Существуют три вида лжи:

  • ложь;

  • наглая ложь;

  • пропаганда статистика;

  • источник цитаты в интернете".

    Марк Твен (ну или не он).

В данной статье мы рассмотрим, как можно быстро доказать следующие утверждения, смотря на один и тот же источник данных:

  • Лошади бегают по часовой стрелке быстрее чем против.

  • Лошади бегают против часовой стрелки быстрее чем по часовой.

  • Лошади бегают на более дальние дистанции быстрее (с большей скоростью), чем на короткие.

  • Лошади бегают на более дальние дистанции медленнее (с меньшей скоростью), чем на короткие.

Данные

Будем рассматривать датасет по скáчкам в Белмонте. В нём содержится информация о имени лошади, году, скорости, дистанции, времени и направлении забега. Анализировать будем с помощью python и библиотек pandas и seaborn.

Для начала прочитаем данные:

import pandas as pd
import seaborn as sns

data = pd.read_csv("path", sep="\t")
df = data[["Length", "Seconds", "Speed"]]

Постараемся узнать, в какую сторону лошади бегают быстрее (по часовой или против часовой стрелки). Очень быстрый и простой способ сравнить два распределения - построить "ящики с усами" или box plot

Deliverable 3.7 "Characterisation of LV networks" - Scientific Figure on ResearchGate. Available from: https://www.researchgate.net/figure/Box-plot-vs-normal-PDF-By-examining-the-box-plots-key-differences-and-equivalencies_fig5_283569547 [accessed 11 Apr, 2022]
Deliverable 3.7 "Characterisation of LV networks" - Scientific Figure on ResearchGate. Available from: https://www.researchgate.net/figure/Box-plot-vs-normal-PDF-By-examining-the-box-plots-key-differences-and-equivalencies_fig5_283569547 [accessed 11 Apr, 2022]

На данной картинке можно рассмотреть box plot для нормального распределения:

  • жирная черта в центре - медиана;

  • "коробка" включает в себя 50% результатов, слева от неё находится 25% результатов с самым маленьким значением, справа - 25% с самым большим;

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

Сравнение скорости бега лошадей по и против часовой стрелки

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

sns.boxplot(x="Speed", y="Direction", data=data)

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

Доказательство того, что лошади бегают на дальние дистанции с меньшей скоростью

Здравый смысл подсказывает, что на дальних дистанциях лошадь больше устаёт и потому её скорость должна быть меньше, проверим так ли это.

df = (df - df.mean()) / df.abs().max()
corr = df.corr()
sns.heatmap(corr, cmap=sns.color_palette("coolwarm", 19))

Length

Seconds

Speed

Length

1.000000

0.832878

-0.055649

Seconds

0.832878

1.000000

-0.597803

Speed

-0.055649

-0.597803

1.000000

Как видим, скорость негативно коррелирует с длиной трассы.

Внезапное открытие №1: время прохождения трассы сильно коррелирует с её длиной.

Доказательство того, что лошади бегают на дальние дистанции с большей скоростью

Построим линейную регрессию для значения скорости, заодно сравним между собой эти регресии для разных направлений движения:

sns.lmplot(data=data, y="Speed", x="Length", hue="Direction")

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

Внезапное открытие №2: Лошади бегают дальние дистанции с большей скоростью, но только, если бегают против часовой стрелки.

Доказательство того, что лошади бегают по часовой стрелке быстрее

Взглянем на данные поподробнее:

data["clock"] = (data["Direction"] == "Clockwise").astype(int)
data["counter"] = (data["Direction"] == "counter-clockwise").astype(int)
data.plot(x="Year", y=["clock", "counter"])

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

sns.lmplot(data=data, y="Speed", x="Year", hue="Direction")

Пока лошади бегали по часовой стрелке их скорость росла гораздо сильнее: с 1860-х по 1920-е она выросла на 4 мили в час (~6,5 км/ч), то есть росла на 1 км/ч каждые десять лет, и, если бы не заговор противо-часо-стрелочников, за последний век они бы ускорились на целых 10 км/ч, вместо того жалкого топтания на месте, который мы видим в правой части графика.

Если вас не убедил данный аргумент и вы считаете, что медленный рост можно объяснить тем, что возможности лошадей вышли на плато (см КДПВ)

sns.regplot(data=data, y="Speed", x="Year", order=3)

То подумайте выгодно ли это лошадям и не заплатили ли им давайте сравним данные за несколько лет до и после смены направления.

sns.scatterplot(data=df, x="Year", y="Length", hue="Direction")

Видно, что 5 лет до и после смены направления лошади бегали одинаковую дистанцию, так что сравнение будет честным. Возьмём 4 года, потому что, кажется, что 5 - слишком много, а 3 - слишком мало. (Ну и на них получается не такой красивый результат).

n_years = 4
df = data[(data["Year"] >= 1921 - n_years) & (data["Year"] <= 1920 + n_years)]
sns.boxplot(x="Speed", y="Direction", data=df, ax=axs[ax_idx])

Синий - по часовой.
Оранжевый - против.
Существует значимая разница, лошади бегают по часовой быстрее.

Выводы

В данном примере я пытался показать, что, когда вам кто-то представляет статистические данные и предлагает какие-то выводы на их основе, не спешите соглашаться, спросите:

  • Как эти данные получены.

  • Нет ли другого объяснения видимым закономерностям.

  • Сохраняется ли закономерность, если изменить период наблюдения/страну.

  • Однородны ли данные и не осуществлён ли cherry-pick при выборе данных или посчитанных на их основании статистик.

Если же вы сами берётесь за анализ данных внимательно проверяйте свои гипотезы и не спешите с выводами:

  • посмотрите на других данных, сохраняется ли найденные вами закономерности;

  • нет ли другого объяснения найденным особенностям.

Комментарии (23)


  1. tetelevm
    12.04.2022 11:09
    +33

    Вспомнилась вот эта картинка:


  1. iingvaar
    12.04.2022 12:11
    +10

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


  1. maxkomp
    12.04.2022 13:03
    +12

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

    Иногда такое происходит просто по глупости, (типа, в рамках защиты диссертации), а иногда и с умыслом. Например, чтобы подвести "теоретическую базу" под непопулярное решение.

    В конце 80х мне дали поглядеть "научный труд" одного должностного лица из МВД. Там на полном серьезе исследовалась корреляция между количеством тяжких преступлений против личности (типа всяких убийств-грабежей и т.п.), совершенных в населенном пункте, с наличием уличного освещения в этом населенном пункте. Брались реальные данные по разным городам Советского Союза, приводились математические формулы, таблицы, графики. (Без обработки на компьютере тоже, конечно, не обошлось. Программа на фортране для ЕС-ки прилагалась). И делался ошеломляющий вывод: в населенных пунктах без уличного освещения преступность оказывается меньше! То есть автор реально вносил предложение уменьшить количество освещенных улиц, с целью не только экономии электроэнергии и улучшения криминогенной обстановки. (И это не первоапрельская шутка была, а попытка защитить диссертацию). Вроде как неудачная, и то хорошо.
    Собственно, мне эту работу и дали почитать со словами "ты типа математик, ошибку найдешь?". Причем я был молодой, глупый, и ошибок в обработке данных с ходу не нашел. Все вроде правильно, не подкопаешься.
    Я тогда промямлил что-то на тему того, что "населенные пункты с уличным освещением- они разные бывают. Одно дело наукоград, и совсем другое - городок рядом с исправительной колонией. А вот как раз по этому признаку в работе никаких данных нет и сравнений не проводится, что не совсем правильно."
    А потом мы попросили прокомментировать сей "научный труд" пенсионера, бывшего участкового милиционера, который проработал в МВД на разных должностях больше 40 лет в разных регионах нашей страны. Он долго смеялся, а потом разгромил всю эту наукообразную ахинею одним ударом. Его аргумент был простой: населенные пункты без уличного освещения - это на самом деле, небольшие деревни где-то на отшибе цивилизации, куда фиг доберешься после дождей или снегопадов. Людей там мало, все работают вместе и очень хорошо друг друга знают. И самое главное - все живут примерно в одних и тех же условиях, им делить нечего. Потому и тяжких преступлений совершается очень мало. Украсть курицу - это там могут. А самое страшное правонарушение против личности - когда мужики с получки напьются, матом друг друга начнут крыть и за грудки хватать. В самом худшем случае, на мелкое хулиганство потянет, но не более того).
    А в крупных городах (с уличным освещением) ситуация другая. Когда множество приезжих случайных людей, а жители многоэтажки не знают в лицо соседей по подъезду, там с криминогенной обстановкой все гораздо хуже получается.


    1. LinearLeopard Автор
      12.04.2022 13:22

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

      Спасибо, да, примерно это я и имел ввиду)


      1. SuAlUr
        12.04.2022 17:16
        +2

        Основной пример - если просто с улицы набрать людей (выборка будет полностью репрезентативной), измерить длину стопы, то выяснится, что есть прямая корреляция между длиной стопы и величиной IQ.

        ОТВЕТ: длина стопы коррелирует также с возрастом, чем меньше возраст, тем меньше IQ.


        1. z3apa3a
          12.04.2022 19:11
          +4

          Все обоснованные тесты IQ обязательно нормируются по возрасту, поэтому возраст не может влиять на величину IQ.


        1. Hlad
          13.04.2022 08:09
          +6

          Гораздо проще пример: если выйти часов в 11 утра, и начать спрашивать у людей 30-50 лет, как у них с работой, то выяснится, что безработных в стране процентов 30, не меньше. Потому что те, у кого есть нормальная работа, в 11 часов утра как раз на ней.


          1. igsend
            13.04.2022 09:05
            +1

            По опросам в интернете, у 100% людей есть интернет ;) (с)


    1. goldrobot
      12.04.2022 22:50
      +2

      Либо все еще проще.

      Люди меньше шароходятся в кромешной темноте, зато с удовольствием пьют пивасик и конфликтуют на лавочке освещенной


  1. Butterfly_M
    12.04.2022 14:10

    это просто примеры неверного применения статистики- технология придания наукообразности некорректным выводам. А перлы о крокодиле к статистике не имеют отношения вообще. Вот прекрасный пример мухляжа со статистикой, который был, есть и будет. "на завтра вероятность дождя 50%". Что тут, собственно, предсказано? Где критерий проверки такого прогноза? И чем это отличатется от "дождь то ли будет то ли нет"?


    1. PanDubls
      12.04.2022 15:00
      +2

      Ну вообще критерий проверки такого прогноза - собираем все разы, когда предсказывалась такая вероятность дождя, потом смотрим для каждого из них, пошел дождь или нет. Доля дождливых дней должна стремиться к 50% при увеличении количества наблюдений. Нет?

      А на одном наблюдении статистическую гипотезу (вероятность дождя равна 50%) и правда не проверить


      1. dzhiharev
        12.04.2022 20:19

        ровно так же как и не проверишь гипотезу о 99% вероятности дождя. На одном наблюдении вообще не проверишь ни одну гипотезу :)


        1. OlegIva
          12.04.2022 22:48

          На одном наблюдении вообще не проверишь ни одну гипотезу :)

          Постойте, а как же доказательство от противного? Даже одно наблюдение в грамотно построенном опыте может опровергнуть гипотезу (и по идее именно такие наблюдения и стоит проводить). Впрочем, это опять приводит нас к началу: а что же мы собственно проверяем-то? ;-)


          1. dzhiharev
            12.04.2022 22:52

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


            1. OlegIva
              13.04.2022 00:18
              +1

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


              1. dzhiharev
                13.04.2022 10:04
                +1

                Мы же говорим о «статистических гипотезах»? Тогда я настаиваю на том, что одного эксперимента недостаточно.


    1. Gutt
      13.04.2022 13:05

      Вот прекрасный пример мухляжа со статистикой, который был, есть и будет. "на завтра вероятность дождя 50%". Что тут, собственно, предсказано?

      Насколько я понимаю, это означает, что с 00:00 до 24:00 завтрашнего дня матожидание величины "доля общей площади территории, для которой указан прогноз, на которой выпало указанное количество осадков в виде дождя" будет равно 50 % от общей площади указанной территории. Обратите внимание, прогноз даётся для определённого участка и с указанием объёма осадков. Дисперсию, правда, не указывают, как и вид распределения, но для природного явления разумно предположить нормальное. А дисперсия может быть любая, терпите :-)


  1. Yuriks111
    12.04.2022 20:46
    +2


    1. eyeless_watcher
      13.04.2022 08:58

      xkcd:1138

      upd: ерунду сморозил, не заметил per-capita


    1. InternetStalker
      13.04.2022 10:03

      Вообще, по мнению некоторых аналитиков, маргарин, похоже, влияет на всё на свете.


      1. savostin
        13.04.2022 18:24
        +2

        А может это все на свете влияет на маргарин.


      1. Ivan22
        14.04.2022 13:08

        корреляция - не означает причинно-следственную связь.

        Вообще я примерно для подтасовки статистики вижу такой самый распространенный способ: Так как на любой исследуемый параметр потенциально влияют десятки, сотни или даже тысячи других параметров - то в 99% случаев всегда можно подобрать такое подмножество подходящих параметров которое подтвердит любой заране поставленный вывод


  1. squaremirrow
    15.04.2022 01:23

    Да, в социальных (и не только) науках манипулировать статистикой очень просто. Поэтому в серьезных эмпирических статьях по экономике, добрая половина работы может быть посвящена доказательству отсутствия эндогенности в используемых регрессиях, попыткам опровергнуть свои собственные выводы.

    Очень просто ошибиться в выводе причинно-следственной связи из данных, даже если тщательно пытаешься этого избежать.