Основные методы обработки выборки
Выбери формат для чтения
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Основные методы обработки выборки
1) Наглядное представление выборки для последующего анализа с использованием библиотеки matplotlib (Описательная статистика)
Пусть дана выборка 5, 3, 7, 10, 5, 5, 2, 10, 7, 2, 7, 7, 4, 2, 4. Объем выборки n= 15.
Если элементы выборки упорядочить по величине, такое представление называется вариационным рядом, если отметить повторяемость каждого элемента, то получится статистический ряд выборки. Количество повторов для данного элемента выборки называют его частотой.
Упорядочив элементы выборки выше по величине, получим вариационный ряд:
2, 2, 2, 3, 4, 4, 5, 5, 5, 7, 7, 7, 7, 10, 10.
Статистический ряд имеет вид:
Элементы: 2 3 4 5 7 10
Частоты: 3 1 2 3 4 2
Разность R=8 между максимальным и минимальным элементами выборки называется размах выборки.
При большом объеме выборки ее элементы объединяют в группы, представляя результаты опытов в виде группированного статистического ряда. Для этого интервал, содержащий все элементы выборки, разбивается на к непересекающихся интервалов. j-е интервалы обычно имеют одинаковую длину b = R/k. Иногда от левого конца размаха вычитают небольшое число, к правому концу прибавляют число, чтобы получился целочисленный интервал. После того, как интервалы для группировки выбраны, определяют частоты — количество ni, элементов выборки, попавших в i-й интервал (элемент, совпадающий с правой границей интервала, относится к последующему интервалу). Получающийся статистический ряд в верхней строке содержит середины интервалов группировки, а в нижней — частоты ni, (i = 1, 2, ..., к).
Наряду с частотами одновременно подсчитываются также накопленные частоты -
, относительные частоты ni/n и накопленные относительные частоты Полученные результаты сводятся в таблицу, называемую таблицей частот группированной выборки. Группировка выборки вносит погрешность в дальнейшие вычисления, которая растет с уменьшением числа интервалов. В зависимости от объема выборки число интервалов k выбирают от
6 до 15.
Пример.
Представить выборку из 55 наблюдений в виде таблицы частот, используя 7 интервалов группировки.
18.3 15.4 17.2 19.2 23.3 18.1 21.9 15.3 16.8 13.2
20.4 16.5 19.7 20.5 14.3 20.1 16.8 14.7 20.8 19.5
15.3 19.3 17.8 16.2 15.7 22.8 21.9 12.5 10.1 21.1
18.3 14.7 14.5 18.5 18.4 13.9 19.1 18.5 20.2 23.8
16.7 20.4 19.5 17.2 19.6 17.8 21.3 17.5 19.4 17.8
13.5 17.8 11.8 18.6 19.1
Размах выборки R= 23,8 - 10,1 = 13,7. Длина интервала группировки b = 13,7/7 = 2. В качестве первого интервала удобно взять интервал 10-12.
Стандартная таблица имеет вид:
Записав в файл Input.txt элементы выборки, программа на Питоне после чтения файла должна вывести на консоль и в файл следующую таблицу.
Гистограммой частот группированной выборки называется функция, постоянная на интервалах группировки и принимающая на каждом из них значения ni/b, i = 1,2, ..., к соответственно. b=R/k. - длина каждого интервала.Площадь всей ступенчатой фигуры над графиком гистограммы равна объему выборки п. Так как значения гистограммы пропорциональны самим частотам, обычно по оси ординат откладывают значения частот ni, а не значения ni/b.
Для построения графиков на Питоне используются функции библиотеки matplotlib.
например, для интервалов выборки из 55 элементов с частотами ni гистограмма строится кодом:
import matplotlib.pyplot as plt
………
x = [10,12,14,16,18,20,22,24]
y = [2,2,4,8,12,16,10,3]
width = 1
plt.bar(x,y, width)
plt.xticks(x)
plt.show()
Полигоном частот называется ломаная с вершинами в точках (хi, ni/b), i= 1,2, ..., к, xi - середины интервалов. Также по оси OY отображаются ni.
Для выборки полигон частот отображается кодом
from matplotlib import mlab
import pylab
x=[11,13,15,17,19,21,23] # середины интервалов
y=[2,4,8,12,16,10,3]
pylab.plot (x, y, "-b") # -b - синий цвет
pylab.show()
2) Примеры распределений случайных величин
Дискретная случайная величина принимает лишь дискретный набор значений, которых может быть бесконечно. Обычно указывается таблица значений с соответствующими вероятностями. Примеры.
1. Равномерное распределение. Идеальная игральная кость.
Значения 1 2 3 4 5 6
Вероятности 1/6 1/6 1/6 1/6 1/6 1/6
2. Гипергеометрическое распределение. Вероятности выигрыша в различные лотереи. Пример Спортлото 6 из 49. Имеется N шаров (49) из них n выигрышных (6), покупатель зачеркивает M чисел (6), найти вероятность, что будет угадано m чисел.
Случайная величина m принимает значения от 0 до n с вероятностями:
Остальные величины N,n,M - параметры распределения
Для спортлото:
P(m=6) = 1/ 13983816
P(m=5)=258/13983816= 1/ 54201
P(m=4) = 13545/13983816 = 1/1032
P(m=3)= 246820/13983816 = 1/101
P(m=2)= 1851150/13983816=1/7,5
P(m=1) = 5775588/13983816 = 1/2,4
P(m=0)= 6096454/13983816 = 1/2,2
Чтобы вероятность выигрыша стала больше 1/2 нужно покупать не менее 38 карточек. Карточка стоила 30 коп. Сумма примерно 11,5 руб. Выигрыш составлял за 3 номера 3 руб.
2. Распределение Пуассона. Количество значений величины бесконечно.
Значения X 0 1 2 3 4 …..
Вероятности P0 P1 P2 P3 P4 …
- параметр распределения
Пример. Число голов, забитых в матчах европейских кубков и чемпионатов мира и Европы подчиняется распределению Пуассона. Для немецких клубов и сборной = 2,34 ; для российских 0,76.
Непрерывная случайная величина X может принимать любое значение из вещественного диапазона (a,b), в частности или . Бессмысленно говорить о вероятности P(X=x), ,
можно лишь говорить о вероятности величины X попасть в определенный интервал (x1,x2). Любая случайная величина определяется функцией распределения FX(x)=P(Xb
Плотность распределения:
0. x<=a
pX(x)= 1/(b-a), a<=x<=b
0, x>b
2. Экспоненциальное распределение. Пример. Если взять ядро урана, пролежавшее 4 млрд лет и ядро, только что синтезированное на ускорителе, вероятность, что они распадутся через определенный фиксированный промежуток времени абсолютна одинакова.
Функция распределения:
параметр распределения
Для вычисление функции распределения и график имеют вид
import math
# Импортируется один из пакетов Matplotlib
import pylab
# Импортируется пакет со вспомогательными функциями
from matplotlib import mlab
L=1/2 # параметр распределения
def func (x):
return 1-math.exp(-L*x)
# Интервал изменения переменной по оси X
xmin = 0.0
xmax = 10.0
# Шаг между точками
dx = 0.01
# список координат по оси X на отрезке [-xmin; xmax], включая концы
xlist = mlab.frange (xmin, xmax, dx)
# Вычислим значение функции в заданных точках
ylist = [func (x) for x in xlist]
# сам график
pylab.plot (xlist, ylist)
# окно с нарисованным графиком
pylab.show()
Плотность распределения:
, x>=0
Для
3. Нормальное распределение. Пример - распределение людей по росту. Нормальных распределений существенно больше, чем остальных. Объяснение - несколько вариантов центральных предельных теорем. Если некоторая величина может быть представлена в виде суммы большого числа слагаемых малых величин произвольно распределенных, то итоговая величина нормально распределена.
На рост влияет множество факторов, каждый вносит небольшой вклад, итог - нормальное распределение.
Функция распределения. Функция распределения не выражается через элементарные функции и может быть записана через интеграл от плотности:
Функцию распределения с параметрами a, можно вычислить через функцию ошибок erf, которая есть в библиотеке math Питона.
Плотность распределения:
, a, - параметры распределения; a - среднее, - стандартное отклонение (квадратный корень из дисперсии).
Для a=2, =2 (дисперсия равна 4)
4. Распределение Парето. Пример. Количество населения в городах, распределение доходов населения.
Одно из объяснений. Пусть X представляет собой некоторый ресурс. Увеличить его на d тем проще, чем исходное значение больше. К миллиону рублей добавить 1000 руб, проще, чем к 5000 руб. те же 1000.
Функция распределения:
параметры
x>xm .
Для k=2,4 ; xm=1,17
Плотность распределения
3) Критерии согласия
Дана некоторая выборка x1, x2,…xn.
Существует множество критериев для проверки, что заданная выборка x1, x2,…xn подчиняется некоторому закону распределения. Эти критерии называются критерии согласия. Все они могут использоваться только для определенных законов (экспоненциального, нормального и т.д.) и не пригодны для других Но, существуют два универсальных критерия, позволяющих проверять выборку на любое распределение. Критерий хи-квадрат основан на аппроксимации плотности, критерий Колмогорова-Смирнова на аппроксимации функции распределения.
А. Критерий согласия хи-квадрат.
Пусть дана выборка x1,x2,…,xn.
1.41 3.49 2.22 1.06 0.593 2.66 2.71 2.59 2.64 2.66 5.18
1.61 0.83 3 3.21 2.39 2.08 1.79 2.08 3.51 3.17
1.25 1.12 1.09 1.63 1.56 5.29 1.47 1.29 2.11 4.55
3 4.36 2.48 2.78 3.21 1.66 3.02 2.81 3.52 0.929
1.82 4.26 2.17 1.72 1.64 1.91 2.33 1.55 3.18 4.06
5.62 2.15 1.7 1.35 2.86 4.25 1.83 0.72 1.21 2.65
1.59 3.9 2.03 1.08 3.72 1.03 3 2.3 0.755 4.91
1.7 2.11 0.812 1.41 1.32 1.52 1.99 2.41 1.52 1.39
1.91 0.99 1.51 0.3 1.48 1.07 1.39 2.45 0.519 2.76
0.896 1.84 3.1 1.57 2.14 2.64 1.53 0.546 3 1.49
0.993 4.41 0.872 1.58 4.9 3.03 1.18 3.79 0.839 2.89
1.21 0.876 1.82 1.57 1.11 1.38 0.792 3.06 3.49 2.01
8.28 2.51 1.83 3.46 6.49 2.27 7.85 0.599 2.17 0.663
1.58 3.21 2.58 4.04 1.33 4.93 1.05 1.56 1.59 1.36
5.47 0.28 1.6 1.46 2.68 1.51 3.3 3.78 3.7 0.897
1.49 1.03 1.53 2.01 0.201 2.02 1.15 2.89 3.3 1.36
1.42 2.99 3.84 1.9 1.51 1.96 3.96 0.701 7.42 1.56
5.92 1.62 0.8 1.1 1.3 1.83 1.82 5.83 0.103 0.739
6.98 1.35 4.79 2.07 1.37 1.53 1.37 0.987 0.914 1.66
5.04 2.54 1.57 2.5 1.26 1.82 7.88 1.74 6.06 0.334
1.14 3.94 2.12 1.33 3.53 1.73 1.26 2.62 1.52 1.15
2.6 2.73 1.13 2.05 1.31 2.02 1.76 3.19 1.13 2.68
0.803 1.79 1.62 1.87 2.17 0.839 1.07 0.887 1.15 4.26
0.616 2.4 1.4 0.509 3.33 3.58 1.51 1.98 1.98 3.02
5 0.816 2.5 1.67 5.18 2.32 0.818 0.372 1.12 1.52
2.17 3.22 4.18 2.96 2.47 2.57 1.78 1.46 1.07 7.01
4.26 1.89 3.15 0.534 3.08 0.561 2.81 0.765 1.32 2.52
5.66 2.9 0.941 2.6 2.75 2.89 1.53 3.78 0.331 0.936
3.39 1.19 1.19 1.56 1.77 2.06 0.961 0.954 2.44 1.53
1.74 0.797 4.23 0.687 2.75 1.15 0.85 0.35 2.08
n=300
Предположим, что эта выборка из одного из трех распределений: экспоненциального, нормального и Парето.
Сначала построим гистограмму распределение выборки и сравним с графиком плотности теоретических вероятностей для каждого распределения. Найдем размах выборки и округлим до целых для удобства вычислений. Min=0; Max=9;
Число интервалов разбиения k приближенно вычисляется . Пусть k=15
Вычислим h=(Max-Min)/k=0,6 шаг по оси OX
Построим гистограмму по выборке - массив:
Hist=np.zeros((k),dtype=np.int32)
Hist[i] вычисляется как количество элементов из выборки попавших в интервал [Min+hi; Min+h(i+1),
i=0,k-1
Код:
x=[]
z=0
i=0
while i30 распределение хорошо аппроксимируется выражением:
p = np.array([0.99, 0.95, 0.75, 0.5, 0.25, 0.05, 0.01])
yp=np.zeros((7),dtype=np.float)
df=np.zeros((7),dtype=np.float)
for i in range(0,7):
yp[i]=0.5*math.log(1/(1-p[i]))
yp[i]=math.sqrt(yp[i])
for i in range(0,7):
df[i]=yp[i]-n**(-0.5)/6.0
for i in range(0,7):
df[i]=math.floor(df[i]*100)/100
print(p)
print(df)
Вывод аналогичен хи-квадрат, принимается, слегка подозрителен,… и т.д.
Вычисленные значения для выборки:
V1=0,05
V2=0,04
Получилось слишком хорошо, был бы реальный эксперимент - фальшивка, подгонка данных.
4) Доверительные интервалы для среднего и дисперсии в случае нормального закона распределения
Пусть x1, ..., хп — выборка п наблюдений случайной величины X, которая имеет нормальное распределение N(a, 2). В качестве оценки неизвестного истинного среднего a возьмем выборочное среднее х.
Доверительным интервалом для неизвестного среднего a называется интервал (x1,x2), в котором истинное значение среднего a будет находится с заданной вероятностью p=, p называется доверительной вероятностью, а - уровнем значимости. Обычно p задано: 0,9; 0,95; 0,99.
При повышении p увеличивается точность оценки интервала a, но при этом увеличивается ширина интервала.
Предположим, что дисперсия генеральной совокупности 2 известна. Тогда доверительный интервал рассчитывается по нормальному закону, но этот случай нереальный и не рассматривается.
Если же истинное значение дисперсии неизвестно, оно заменяется ее оценкой
оценка среднего
s- оценка стандартного отклонения, равное квадратному корну из s2.
тогда доверительный интервал рассчитывается с использованием распределения Стьюдента (Госсет)
Доверительный интервал равен:
Для выборки из 300 элементов предыдущего пункта после чтения из файла и оценок среднего и стандартного отклонения вычисляется tcr =для =0,95 уровень доверия и вычисляется доверительный интервал для неизвестного истинного среднего a
s - оценка среднего, Sg - сандартного отклонения
alfa=0.05 # уровень значимости 1-
m=n-1 # число степеней свободы = 299
t=stats.t(m)
tcr=t.ppf(1-alfa/2)# критическое значение t распределения
x1=s-Sg/math.sqrt(n)*tcr
x2=s+Sg/math.sqrt(n)*tcr
x1=math.floor(x1*1000)/1000 # округление
x2=math.floor(x2*1000)/1000
print(x1,x2)
Истинное значение среднее a находится в интервале (1,768; 2,69) с вероятностью 0,95
При = 0,99 инрервал равен (1,685;2,373) в нем a находится с вероятностью 0,99
Иногда требуется не только оценить дисперсию, но и построить дя нее доверительный интервал, т.е. интервал, в который попадает истинное значение дисперсии с заданной вероятностью.
При этом будем рассматривать только случай, когда истинное среднее a неизвестно и имеется лишь ее оценка Для рассматриваемой выборки =2,02
Аналогично истинная дисперсия неизвестна и имеется лишь ее оценка оценка среднего
Величина имеет распределение хи-квадрат с n-1 степенями свободы.
Пусть уровень доверия =0.95, тогда доверительный интервал для неизвестной дисперсии имеет вид:
(,)
для выборки число степеней свободы n-1 =299, оценка дисперсии s2=2,3
from scipy.stats import chi2
p = np.array([0.995,0.99, 0.95, 0.05, 0.01,0.005])
df = np.array(range(299, 300)).reshape(-1,1)
t= chi2.isf(p,df)
for i in range (0,6):
t[0,i]=math.floor(t[0,i]*1000)/1000
print (p)
print (t) # значения хи-квадрат
x1=(n-1)*Sg/t[0,5] # 0,005
x2=(n-1)*Sg/t[0,0] # 0,995
x1=math.floor(x1*1000)/1000
x2=math.floor(x2*1000)/1000
print(x1,x2)
Истинное значение дисперсии попадает в интервал (1,88;2,868) с вероятностью 0,95