Как создать график qq в python


График QQ , сокращение от «квантиль-квантиль», часто используется для оценки того, потенциально ли набор данных является результатом теоретического распределения.

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

В этом руководстве объясняется, как создать график QQ для набора данных в Python.

Пример: график QQ в Python

Предположим, у нас есть следующий набор данных из 100 значений:

 import numpy as np

#create dataset with 100 values that follows a normal distribution
np.random.seed(0)
data = np.random.normal(0,1, 1000)

#view first 10 values
data[:10] 

array([ 1.76405235, 0.40015721, 0.97873798, 2.2408932 , 1.86755799,
       -0.97727788, 0.95008842, -0.15135721, -0.10321885, 0.4105985 ])

Чтобы создать график QQ для этого набора данных, мы можем использовать функцию qqplot() из библиотеки statsmodels:

 import statsmodels.api as sm
import matplotlib.pyplot as plt

#create QQ plot with 45-degree line added to plot
fig = sm.qqplot(data, line='45')
plt.show()

График QQ в Python

На графике QQ ось X отображает теоретические квантили . Это означает, что он не показывает ваши фактические данные, а скорее показывает, где бы находились ваши данные, если бы они были нормально распределены.

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

На нашем графике QQ выше мы видим, что значения данных имеют тенденцию следовать за 45 градусами, что означает, что данные, вероятно, распределены нормально. Это не должно вызывать удивления, поскольку мы сгенерировали 100 значений данных с помощью функции numpy.random.normal() .

Вместо этого представьте, что мы сгенерировали набор данных из 100 равномерно распределенных значений и создали для этого набора данных график QQ:

 #create dataset of 100 uniformly distributed values
data = np.random.uniform(0,1, 1000)

#generate QQ plot for the dataset
fig = sm.qqplot(data, line='45')
plt.show()

График QQ с прямой линией в Python с использованием matplotlib

Значения данных явно не соответствуют красной линии под углом 45 градусов, что указывает на то, что они не соответствуют нормальному распределению.

Примечания к графикам QQ

Имейте в виду следующие примечания относительно графиков QQ:

  • Хотя график QQ не является формальным статистическим тестом, он предоставляет простой способ визуально проверить, нормально ли распределен набор данных или нет.
  • Будьте осторожны и не путайте графики QQ с графиками PP , которые используются реже и менее полезны для анализа значений данных, попадающих в хвосты распределения.

Дополнительные уроки по Python вы можете найти здесь .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *