Как построить нормальное распределение в Python (с примерами)
Чтобы построить нормальное распределение в Python, вы можете использовать следующий синтаксис:
#x-axis ranges from -3 and 3 with .001 steps x = np.arange (-3, 3, 0.001) #plot normal distribution with mean 0 and standard deviation 1 plt.plot (x, norm. pdf (x, 0, 1))
Массив x определяет диапазон для оси x, а plt.plot() создает кривую для нормального распределения с указанным средним значением и стандартным отклонением.
В следующих примерах показано, как использовать эти функции на практике.
Пример 1: построение одного нормального распределения
Следующий код показывает, как построить одну кривую нормального распределения со средним значением 0 и стандартным отклонением 1:
import numpy as np import matplotlib.pyplot as plt from scipy. stats import norm #x-axis ranges from -3 and 3 with .001 steps x = np.arange (-3, 3, 0.001) #plot normal distribution with mean 0 and standard deviation 1 plt.plot (x, norm. pdf (x, 0, 1))

Вы также можете изменить цвет и ширину линии на графике:
plt.plot (x, norm. pdf (x, 0, 1), color='red', linewidth= 3 )

Пример 2: построение нескольких нормальных распределений
Следующий код показывает, как построить несколько кривых нормального распределения с разными средними значениями и стандартными отклонениями:
import numpy as np import matplotlib.pyplot as plt from scipy. stats import norm #x-axis ranges from -5 and 5 with .001 steps x = np.arange (-5, 5, 0.001) #define multiple normal distributions plt.plot (x, norm. pdf (x, 0, 1), label='μ: 0, σ: 1') plt.plot (x, norm. pdf (x, 0, 1.5), label='μ:0, σ: 1.5') plt.plot (x, norm. pdf (x, 0, 2), label='μ:0, σ: 2') #add legend to plot plt.legend()

Не стесняйтесь изменять цвета линий и добавлять заголовок и метки осей, чтобы сделать диаграмму завершенной:
import numpy as np import matplotlib.pyplot as plt from scipy. stats import norm #x-axis ranges from -5 and 5 with .001 steps x = np.arange (-5, 5, 0.001) #define multiple normal distributions plt.plot (x, norm. pdf (x, 0, 1), label='μ: 0, σ: 1', color='gold') plt.plot (x, norm. pdf (x, 0, 1.5), label='μ:0, σ: 1.5', color='red') plt.plot (x, norm. pdf (x, 0, 2), label='μ:0, σ: 2', color='pink') #add legend to plot plt.legend(title='Parameters') #add axes labels and a title plt.ylabel('Density') plt.xlabel('x') plt.title('Normal Distributions', fontsize= 14 )

Подробное описание функции plt.plot() см. в документации по matplotlib.
Как построить гамма-распределение в Python (с примерами)

В статистике гамма-распределение часто используется для моделирования вероятностей, связанных со временем ожидания.
В следующих примерах показано, как использовать функцию scipy.stats.gamma() для построения одного или нескольких гамма-распределений в Python.
Пример 1. Постройте первое гамма-распределение
В следующем коде показано, как построить гамма-распределение с параметром формы, равным 5 , и параметром масштаба, равным 3 , в Python:
import numpy as np import scipy. stats as stats import matplotlib.pyplot as plt #define x-axis values x = np.linspace (0, 40, 100) #calculate pdf of Gamma distribution for each x-value y = stats. gamma.pdf (x, a= 5 , scale= 3 ) #create plot of Gamma distribution plt.plot (x, y) #display plot plt.show()

На оси X отображаются потенциальные значения, которые может принимать случайная величина с гамма-распределением, а на оси Y — соответствующие значения PDF для гамма-распределения с параметром формы, равным 5, и параметром масштаба, равным 3.
Пример 2: построение нескольких гамма-распределений
В следующем коде показано, как построить несколько гамма-распределений с различными параметрами формы и масштаба:
import numpy as np import scipy. stats as stats import matplotlib.pyplot as plt #define three Gamma distributions x = np.linspace (0, 40, 100) y1 = stats. gamma.pdf (x, a= 5 , scale= 3 ) y2 = stats. gamma.pdf (x, a= 2 , scale= 5 ) y3 = stats. gamma.pdf (x, a= 4 , scale= 2 ) #add lines for each distribution plt.plot (x, y1, label= shape=5, scale=3') plt.plot (x, y2, label='shape=2, scale=5') plt.plot (x, y3, label='shape=4, scale=2') #add legend plt.legend() #display plot plt.show()

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

Был бы признателен за объяснение какая тут целевая переменная и как хотя бы примерно это сделать
Отслеживать
задан 5 мая 2022 в 15:48
51 7 7 бронзовых знаков
Пожалуйста, исправьте вопрос, чтобы он отражал конкретную проблему с достаточным количеством деталей для возможности дать адекватный ответ.
5 мая 2022 в 16:22
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Вы решили проверить нашу эрудицию? Ну типа вам задали домашнее задание, но вы то на занятии были заняты чем-то другим более интересным. Учителя не слушали. А теперь хотите, что бы мы УГАДАЛИ, что вам задали? Ладно, если вы так просите, могу сделать ПРЕДПОЛОЖЕНИЕ, что целевой переменной тут выступает количество вызовов скорой помощи, а исследуется зависимость этой величины от некоторых погодных факторов.
Это «примерно» делается так — гистограмма строиться в библиотеке matplotlib с помощью функции hist(), в seaborne — функцией distplot(), в pandas — тоже методом .hist().
Что вы имеете ввиду под «коэффициентом наклона» — мне не ведомо, но если это коэффициент скоса — то в pandas он рассчитывается с помощью метода .skew().
Отслеживать
ответ дан 5 мая 2022 в 20:13
11.6k 2 2 золотых знака 10 10 серебряных знаков 16 16 бронзовых знаков
- python
- pandas
- matplotlib
- искусственный-интеллект
- seaborn
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Линейная регрессия и основные библиотеки Python для анализа данных и научных вычислений
Это задание посвящено линейной регрессии. На примере прогнозирования роста человека по его весу Вы увидите, какая математика за этим стоит, а заодно познакомитесь с основными библиотеками Python, необходимыми для дальнейшего прохождения курса.
Материалы
- Лекции данного курса по линейным моделям и градиентному спуску
- Документация по библиотекам NumPy и SciPy
- Документация по библиотеке Matplotlib
- Документация по библиотеке Pandas
- Pandas Cheat Sheet
- Документация по библиотеке Seaborn
Задание 1. Первичный анализ данных c Pandas
В этом заданиии мы будем использовать данные SOCR по росту и весу 25 тысяч подростков.
[1]. Если у Вас не установлена библиотека Seaborn — выполните в терминале команду conda install seaborn. (Seaborn не входит в сборку Anaconda, но эта библиотека предоставляет удобную высокоуровневую функциональность для визуализации данных).
In [1]:import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt import scipy.optimize as opt %matplotlib inlineСчитаем данные по росту и весу (weights_heights.csv, приложенный в задании) в объект Pandas DataFrame:
In [2]:data = pd.read_csv('weights_heights.csv', index_col='Index')Чаще всего первое, что надо надо сделать после считывания данных - это посмотреть на первые несколько записей. Так можно отловить ошибки чтения данных (например, если вместо 10 столбцов получился один, в названии которого 9 точек с запятой). Также это позволяет познакомиться с данными, как минимум, посмотреть на признаки и их природу (количественный, категориальный и т.д.).
После этого стоит построить гистограммы распределения признаков - это опять-таки позволяет понять природу признака (степенное у него распределение, или нормальное, или какое-то еще). Также благодаря гистограмме можно найти какие-то значения, сильно не похожие на другие - "выбросы" в данных. Гистограммы удобно строить методом plot Pandas DataFrame с аргументом kind='hist'.
Пример. Построим гистограмму распределения роста подростков из выборки data. Используем метод plot для DataFrame data c аргументами y='Height' (это тот признак, распределение которого мы строим)
In [3]:data.plot(y='Height', kind='hist', color='red', title='Height (inch.) distribution')Предыдущая запись
