Поиск по сайту:

У афоризмов черезвычайно низкая энтропия. (Алан.Дж.Перлис)

Модуль статистики в Python

4 мин для чтения
FavoriteLoadingДобавить в избранное
16 мая 2022
Модуль статистики в Python
Если вы занимаетесь исследованиями, статистика имеет первостепенное значение! И Python предлагает множество модулей для статистики, но тот, о котором мы поговорим сегодня, называется модулем статистики. Это простой модуль, не совсем для расширенной статистики, а для тех, кому просто нужны простые и быстрые вычисления. В этом руководстве мы рассмотрим модуль статистики в Python.

 

Модуль статистики

Модуль статистики предоставляет простые функции для вычисления статистики набора данных. Они утверждают, что не конкурируют с NumPy, SciPy или другим программным обеспечением, таким как SPSS, SAS и Matlab. И действительно, это очень простой модуль. Он не предоставляет параметрические или даже непараметрические тесты. Вместо этого его можно использовать для выполнения некоторых простых вычислений (хотя я думаю, что даже Excel может делать то же самое). Кроме того, они утверждают, что поддерживают целые числа, числа с плавающей запятой, десятичные числа и дроби.

Модуль статистики может измерять (1) средние значения и показатели центрального расположения, (2) показатели распространения и (3) статистику взаимосвязей между двумя входными данными.

 

Statistics.mean()

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

Для целых чисел:

main.py
import statistics

x = [1, 2, 3, 4, 5, 6]
mean = statistics.mean(x)
print(mean)

 

Когда вы запускаете последний, вы получаете:

main.py
3.5

 

Для дробей терминология немного отличается. Вам нужно будет импортировать модуль, называемый фракциями. Также дробь нужно поместить в скобки и написать перед ней заглавную F. Таким образом, 0,5 будет равно F(1,2). Это невозможно для больших наборов данных!

main.py
import statistics

from fractions, import Fraction as F

x = [F(1,2), F(2,3), F(3,4), F(4,5), F(5,6), F(6,7)]
mean = statistics.mean(x)
print(mean)

 

Когда вы запускаете последний, вы получаете:

main.py
617/840

 

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

main.py
import statistics

from decimal import Decimal as D

x = [D("0.5"), D("0.75"), D("1.75"), D("2.67"), D("7.77"), D("3.44")]
mean = statistics.mean(x)
print(mean)

 

Читать  История SIM-карты

Когда вы запускаете последний, вы получаете:

main.py
2.813333333333333333333333333

 

Модуль статистики также предлагает среднее значение, среднее геометрическое и среднее гармоническое. statistics.median() и statistics.mode() аналогичны statistics.mean().

 

Statistics.variance() и Statistics.stdev()

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

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

main.py
import statistics

from decimal import Decimal as D

x = [D("0.5"), D("0.75"), D("1.75"), D("2.67"), D("7.77"), D("3.44")]
var = statistics.variance(x)
print(var)

 

Когда вы запускаете последний, вы получаете:

main.py
7.144266666666666666666666667

 

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

main.py
import statistics

from decimal import Decimal as D

x = [D("0.5"), D("0.75"), D("1.75"), D("2.67"), D("7.77"), D("3.44")]
std = statistics.stdev(x)
print(std)

 

Когда вы запускаете последний, вы получаете:

main.py
2.672876103875124748889421932

 

Корреляции Пирсона

По какой-то причине, хотя авторы модуля статистики проигнорировали тесты ANOVA, t-тесты и т. д., они включили корреляцию и простую линейную регрессию. Имейте в виду, что корреляция Пирсона — это особый тип корреляции, используемый только в том случае, если данные в норме; таким образом, это параметрический тест. Есть еще один тест, называемый корреляцией Спирмена, который также можно использовать, если данные не являются нормальными (что, как правило, имеет место).

main.py
import statistics

x = [1.11, 2.45, 3.43, 4.56, 5.78, 6.99]
y = [1.45, 2.56, 3.78, 4.52, 5.97, 6.65]

corr = statistics.correlation(x, y)
print(corr)

 

Когда вы запускаете последний, вы получаете:

main.py
0.9960181677345038

 

Линейная регрессия

Когда выполняется простая линейная регрессия, она выбрасывает формулу:

y = slope * x + intercept

 

Excel тоже так делает. Но самое большее, что может сделать этот модуль, — это распечатать значение наклона и точки пересечения, из которых можно воссоздать линию. Excel и SPSS предлагают графики для уравнения, но не модуль статистики.

main.py
import statistics

x = [1.11, 2.45, 3.43, 4.56, 5.78, 6.99]
y = [1.45, 2.56, 3.78, 4.52, 5.97, 6.65]

slope, intercept = statistics.linear_regression(x, y)
print("The slope is %s" % slope)
print("The intercept is %s" % intercept)

print("%s x + %s = y" % (slope, intercept))

 

Когда вы запускаете последний, вы получаете:

main.py
The slope is 0.9111784209749394
The intercept is 0.46169013364824574
0.9111784209749394 x + 0.46169013364824574 = y

 

Читать  Запрос Redis из Python

Ковариация

Кроме того, модуль статистики может измерять ковариацию.

main.py
import statistics

x = [1.11, 2.45, 3.43, 4.56, 5.78, 6.99]
y = [1.45, 2.56, 3.78, 4.52, 5.97, 6.65]

cov = statistics.covariance(x,y)
print(cov)

 

Когда вы запускаете последний, вы получаете:

main.py
4.279719999999999

 

Хотя Python предлагает модуль, называемый модулем статистики, он не предназначен для расширенной статистики! Имейте в виду, если вы действительно хотите проанализировать свой набор данных, используйте любой модуль, кроме модуля статистики! Он не только слишком прост, но и все функции, которые он предлагает, можно легко найти и в Excel. Кроме того, этот модуль предлагает только два теста — корреляцию Пирсона и простую линейную регрессию. Здесь нет дисперсионного анализа, t-теста, хи-квадрата и тому подобного! И более того, если вам нужно использовать десятичные числа, вам нужно вызвать десятичный модуль, что может быть неудобно для больших и очень больших наборов данных. Вы не поймаете никого, кому нужна реальная статистическая работа, выполненная с помощью этого модуля (используйте SPSS, если вам нужны дополнительные возможности), но если вы ищете простое развлечение, то этот модуль для вас.

Удачного кодирования!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
5 1 vote
Рейтинг статьи
Subscribe
Notify of
guest
0 комментариев
Inline Feedbacks
View all comments

Читайте также

0
Would love your thoughts, please comment.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close