Как провести t-тест гипотезы в Python и R
T-тест - это статистический тест, который используется для сравнения средних значений двух групп. Он часто используется при проверке гипотез, чтобы определить, оказывает ли процесс или лечение влияние на интересующую популяцию или эти две группы отличаются друг от друга.
t-тест - это параметрический тест на различие. предполагающий:
- Данные независимы.
- Примерно нормально распределены.
- Имеют одинаковую величину дисперсии среди каждой сравниваемой группы (например, однородность дисперсии).
Здесь будет проведен t-тест с двумя выборками, или независимый t_test, используя набор данных Gapminder. T-тест будет выполнен с использованием языка программирования Python, а затем переведен на язык программирования R.
Нулевая гипотеза (H0) для этого t-критерия состоит в том, что среднее значение столбца lifeExp одинаково для двух протестированных выборок.
Альтернативная гипотеза (Ha) для этого t-критерия состоит в том, что среднее значение для столбца lifeExp неодинаково для двух протестированных выборок.
Скрипт написан на Python, используя Google Colab, который представляет собой бесплатный онлайн Notebook Jupyter, размещенный Google. Поскольку Python является языком общего назначения, возникнет необходимость импортировать библиотеки в программу для выполнения необходимых операций:
- Pandas используется для обработки данных и создания фреймов данных,
- Numpy используется для численных вычислений,
- Scipy выполняет статистические операции.
Pandas использовался для считывания набора данных в программу и преобразования его в фрейм данных:
Удалим пробелы из категориальных значений в столбце "country", а затем распечатаем уникальные значения в этом столбце:
Используем функцию groupby
, чтобы разделить все категории на отдельные фреймы данных:
Как только фреймы данных будут подготовлены, проведем t-тест с двумя выборками, используя scipy
.
Значение p, когда столбец lifeExp в фрейме данных для фреймов данных UnitedStates и UnitedKingdom составлял 0,74929. Это p-значение больше, чем альфа = 0,05, что указывает на то, что нулевая гипотеза может быть принята.
Значение p, когда столбец lifeExp в фрейме данных для фреймов данных Afghanistan и UnitedKingdom составлял 6,89 e-16. Это значение p меньше альфа = 0,05, что указывает на то, что нулевая гипотеза не может быть принята и должна быть принята альтернативная гипотеза:
Код написан на R, используя Replit, который является бесплатным онлайн-интерпретатором. R имеет множество функций, закодированных непосредственно в нем, поэтому в этом случае не было необходимости импортировать какие-либо библиотеки. R последовал аналогичному пути для чтения набора данных в программу, удаления пробелов и выбора уникальных значений, которые делал Python:
Исследуем это и мы обнаружим, что невозможно создать двойную переменную для цикла таким же образом, как это было сделано с помощью python, поэтому отфильтруем фреймы данных для UnitedStates, UnitedKingdom и Afghanistan:
Затем проведем t-тесты, используя аналогичную методологию, которую мы использовали в Python:
P-значения, которые были возвращены из двух t-тестов, были такими же, как и в Python, что подтверждает, что функция t-test в Python и R работает аналогичным образом. Также скажем, что t-тест в R возвращает больше информации, чем t-тест в Python, но единственной информацией, которая действительно была важной в этом случае, было значение p для каждого теста:
Подводя итог можно сказать, что с Python работать проще, потому что программа закодирована в записной книжке Jupyter, где можно легко увидеть выходные данные каждой ячейки. Сложнее увидеть вывод каждой строки кода, используя Replit, хотя это очень хороший интерпретатор сам по себе.
Кроме того, тот факт, что Python допускает двойную переменную для циклов, упрощает создание новых фреймов данных из фрейма данных, который имеет список категориальных значений.