- •Задание.
- •План работы.
- •О реализации.
- •Общие данные.
- •Анализ глубины просмотра по каждой категории и в целом.
- •Гипотеза нормальности. Модифицированный критерий χ2.
- •Гипотеза экспоненциальности. Критерий Колмогорова-Смирнова.
- •Гипотеза симметричности. Быстрый критерий Кенуя.
- •Результат выполнения программы на Python:
- •Результат анализа данных в пакете Statgraphics.
- •Сводная таблица по разделам:
- •Выводы:
- •Регрессионные модели.
- •Сводный результат выполнения программы на Python.
- •Категория 14.
- •Линейная модель.
- •Мультипликативная модель.
- •Обратная по X модель.
- •Выводы:
- •Анализ связи между категориями. Корреляционный анализ.
- •Пример.
- •Приложение. Исходный код.
Анализ глубины просмотра по каждой категории и в целом.
Вычислим следующие характеристики:
Характеристики центра распределения: - Среднее.
-
Медиана.
- Мода. Наиболее часто встречающееся значение.
Характеристики рассеяния: - Несмещённая исперсия.
-
Стандартное отклонение.
-
Нижняя квартиль.
Значение, ниже которого лежат 25%
данных.
- Верхняя квартиль.
Значение, ниже которого
лежат 75% данных.
Характеристики формы: - Коэффициент асимметрии.
-
Коэффициент эксцесса.
Поскольку n > 10 000 и (n-3) ~ (n-2) ~ (n-1) ~ n, дроби в последних двух формулах можно упростить.
Также проверим три гипотезы:
Гипотеза нормальности распределения.
Гипотеза экспоненциальности распределения.
Гипотеза симметрии распределения.
Гипотеза нормальности. Модифицированный критерий χ2.
Совокупность выборочных данных разбивается на k интервалов и подсчитывается статистика критерия:
Границы интервалов заданы формулой
где
- выборочное среднее, s
- среднее квадратическое отклонение, а
коэффициенты
задаются по таблице. Массив коэффициентов
для k
= 14:
[-1.4652, -1.0676, -0.792, -0.566, -0.366, -0.18, 0, 0.18, 0.366, 0.566, 0.7916, 1.0676, 1.4652]
Если
,
гипотеза нормальности отклоняется.
Критическое
значение
Реализация на Python:
def test_normal_Hi_squared(massive):
n = len(massive)
m = get_mean(massive, n)
s = get_unbiased_variance(massive, m, n)
c_coefficients = [-100000, -1.4652, -1.0676, -0.7916, -0.5660, -0.3661, -0.18,
0, 0.18, 0.3661, 0.5660, 0.7916, 1.0676, 1.4652, 100000]
intervals = [m + c*s for c in c_coefficients]
mi = 0
for i in range(1, len(intervals)):
hits = sum(1 for e in massive if (intervals[i-1]<e) & (e<intervals[i]))
mi += hits ** 2
hi_squared = (14 * mi / n) - n
threshold = 19.937 # из таблицы (стр. 231)
if hi_squared > threshold:
return "Гипотеза нормальности распределения отклоняется."
else:
return "Гипотеза нормальности распределения не отклоняется."
Источник литературы для этого метода:
Dahiya R. С, Gurland J. How many classes in the Pearson chi-square test? //
JASA. 1973. V. 68, №343. P. 707-712.
Гипотеза экспоненциальности. Критерий Колмогорова-Смирнова.
Предположим наличие гипотетического закона распределения
.
Оценки параметров μ и υ находятся из формул (выборка упорядочена):
Переходим к нормированному экспоненциальному распределению:
Для этого распределения имеется критерий согласия Колмогорова-Смирнова:
Критическое
значение для критерия
при уровне значимости 0.05 равно 1.094.
Реализация на Python:
def test_exponence_Kolmogorov(massive):
massive = sorted(massive)
n = len(massive)
m = get_mean(massive, n)
nu = n * (m-massive[0]) / (n-1)
mu = massive[0] - nu / n
z_minus, z_plus = [], []
for i, x in enumerate(massive):
z = 1 - exp(-(x - mu) / nu)
z_plus.append(i/n - z)
z_minus.append(z - (i-1)/n)
dn_plus, dn_minus = max(z_plus), max(z_minus)
result = max(dn_plus, dn_minus) * (n**0.5)
threshold = 1.094
if result > threshold:
return "Гипотеза экспоненциальности распределения отклоняется."
else:
return "Гипотеза экспоненциальности распределения не отклоняется."
Источник литературы для этого метода:
Spurrier J. D. On overview of tests of exponentiality //
Commun. Stat.-Theor. Meth. 1984. V. 13. P. 1635-1654.
