Wolfram mathematica как посчитать хи квадрат
Перейти к содержимому

Wolfram mathematica как посчитать хи квадрат

  • автор:

WolframAlpha для всех

Для проверки статистических гипотез используются таблицы вероятностных распределений, которые не всегда под рукой. Кроме того, чаще всего нам доступны учебные таблицы, которые имеют ограниченный размер, и в них не всегда можно найти все необходимые данные. К примеру, при проверке гипотезы относительно статистического распределения выборки скорее всего Вам потребуется таблица распределения Хи-квадрат. Если же такой таблицы у вас нет, можете использовать калькулятор распределения хи-квадрат, который предоставляет система Вольфрам Альфа по запросу

Калькулятор распределения хи-квадрат не единственный калькулятор статистических распределений в Вольфрам Альфа.

В статьях про Дискретные вероятностные распределения и Непрерывные вероятностные распределения из раздела Теория вероятностей приведен список доступных в Вольфрам Альфа непрерывных и дискретных вероятностных распределений. Следуя этому списку, можно получить доступ к некоторым основным калькуляторам статистических распределений, просто прибавляя к названию распределения ключевой запрос probabilities for the .

Однако, в настоящее время для описанных в данных статьях вероятностных распределений, в Вольфрам Альфа доступны только восемь калькуляторов — 3 для непрерывных распределений и 5 — для дискретных.

Для непрерывных вероятностных распределений, кроме калькулятора распределения хи-квадрат доступны также:

probabilities for the normal distribution — калькулятор нормального распределения;
probabilities for the student’s t distribution — калькулятор t-распределения Стьюдента;

Коллекция калькуляторов дискретных вероятностных распределений в системе Вольфрам Альфа более богатая:

probabilities for the negative binomial distribution — отрицательное нормальное распределение;
probabilities for the geometric distribution — геометрическое распределение;
probabilities for the hypergeometric distribution — гипергеометрическое распределение;
probabilities for the poisson distribution — распределение Пуассона;

Как видите, в этом списке фигурируют далеко не все вероятностные распределения, доступные в Вольфрам Альфа. Это означает, что соответствующие алгоритмы расчета еще не доступны в системе. Однако система ВА постоянно развивается, и, вполне возможно, что уже в ближайшее время этот список пополнится.

Использование вычислительных возможностей R для проверки гипотезы о равенстве средних

Возникла недавно потребность решить вроде бы классическую задачу мат. статистики.
Проводится испытание определенного push воздействия на группу людей. Необходимо оценить наличие эффекта. Конечно, можно делать это с помощью вероятностного подхода.

Но рассуждать с бизнесом о нулевых гипотезах и значении p-value совершенно бесполезно и контрпродуктивно.

Как можно по состоянию на февраль 2019 года сделать это максимально просто и быстро имея под руками ноутбук «средней руки»? Заметка реферативная, формул нет.

Постановка задачи

Есть две статистически идентичные по измеряемому показателю группы пользователей (A и B). На группу B оказывается воздействие. Приводит ли это воздействие к изменению среднего значения измеряемому показателю?

Наиболее популярный вариант — посчитать статистические критерии и сделать вывод. Мне нравится пример «Классические методы статистики: критерий хи-квадрат». При этом совершенно неважно как это выполняется, с помощью спец. программ, Excel, R или еще чего-либо.

Однако, в достоверности получаемых выводов можно очень сильно сомневаться по следующим причинам:

  1. В действительности мат. статистику мало кто понимает от начала и до конца. Всегда надо держать в голове условия при которых можно применять те или иные методы.
  2. Как правило, использование инструментов и трактовка получаемых результатов идет по приципу однократного вычисления и принятия «светофорного» решения. Чем меньше вопросов, тем лучше для всех участников процесса.

Критика p-value

Материалов масса, ссылки на наиболее эффектные из найденных:

  • Nature. Scientific method: Statistical errors. P values, the ‘gold standard’ of statistical validity, are not as reliable as many scientists assume., Regina Nuzzo. Nature 506, 150–152
  • Nature Methods. The fickle P value generates irreproducible results, Lewis G Halsey, Douglas Curran-Everett, Sarah L Vowler & Gordon B Drummond. Nature Methods volume 12, pages 179–185 (2015)
  • ELSEVIER. A Dirty Dozen: Twelve P-Value Misconceptions, Steven Goodman. Seminars in Hematology Volume 45, Issue 3, July 2008, Pages 135-140

Что можно сделать?

Сейчас у каждого есть компьютер под руками, поэтому метод Монте-Карло спасает ситуацию. От расчетов p-value переходим к расчету доверительных интервалов (confidence interval) для разницы среднего.

Книг и материалов множество, но в двух словах (resamapling & fitting) очень компактно изложено в докладе Jake Vanderplas — «Statistics for Hackers» — PyCon 2016. Сама презентация.

Одна из начальных работ по этой теме, включая предложения по графической визуализации, была написана хорошо известным в советское время популяризатором математики Мартином Гарднером: Confidence intervals rather than P values: estimation rather than hypothesis testing. M.J. Gardner and D.G. Altman, Br Med J (Clin Res Ed). 1986 Mar 15; 292(6522): 746–750.

Как использовать для этой задачи R?

Чтобы не делать все руками на нижнем уровне, посмотрим на текущее состояние экосистемы. Не так давно на R был переложен весьма удобный пакет dabestr : Data Analysis using Bootstrap-Coupled Estimation.

Принципы вычислений и анализа результатов, используемых в dabestr в формате шпаргалок описаны здесь:ESTIMATION STATISTICS BETA ANALYZE YOUR DATA WITH EFFECT SIZES.

Пример R Notebook для «пощупать»:

--- title: "A/B тестирование средствами bootstrap" output: html_notebook: self_contained: TRUE editor_options: chunk_output_type: inline ---
library(tidyverse) library(magrittr) library(tictoc) library(glue) library(dabestr)

Cимуляция

Создадим логнормальное распределение длительности операций.

my_rlnorm # N пользователей категории (A = Control) A_control % ; sd = "))> # N пользователей категории (B = Test) B_test % ; sd = "))>

Собираем данные в виде, необходимом для анализа средствами dabestr , и проводим анализ.

df % gather(key = "group", value = "value") tic("bootstrapping") two_group_unpaired % dabest(group, value, # The idx below passes "Control" as the control group, # and "Test" as the test group. The mean difference # will be computed as mean(Test) - mean(Control). idx = c("Control", "Test"), paired = FALSE, reps = 5000 ) toc()

Поглядим на результаты

two_group_unpaired plot(two_group_unpaired)

Результат в виде CI

DABEST (Data Analysis with Bootstrap Estimation) v0.2.0 ======================================================= Unpaired mean difference of Test (n=1000) minus Control (n=1000) 223 [95CI 209; 236] 5000 bootstrap resamples. All confidence intervals are bias-corrected and accelerated.

image

и картинки

вполне понятен и удобен для разговора с бизнесом. Всех расчетов было на «выпить чашечку кофе».

Язык Wolfram Language ™

Точечный процесс Пуассона является обобщением одномерного процесса Пуассона и применяется для многомерных случаев. Однородный точечный процесс Пуассона в геометрической области может быть рассмотрен с помощью функции RandomPoint .

Создадим полигон для географического объекта, например, страны.

Click for copyable input

region = DiscretizeGraphics[CountryData[«Mexico», «Polygon»], ImageSize -> Medium]

Определим функцию, которая делает выборку точечного процесса Пуассона с тремя аргументами: регион, интенсивность и количество реализаций.

Click for copyable input

ppp[region_, intensity_, n_] := Module[, nlist = RandomVariate[PoissonDistribution[intensity RegionMeasure[region]], n]; pts = RandomPoint[region, Total[nlist]]; nlist = Accumulate[nlist]; nlist = Transpose[]; Table[Take[pts, ind], ] ]

Сформируем реализацию точечного процесса Пуассона в данном полигоне с интенсивностью 0,5 и визуализируем результат с помощью функции Graphics .

Click for copyable input

intensity = 0.5; sample = ppp[region, intensity, 1];

Click for copyable input

Show[region, Graphics[]]

Сформируем 10^4 образцов на основе того же процесса. Общее количество точек в каждом образце/выборкe соответствует распределению Пуассона (см. PoissonDistribution ) со средним значением, равным произведению плотности и площади полигона.

Click for copyable input

samples = ppp[region, intensity, 10^4]; counts = Length /@ samples;

Click for copyable input

htd = PearsonChiSquareTest[counts, PoissonDistribution[intensity RegionMeasure[region]], «HypothesisTestData»];

htd[«TestDataTable»]

htd[«TestConclusion»]

Выборка точек в любом субрегионе полигона также распределена по принципу Пуассона. На рисунке ниже это проиллюстрировано с помощью красного круга, лежащего внутри полигона; посчитаем количество точек в данном субрегионе:

Click for copyable input

disk1 = Disk[<-107, 28>, 1.5]; Show[region, Graphics[]]

Click for copyable input

memberfun1 = RegionMember[disk1]; counts1 = Table[Total[Boole[memberfun1[pts]]], ];

Выполним тест хи-квадрат Пирсона с помощью функции PearsonChiSquareTest с количеством посчитанных точек в распределении Пуассона.

Click for copyable input

htd = PearsonChiSquareTest[counts1, PoissonDistribution[intensity RegionMeasure[disk1]], «HypothesisTestData»];

Язык Wolfram Language ™

Распределение Уишарта — это распределение ковариационной матрицы с выборкой, полученной из независимых многомерных случайных векторов. Оно является обобщением (хи-квадрат) распределения в многочисленных измерениях. Распределение формируется естественным образом в многомерном статистическом анализе, таком как регрессия, ковариантность и др.

Сгенерируйте случайную положительную определённую матрицу для использования в качестве параметров для распределения Уишарта.

Click for copyable input

\[CapitalSigma] = DiagonalMatrix[RandomReal[10, 5]];

Матрицы из распределения Уишарта симметричны и положительно определены. »

Click for copyable input

dist = WishartMatrixDistribution[30, \[CapitalSigma]]; mat = RandomVariate[dist];

Click for copyable input

SymmetricMatrixQ[mat] && PositiveDefiniteMatrixQ[mat]

Обратное распределение Уишарта — это распределение обратных матриц из распределения Уишарта. »

Click for copyable input

invdist = InverseWishartMatrixDistribution[30, Inverse[\[CapitalSigma]]]; invmat = RandomVariate[invdist];

Матрицы из обратного распределения Уишарта симметричны и положительно определены.

Click for copyable input

SymmetricMatrixQ[invmat] && PositiveDefiniteMatrixQ[invmat]

Сравните распределение собственных значений для матриц из распределения и обратного распределения Уишарта.

Click for copyable input

eigs = Flatten[ RandomVariate[ MatrixPropertyDistribution[Eigenvalues[x], x \[Distributed] dist], 10^4]]; inveigs = Flatten[RandomVariate[ MatrixPropertyDistribution[Eigenvalues[x]^-1, x \[Distributed] invdist], 10^4]];

код на языке Wolfram Language целиком

Click for copyable input

SmoothHistogram[, PlotLegends -> , Filling -> Axis, ImageSize -> Medium, PlotTheme -> «Scientific»]

Для любого ненулевого вектора и матрицы Уишарта со шкалой матрицы , статистические имеют (хи-квадрат) распределение.

Click for copyable input

y = #/Sqrt[#.\[CapitalSigma].#] &[RandomReal[1, 5]]; data = RandomVariate[ MatrixPropertyDistribution[y.w.y, w \[Distributed] WishartMatrixDistribution[30, \[CapitalSigma]]], 10^4];

Click for copyable input

Show[Histogram[data, Automatic, PDF, PlotTheme -> «Detailed»], Plot[PDF[ChiSquareDistribution[30], x], ], ImageSize -> Medium]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *