Следующая тема:  САД. Случайные величины

Вернуться в раздел: Статистический анализ данных

Вернуться в оглавление: Я.Практикум

 

В теме:

 
 

Непрерывные и дискретные переменные

И число проданных машин, и количество проведённого на сайте времени — примеры численных переменных. Но между ними есть серьёзное различие: время пребывания на сайте может принимать любое значение, тогда как число проданных машин может быть только целым.
 
Рассмотрим пример со временем на сайте. В зависимости от того, насколько точны вычисления, эта величина может принимать разные значения: 5 минут, 5 минут 13 секунд, 5 минут 13 секунд и 25 микросекунд и так далее. Аналогично с весом котика. В зависимости от точности весов он может весить 8 килограммов, 8 килограммов и 20 граммов, 8 килограммов и 156 миллиграммов. Таким образом, эта величина может принимать любое значение.
 
А вот число проданных машин не может принимать любое значение, поскольку невозможно продать 15.3 машины, то есть 15 целых машин и ещё кусочек 16-й. Таким образом, число проданных машин будет равно 15 или 16.
 
 

Мода и медиана

Кратко:

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

Мода

Когда аналитик данных определился с типом величины, его задача — описать её. Сделать это можно по-разному, в статистике же для описания некоторой величины используются два основных типа характеристик: характеристики положения и характеристики разброса. В этом уроке вы узнаете о некоторых характеристиках первого типа.
 
Характеристики положения описывают то, где находится условный центр набора данных. Первый и самый простой вариант описать центр некоторого набора данных — вычислить моду.
 
 
 
 
 
 
import pandas as pd
data = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 10, 10, 10])
print('Мода набора данных равна', data.mode()[0])
print('Медиана исходного набора данных равна', data.median())
print('Среднее арифметическое набора данных равно', data.mean())
Результат
Мода набора данных равна 10
Медиана исходного набора данных равна 7.5
Среднее арифметическое набора данных равно 6.714285714285714
 
Вычислим для этого набора данных известные вам характеристики положения.
import pandas as pd
data = pd.Series([1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 10, 10])
print('Мода набора данных равна', data.mode()[0])
print('Медиана исходного набора данных равна', data.median())
print('Среднее арифметическое набора данных равно', data.mean())
Результат
Мода набора данных равна 10
Медиана исходного набора данных равна 6.5
Среднее арифметическое набора данных равно 5.875
 
 
Запомнить, какими бывают характеристики положения, вам поможет схема:
 
 

Дисперсия и стандартное отклонение

Кратко:

Разброс данных

В прошлых уроках вы познакомились с характеристиками положения: структурными (модой и медианой) и алгебраическими (средним арифметическим значением). Они помогают описать центр набора данных. Но при работе с данными, кроме определения центра набора, важно понимать и то, насколько сильно эти данные разбросаны вокруг выделенного центра.
Допустим, вы хотите приобрести компанию и выбираете между «Компанией А» и «Компанией Б». Вы намерены купить прибыльное предприятие, и поэтому вам нужно узнать средний доход обеих компаний в месяц. Оказалось, что они примерно равны: средний доход «Компании А» — 50.0 тыс. рублей, «Компании Б» — 49.9 тыс. рублей.
 
Разберёмся с формулой на примере уже знакомого вам набора данных: 1, 2, 2, 3, 4 со средним значением 2.4 с числом элементов n=5 средним значением x‾=2.4 и дисперсией 1.04 Подставим значения в формулу, чтобы посчитать стандартное отклонение:
 
s=s^2**0.5=1.04**0.5=1.0198
 
Результат
2.9166666666666665
 
import pandas as pd
data = pd.Series([1, 2, 3, 4, 5, 6])
mean = data.mean()
var = 0
for i in data:
    var += (i - mean) * (i - mean)
var /= len(data)
std = var**0.5 # извлекаем корень
print(std)
 
import pandas as pd
x = pd.Series([1, 2, 3, 4, 5, 6, 7, 8]) # набор данных
range_value = x.max() - x.min() # размах
print(range_value)
Результат
7
 
 
import pandas as pd
from scipy import stats # подключение модуля stats из библиотеки scipy
x = pd.Series([3, 1, 2, 5, 6, 0, 10])
iqr_value = stats.iqr(x) # межквартильный размах
print(iqr_value)
Результат
4.0
 
 
Как работает линейная интерполяция
Ваш ответ правильный
5
import pandas as pd
import numpy as np
from scipy import stats

x = pd.Series([3, 1, 2, 5, 6, 0, 10])
p25 = np.percentile(x, 25)
print('25-й процентиль с интерполяцией:', p25)
p75 = np.percentile(x,75)
print('75-й процентиль с интерполяцией:', p75)
import pandas as pd
import matplotlib.pyplot as plt
x = pd.Series([-10, 1, 2, 3, 4, 5, 6, 7, 8, 10]) # набор данных
ax = x.plot.box()
plt.show()
Результат
 
 
 

Столбчатая диаграмма

Кратко:

Диаграмма размаха, которую вы подробнее изучили в прошлом уроке, показывает, как расположены данные и их разброс, но она не всегда достаточно информативно описывает, как данные распределены между собой.
 
Для представления на графике непрерывных величин часто используется гистограмма, но она не подходит для изображения дискретных величин. Если описывать их таким образом, могут возникнуть большие пустые интервалы на графиках. Так как дискретные величины могут принимать только определённое число значений, то для них придумали другой график, демонстрирующий частоту данных и то, как расположены данные между собой. Перед тем как перейти к нему, познакомимся с понятием таблицы частот.
 
Пусть имеется набор данных 1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 5, тогда таблица частот для этого набора данных будет выглядеть так:
 
Значение Частота
3 4
1 3
4 2
5 1
2 1
 
Чтобы построить такую таблицу в Python, достаточно воспользоваться методом value_counts() из библиотеки pandas:
 
import pandas as pd
data = pd.Series([1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 5]) # данные
print(data.value_counts())
Результат
 
3    4
1    3
4    2
2    1
5    1
dtype: int64
 
 
import pandas as pd
import matplotlib.pyplot as plt
data = pd.Series([1, 1, 1, 2, 3, 3, 3, 3, 4, 4, 5]) # данные
ax = data.value_counts().plot.bar()
plt.show()
 
import pandas as pd
import matplotlib.pyplot as plt
times = pd.Series([11.2, 20.5, 22.35, 31.1, 32.05, 33.8, 41.2, 42.15, 43.5, 44.123, 
	51.1, 52.712, 53.053, 54.012, 55.2, 61.987, 62.123, 63.123, 64.12, 65.5678, 66.16, 
	71.051, 72.531, 73.121, 74.71, 75.1233, 76.51, 77.12, 81.005, 82.01, 83.5, 84.323, 
	85.1, 86.1, 87.1, 88.12, 91.56, 92.056, 93.651, 94.777, 95.102, 96.105, 97.503, 
	98.003, 99.00005]) # данные
ax = times.value_counts(ascending=True).plot.bar()
import pandas as pd
import matplotlib.pyplot as plt
times = pd.Series([11.2, 20.5, 22.35, 31.1, 32.05, 33.8, 41.2, 42.15, 43.5, 44.123, 
	51.1, 52.712, 53.053, 54.012, 55.2, 61.987, 62.123, 63.123, 64.12, 65.5678, 66.16, 
	71.051, 72.531, 73.121, 74.71, 75.1233, 76.51, 77.12, 81.005, 82.01, 83.5, 84.323, 
	85.1, 86.1, 87.1, 88.12, 91.56, 92.056, 93.651, 94.777, 95.102, 96.105, 97.503, 
	98.003, 99.00005]) # данные
times.hist(bins=4)
plt.show()
На основе этой гистограммы можно сказать, что наиболее частые значения в наборе данных — те, что лежат в диапазоне примерно от 80 до 100. Теперь построим гистограмму с другим значением параметра bins.
import pandas as pd
import matplotlib.pyplot as plt
times = pd.Series([11.2, 20.5, 22.35, 31.1, 32.05, 33.8, 41.2, 42.15, 43.5, 44.123, 
	51.1, 52.712, 53.053, 54.012, 55.2, 61.987, 62.123, 63.123, 64.12, 65.5678, 66.16, 
	71.051, 72.531, 73.121, 74.71, 75.1233, 76.51, 77.12, 81.005, 82.01, 83.5, 84.323, 
	85.1, 86.1, 87.1, 88.12, 91.56, 92.056, 93.651, 94.777, 95.102, 96.105, 97.503, 
	98.003, 99.00005]) # данные
times.hist(bins=10)

Нужно найти наиболее часто встречающееся значение.

 

Плотность частоты и гистограмма

Кратко:

В прошлом уроке вы узнали, что для описания непрерывных величин лучше подходят гистограммы. Но их нужно точно настраивать под каждую задачу и различные данные, а значит, это не самый удобный и универсальный инструмент. В этом уроке вы узнаете о другом способе построения графиков для непрерывных переменных — гистограмме плотности. Её особенность в том, что частоту, с которой значения попадают в интервал, показывают не высотой столбца, а площадью интервала.
 
Разберём на примере. Пусть у нас есть некоторая величина, которая принимает значения от 2 и до 10. Известно, что в полученном наборе данных значения в интервале от 4 до 8 встречаются 24 раза. Построим график, где по горизонтали отмечены значения набора данных, а по вертикали — плотность частоты. Чтобы найти её значение, нужно частоту, с которой значения встречаются в определённом интервале, разделить на длину этого интервала. Подставим значения из примера в формулу, получится: 24:4=6 Таким образом, высота столбца, изображающего плотность частоты, будет равна 6. Такая гистограмма называется плотностной, или гистограммой плотности.
 
В левой части — гистограмма с узкими слегка вытянутыми вверх столбцами, в правой части — гистограмма с широкими вытянутыми вверх столбцами.
Две гистограммы, построенные на одних и тех же данных, могут визуально отличаться друг от друга, если изменить количество столбцов, и обе будут правдивы, как вы помните из прошлого урока. Недостаток обычной гистограммы проявляется особенно явно, если значения переменной разбиты на классы разной ширины.
 
У гистограммы плотностей такого недостатка нет, так как при увеличении интервала столбцов увеличивается частота попадания в эти столбцы, но из-за увеличения интервала плотность частоты не будет сильно изменяться. Лучше понять различие между обычной гистограммой и гистограммой плотностей поможет сравнение двух графиков:
 
 
 
Ось Y отображает частоту, значения: 0, 100, 350. Ось Х — длительность полёта (в минутах), значения: 0, 90, 250, 400, 540. На графике семь столбцов. Первые три слева отзеркаливают три справа: высота каждого из этих столбцов равна высоте симметричному столбцу на противоположной стороне. Самый низкий столбец — посередине, его высота примерно равна значению 100 по оси Y.
Рисунок 1
 
Ось Y отображает частоту, значения: 0, 50, 600. Ось Х — объём топлива, необходимый для полёта (в литрах), значения: 0, 40, 100, 150, 250, 300. На графике восемь узких столбцов: по ширине первые два столбца укладываются в диапазон от 40 до 100, следующие два — от 100 до 150, следующая пара — от 150 до 250 и последняя пара — от 250 до 300. Первые пять столбцов примерно на одной высоте, самый высокий из них заканчивается примерно на уровне значения 100 по оси Y. Шестой столбец — самый низкий из восьми. Он заканчивается примерно на уровне значения 25 по оси Y. Седьмой столбец самый высокий из восьми столбцов, заканчивается на уровне значения 600 по оси Y. Последний, восьмой столбец, заканчивается на уровне примерно 60 по оси Y.
Рисунок 2
 
 
Ось Y отображает частоту, значения: 0, 100, 350. Ось Х — длительность полёта (в минутах), значения: 0, 90, 250, 400, 540. На графике семь столбцов. Первые три слева отзеркаливают три справа: высота каждого из этих столбцов равна высоте симметричному столбцу на противоположной стороне. Самый низкий столбец — посередине, его высота примерно равна значению 100 по оси Y.
Рисунок 1
 
Ось Y отображает частоту, значения: 0, 50, 600. Ось Х — объём топлива, необходимый для полёта (в литрах), значения: 0, 40, 100, 150, 250, 300. На графике восемь узких столбцов: по ширине первые два столбца укладываются в диапазон от 40 до 100, следующие два — от 100 до 150, следующая пара — от 150 до 250 и последняя пара — от 250 до 300. Первые пять столбцов примерно на одной высоте, самый высокий из них заканчивается примерно на уровне значения 100 по оси Y. Шестой столбец — самый низкий из восьми. Он заканчивается примерно на уровне значения 25 по оси Y. Седьмой столбец самый высокий из восьми столбцов, заканчивается на уровне значения 600 по оси Y. Последний, восьмой столбец, заканчивается на уровне примерно 60 по оси Y.
Рисунок 2
 
 
 
 
 
 
 
 
 

Следующая тема:  САД. Случайные величины

Вернуться в раздел: Статистический анализ данных

Вернуться в оглавление: Я.Практикум