В этом уроке по Python мы узнаем о «норме статистики Python Scipy» для расчета различных типов нормального распределения и о том, как его построить, а также рассмотрим следующие темы.
- Что такое норма в статистике?
- Норма статистики PDF
- Метод expected()
- Метод Norm()
- Параметры
- Метод cdf()
- Метод normal.interval()
- Метод Ppf
- Метод logpdf()
- Норма статистики Python Scipy Logcdf
- Генерация норм
- Статистика
- Метод rvs()
- Метод fit()
Что такое норма в статистике?
Нормы — это статистические характеристики населения, такие как баллы CBSE по математике шестиклассников-мужчин или баллы по чтению IELTS девятиклассниц Эммы.
Результаты тестирования отдельного человека сравниваются со статистическим представлением популяции в интерпретации оценок, основанных на нормах. В реальной жизни тестируется репрезентативная выборка или группа, а не вся популяция. Этим обеспечивается норма для группы или набора норм. Стандарты описывают, что должна уметь делать определенная группа, а нормы указывают, что может делать эта группа.
Норма статистики PDF
scipy.stats.norm представляет случайную величину, которая обычно является непрерывной. Он имеет различные виды функций для нормального распределения, такие как CDF, PDF, медиана и т. д.
Он имеет два важных параметра: loc для среднего значения и масштаб стандартного отклонения, поскольку мы знаем, что с помощью этих параметров мы контролируем форму и расположение распределения.
Синтаксис:
scipy.stats.norm.method_name(data,loc,size,moments,scale)
Где параметры:
- data: это набор точек или значений, которые представляют данные с равномерной выборкой в форме данных массива.
- loc: используется для указания среднего значения, по умолчанию оно равно 0.
- moments: используется для расчета таких статистических данных, как стандартное отклонение, эксцесс и среднее значение.
- scale: используется для указания стандартного отклонения, по умолчанию оно равно 1.
Вышеуказанные параметры являются общим параметром всех методов объекта scipy.stats.norm(). Методы приведены ниже:
- scipy.stats.norm.cdf(): используется для кумулятивной функции распределения.
- scipy.stats.norm.pdf(): используется для функции плотности вероятности.
- scipy.stats.norm.rvs(): чтобы получить случайные переменные.
- scipy.stats.norm.stats(): используется для получения стандартного отклонения, среднего значения, эксцесса и асимметрии.
- scipy.stats.norm.logpdf(): используется для получения журнала, связанного с функцией плотности вероятности.
- scipy.stats.norm.logcdf(): используется для поиска журнала, связанного с кумулятивной функцией распределения.
- scipy.stats.norm.sf(): используется для получения значений функции выживания.
- scipy.stats.norm.isf(): используется для получения значений обратной функции выживания.
- scipy.stats.norm.logsf(): используется для поиска журнала, связанного с функцией выживания.
- scipy.stats.norm.mean(): используется для нахождения среднего значения, связанного с нормальным распределением.
- scipy.stats.norm.medain(): используется для нахождения медианы, связанной с нормальным распределением.
- scipy.stats.norm.var(): используется для поиска дисперсии, связанной с распределением.
- scipy.stats.norm.std(): используется для определения стандартного отклонения, связанного с распределением.
Давайте рассмотрим пример, используя один из упомянутых выше методов, чтобы узнать, как использовать методы с параметрами:
- Импортируйте необходимые библиотеки, используя приведенный ниже код.
import numpy as np import matplotlib.pyplot as plt from scipy import stats
- Создайте значения данных наблюдения и вычислите функцию плотности вероятности на основе этих значений данных со средним значением = 0 и стандартным отклонением = 1.
observatin_x = np.linspace(-4,4,200) pdf_norm = stats.norm.pdf(observatin_x,loc=0,scale=1)
- Постройте созданное распределение, используя приведенный ниже код.
plt.plot(observatin_x,pdf_norm) plt.xlabel('x-values') plt.ylabel('PDF_norm_values') plt.title("Probability density funciton of normal distribution") plt.show()
Метод expected()
Метод expected() Python Scioy, который существует в модуле scipy.stats.rv_continous, использует численное интегрирование для определения ожидаемого значения функции относительно распределения.
В соответствии с распределением dist ожидаемое значение функции f(x) определяется следующим образом.
Синтаксис:
rv_continuous.expect(func=None, args=(), loc=0, scale=1, lb=None, ub=None, conditional=True)
Где параметры:
- func (callable): вычисление интеграла для функции. принимает только один параметр. Отображение тождества f(x) = x используется по умолчанию.
- args (tuple): параметры формы распределения.
- loc (float): это параметр местоположения, по умолчанию он равен 0.
- scale (с плавающей запятой): это параметр масштаба, по умолчанию он равен 1.
- lb,ub (скаляр): нижняя и верхняя границы интегрирования.
- conditional (логический): если это так, интеграл выпрямляется с использованием условной вероятности интервала интегрирования. Ожидаемое значение функции с учетом указанного интервала является возвращаемым значением. Ложь по умолчанию.
Метод expected() возвращает ожидаемое значение типа float, которое является вычисленным ожидаемым значением.
Давайте разберемся на примере, выполнив следующие шаги:
- Импортируйте необходимые библиотеки или методы, используя приведенный ниже код Python.
from scipy.stats import norm norm(1).expect(lambda a: 1, lb=0.0, ub=1.0)
- Вышеупомянутое близко к следующему коду.
norm(1).cdf(1.0) - norm(1).cdf(0.0)
- Если мы укажем условное значение True.
norm(1).expect(lambda a: 1, lb=0.0, ub=1.0, conditional = True)
- Из-за численного интегрирования наблюдается небольшое отклонение от 1.
Метод Norm()
Метод Norm() имеет два параметра loc и Scale, которые мы можем использовать для построения графика распределения с помощью библиотеки matplotlib.
Итак, постройте распределение, выполнив следующие шаги:
- Импортируйте необходимые библиотеки или методы, используя приведенный ниже код Python.
import matplotlib.pyplot as plt import numpy as np from scipy.stats import norm
- Сгенерируйте данные и определите параметры местоположения и масштаба, используя приведенный ниже код.
x_data = np.linspace(0, 30, 200) loc_pr = 12 scale_pr = 1.5
- Вычислите PDF-файл нормы и постройте распределение, используя приведенный ниже код.
plt.plot(x_data, norm.pdf(x_data, loc=loc_pr, scale=scale_pr)) plt.show()
Параметры
Метод Norm() Python Scipy имеет четыре основных параметра: местоположение, моменты и масштаб, которые можно использовать для управления распределением.
Давайте разберемся на примере, выполнив следующие шаги:
- Импортируйте необходимые библиотеки или методы, используя приведенный ниже код Python.
import matplotlib.pyplot as plt import numpy as np from scipy.stats import norm
- Сгенерируйте данные и определите параметры местоположения и масштаба, используя приведенный ниже код.
x_data = np.linspace(0, 20, 200) loc_pr = 10 scale_pr = 1 plt.plot(x_data, norm.pdf(x_data, loc=loc_pr, scale=scale_pr)) plt.show()
- Измените параметр loc на некоторое значение и сохраните постоянным значение параметра масштаба, используя приведенный ниже код.
loc_pr = 5 scale_pr = 1 plt.plot(x_data, norm.pdf(x_data, loc=loc_pr, scale=scale_pr)) plt.show()
Когда мы изменили log_pr на 5, это сместило распределение влево, как мы видим на выходе.
Опять же, измените Scale_pr на какое-то значение и сохраните постоянным значение loc_pr, используя приведенный ниже код.
loc_pr = 5 scale_pr = 3 plt.plot(x_data, norm.pdf(x_data, loc=loc_pr, scale=scale_pr)) plt.show()
Когда мы изменяем Scale_pr на 3, это меняет форму распределения, как мы видим на выходе.
У нас есть другие параметры метод аnormal(), которые мы можем использовать, чтобы получить больше контроля над распределением.
Метод cdf()
Объект normal() имеет метод cdf(), который вычисляет совокупное распределение нормы.
Синтаксис:
scipy.stats.norm.cdf(x,loc,size,scale)
Где параметры:
- x: это набор точек или значений, которые представляют данные с равномерной выборкой в форме данных массива.
- loc: используется для указания среднего значения, по умолчанию оно равно 0.
- масштаб: используется для определения стандартного отклонения, по умолчанию оно равно 1.
Вышеуказанные параметры являются стандартными параметрами всех методов объекта scipy.stats.norm().
Давайте рассмотрим пример, используя один из упомянутых выше методов, чтобы узнать, как использовать методы с параметрами:
- Импортируйте необходимые библиотеки, используя приведенный ниже код.
import numpy as np import matplotlib.pyplot as plt from scipy import stats
- Создайте значения данных наблюдения и вычислите кумулятивное распределение на основе этих значений данных со средним значением = 0 и стандартным отклонением = 1.
observatin_x = np.linspace(-2,2,200) cdf_norm = stats.norm.cdf(observatin_x,loc=0,scale=1)
- Постройте созданное распределение, используя приведенный ниже код.
plt.plot(observatin_x,cdf_norm) plt.xlabel('x-values') plt.ylabel('cdf_norm_values') plt.title("Probability density funciton of normal distribution") plt.show()
Метод normal.interval()
Метод normal.interval() Python Scipy вычисляет конечные точки дробного альфа-диапазона распределения от 0 до 1.
Синтаксис:
scipy.stats.interval(alpha, loc=0, scale=1)
Где параметры:
- alpha (с плавающей запятой): это альфа-значение.
- loc: используется для указания среднего значения, по умолчанию оно равно 0.
- scale: используется для определения стандартного отклонения, по умолчанию оно равно 1.
Давайте рассмотрим пример, выполнив следующие шаги:
- Импортируйте необходимые библиотеки или методы, используя код Python.
from scipy.stats import norm
- Определите значение альфа и вычислите конечные точки распределения, используя приведенный ниже код.
alpha = 0.1 norm.interval(alpha)
Вот как вычислить конечные точки дробного альфа-диапазона распределения от 0 до 1, используя метод nomr.interval() Python Scipy.
Метод Ppf
Объект normal() имеет метод ppf(), который рассчитывает функцию процентного пункта нормы. Другими словами, метод принимает процент и возвращает множитель стандартного отклонения для значения, при котором встречается процент.
Синтаксис:
scipy.stats.norm.ppf(q,loc,size,scale)
Где параметры:
- q: это процент.
- loc: используется для указания среднего значения, по умолчанию оно равно 0.
- scale: используется для определения стандартного отклонения, по умолчанию оно равно 1.
Давайте разберемся на примере, следуя приведенному ниже коду.
from scipy.stats import norm norm.ppf(0.99, loc=0, scale=1)
Приведенный выше код дает результат одностороннего теста с доверительным интервалом 99% для нормального распределения.
Метод logpdf()
Объект normal() имеет метод logpdf(), который вычисляет логарифмическую вероятность нормы.
Синтаксис:
scipy.stats.norm.logpdf(x,loc,size,scale)
Где параметры:
- x: это набор точек или значений, которые представляют данные с равномерной выборкой в форме данных массива.
- loc: используется для указания среднего значения, по умолчанию оно равно 0.
- scale: используется для определения стандартного отклонения, по умолчанию оно равно 1.
Вышеуказанные параметры являются стандартными параметрами всех методов объекта scipy.stats.norm(). Методы приведены ниже.
Давайте рассмотрим пример, используя один из упомянутых выше методов, чтобы узнать, как использовать методы с параметрами.
Импортируйте необходимые библиотеки, используя приведенный ниже код.
import numpy as np import matplotlib.pyplot as plt from scipy import stats
Создайте значения данных наблюдения и вычислите логарифмическую вероятность на основе этих значений данных со средним значением = 0 и стандартным отклонением = 1.
observatin_x = np.linspace(-2,2,200) logpdf_norm = stats.norm.logpdf(observatin_x,loc=0,scale=1)
Постройте созданное распределение, используя приведенный ниже код.
plt.plot(observatin_x,logpdf_norm) plt.xlabel('x-values') plt.ylabel('logpdf_norm_values') plt.title("Log probability of normal distribution") plt.show()
Норма статистики Python Scipy Logcdf
Объектnormal() имеет метод logcdf(), который вычисляет логарифмическое кумулятивное распределение нормы.
Синтаксис:
scipy.stats.norm.logcdf(x,loc,size,scale)
Где параметры:
- x: это набор точек или значений, которые представляют данные с равномерной выборкой в форме данных массива.
- loc: используется для указания среднего значения, по умолчанию оно равно 0.
- scale: используется для определения стандартного отклонения, по умолчанию оно равно 1.
Вышеуказанные параметры являются стандартными параметрами всех методов объекта scipy.stats.norm(). Методы приведены ниже.
Импортируйте необходимые библиотеки, используя приведенный ниже код.
import numpy as np import matplotlib.pyplot as plt from scipy import stats
Создайте значения данных наблюдения и вычислите совокупный журнал на основе этих значений данных со средним значением = 0 и стандартным отклонением = 1.
observatin_x = np.linspace(-5,5,200) logcdf_norm = stats.norm.logcdf(observatin_x,loc=0,scale=1)
Постройте созданное распределение, используя приведенный ниже код.
plt.plot(observatin_x,logcdf_norm) plt.xlabel('x-values') plt.ylabel('logcdf_norm_values') plt.title("Log cumulative distribution of normal distribution") plt.show()
Генерация норм
scipy.stats.genpareto представляет собой обобщенную случайную величину Парето, которая является непрерывной. Он имеет различные виды функций нормального распределения, такие как CDF, PDF, медиана и т. д.
Обобщенное распределение Парето(GPD) — это класс непрерывных распределений вероятностей, используемых в статистике. Он часто используется для моделирования хвостов другого распределения.
Он имеет два важных параметра: loc для среднего значения и масштаб стандартного отклонения, поскольку мы знаем, что с помощью этих параметров мы контролируем форму и расположение распределения.
Синтаксис:
scipy.stats.genpareto.method_name(x,c,loc,size,moments,scale)
Где параметры:
- x: это набор точек или значений, которые представляют данные с равномерной выборкой в форме данных массива.
- c: используется для указания формы.
- loc: используется для указания среднего значения, по умолчанию оно равно 0.
- moments: используется для расчета таких статистических данных, как стандартное отклонение, эксцесс и среднее значение.
- scale: используется для указания стандартного отклонения, по умолчанию оно равно 1.
Вышеуказанные параметры являются общим параметром всех методов объекта scipy.stats.genpareto(). Методы приведены ниже:
- scipy.stats.genpareto.cdf(): используется для кумулятивной функции распределения.
- scipy.stats.genpareto.pdf(): используется для функции плотности вероятности.
- scipy.stats.genpareto.rvs(): чтобы получить случайные переменные.
- scipy.stats.genpareto.stats(): используется для получения стандартного отклонения, среднего значения, эксцесса и асимметрии.
- scipy.stats.genpareto.logpdf(): используется для получения журнала, связанного с функцией плотности вероятности.
- scipy.stats.genpareto.logcdf(): используется для поиска журнала, связанного с кумулятивной функцией распределения.
- scipy.stats.genpareto.sf(): используется для получения значений функции выживания.
- scipy.stats.genpareto.isf(): используется для получения значений обратной функции выживания.
- scipy.stats.genpareto.logsf(): используется для поиска журнала, связанного с функцией выживания.
- scipy.stats.genpareto.mean(): используется для нахождения среднего значения, связанного с нормальным распределением.
- scipy.stats.genpareto.medain(): используется для нахождения медианы, связанной с нормальным распределением.
- scipy.stats.genpareto.var(): используется для поиска дисперсии, связанной с распределением.
- scipy.stats.genpareto.std(): используется для определения стандартного отклонения, связанного с распределением.
Давайте рассмотрим пример, используя один из упомянутых выше методов, чтобы узнать, как использовать методы с параметрами:
- Импортируйте необходимые библиотеки, используя приведенный ниже код.
from scipy.stats import genpareto import matplotlib.pyplot as plt import numpy as np
- Код создает переменную для параметров формы и присваивает ей некоторые значения.
c = 0.2
- Создайте массив данных, используя метод ppf() объекта genpareto, используя приведенный ниже код.
array_data = np.linspace(genpareto.ppf(0.01, c), genpareto.ppf(0.90, c), 90) array_data
Теперь постройте функцию плотности вероятности, обратившись к методу pdf() объекта genpareto модуля scipy.stats, используя приведенный ниже код.
fig, ax = plt.subplots(1, 1) ax.plot(array_data, genpareto.pdf(array_data, c), 'r-', lw=4, alpha=0.5, label='genpareto PDF')
Статистика
scipy.stats.gennorm представляет собой случайную величину, которая является обобщенной нормальной непрерывной величиной. Он имеет различные виды функций нормального распределения, такие как CDF, PDF, медиана и т. д.
Он имеет два важных параметра: loc для среднего значения и масштаб стандартного отклонения, поскольку мы знаем, что с помощью этих параметров мы контролируем форму и расположение распределения.
Синтаксис:
scipy.stats.gennorm.method_name(x,beta,loc,size,moments,scale)
Где параметры:
- x: это набор точек или значений, которые представляют данные с равномерной выборкой в форме данных массива.
- бета: используется для указания формы.
- loc: используется для указания среднего значения, по умолчанию оно равно 0.
- moments: используется для расчета таких статистических данных, как стандартное отклонение, эксцесс и среднее значение.
- scale: используется для указания стандартного отклонения, по умолчанию оно равно 1.
Вышеуказанные параметры являются общим параметром всех методов объекта scipy.stats.gennorm(). Методы приведены ниже.
- scipy.stats.gennorm.CDF(): используется для кумулятивной функции распределения.
- scipy.stats.gennorm.PDF(): используется для функции плотности вероятности.
- scipy.stats.gennorm.rvs(): Чтобы получить случайные переменные.
- scipy.stats.gennorm.stats(): используется для получения стандартного отклонения, среднего значения, эксцесса и асимметрии.
- scipy.stats.gennorm.logPDF(): используется для получения журнала, связанного с функцией плотности вероятности.
- scipy.stats.gennorm.logCDF(): используется для поиска журнала, связанного с кумулятивной функцией распределения.
- scipy.stats.gennorm.sf(): используется для получения значений функции выживания.
- scipy.stats.gennorm.isf(): используется для получения значений обратной функции выживания.
- scipy.stats.gennorm.logsf(): используется для поиска журнала, связанного с функцией выживания.
- scipy.stats.gennorm.mean(): используется для нахождения среднего значения, связанного с нормальным распределением.
- scipy.stats.gennorm.medain(): используется для нахождения медианы, связанной с нормальным распределением.
- scipy.stats.gennorm.var(): используется для поиска дисперсии, связанной с распределением.
- scipy.stats.gennorm.std(): используется для определения стандартного отклонения, связанного с распределением.
Давайте рассмотрим пример, используя один из упомянутых выше методов, чтобы узнать, как использовать методы с параметрами:
- Импортируйте необходимые библиотеки, используя приведенный ниже код.
from scipy.stats import gennorm import matplotlib.pyplot as plt import numpy as np
- Код создает переменную для параметров формы и присваивает ей некоторые значения.
beta = 1.4
- Создайте массив данных, используя метод ppf() геннормы объекта, используя приведенный ниже код.
array_data = np.linspace(gennorm.ppf(0.01, a), gennorm.ppf(0.90, a,b), 90) array_data
Теперь постройте функцию плотности вероятности, обратившись к методу PDF() объекта gennorm модуля scipy.stats, используя приведенный ниже код.
fig, ax = plt.subplots(1, 1) ax.plot(array_data, gennorm.pdf(array_data, beta), 'r-', lw=4, alpha=0.5, label='gennorm PDF')
Метод rvs()
Метод rvs() Python Scipy нормы объекта представляет собой случайные переменные, которые генерируют случайные числа.
Синтаксис:
scipy.stats.norm.rvs(loc=0, scale=1, size=1, random_state=None)
Где параметры:
- loc: Это среднее значение.
- scale: ковариационная матрица распределения.
- size (int): это размер выборки.
- random_state(int): если начальное значение равно None, используется метод NumPy.random(или np.random). Он использует единственный экземпляр RandomState. Если начальное число является целым числом, с использованием начального числа создается новый объект RandomState. Если начальное число уже имеет экземпляр Generator или RandomState, используется этот экземпляр.
Давайте возьмем случайную выборку из многомерного нормального распределения, выполнив следующие шаги:
- Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy import stats
- Создайте многомерное нормальное распределение, используя приведенный ниже код.
norm_dist = stats.norm()
- Сгенерируйте случайные числа, используя нормальное распределение, используя приведенный ниже код.
samp_size = 100000 norm_dist.rvs(samp_size)
Метод fit()
Метод fit() Python Scipy нормы объекта, который обеспечивает приближение масштаба и местоположения.
Синтаксис:
scipy.stats.norm.fit(data)
Где данные параметра — это данные, для которых нам нужно местоположение и масштаб.
Давайте разберемся на примере, выполнив следующие шаги:
- Импортируйте необходимые библиотеки или методы, используя приведенный ниже код.
from scipy.stats import norm
- Генерируйте случайные числа, используя методnormal.rvs().
x_data = norm.rvs(1., 2., size=500, random_state=123)
- Теперь подгоните приведенные выше данные, используя приведенный ниже код.
loc_, scale_ = norm.fit(x_data)
- Проверьте предполагаемые значения параметров, используя приведенный ниже код.
print("loc is ",loc_) print("Scale is ",scale_)