Расчет процентиля нормального распределения

9

Смотрите эту страницу Википедии:

http://en.wikipedia.org/wiki/Binomial_proportion_confidence_interval#Agresti-Coull_Interval

Чтобы получить интервал Agresti-Coull, нужно вычислить процентиль нормального распределения, называемого Z . Как рассчитать процентиль? Есть ли готовая функция, которая делает это в Wolfram Mathematica и / или Python / NumPy / SciPy?

Рам Рахум
источник
1
Интегральное выражение в "нормальном cdf, которое я получил именно из Wiki", к сожалению, не учитывается в . Не существует известной точной формулы для нормального cdf или его обратного, использующего конечное число членов, включающих стандартные функции ( т. Д.), Но как нормальный cdf, так и обратный к нему были изучены много и приблизительно формулы для обоих запрограммированы во многих калькуляторах, электронных таблицах, не говоря уже о статистических пакетах. Я не знаком с R, но я был бы изумлен, если бы в нем уже не было встроенного. exp,log,sincos1/πехр,журнал,грехсоз
Дилип Сарвейт
@DilipSarwate, это исправлено! Я делаю это, используя обратное преобразование, также «не позволяющее» использовать слишком много встроенного. Я полагаю, что это ради обучения.
user1061210
1
@Dilip: Мало того, что нет никакой известной точной формулы, еще лучше, известно, что такая формула не может существовать!
кардинал
1
Метод Бокса-Мюллера генерирует выборки из совместного распределения независимых стандартных нормальных случайных величин. Таким образом, гистограммы сгенерированных значений будут напоминать стандартные нормальные распределения. Но метод Бокса-Мюллера не является методом для вычисления значений за исключением случая, когда «я сгенерировал 10 4 стандартных нормальных выборок, из которых 8401 имеет значение 1 или меньше, и поэтому Φ ( 1 ) 0.8401 , и Φ - 1 ( 0,8401 ) 1 .Φ(Икс)10484011Φ(1)0,8401Φ-1(0,8401)1
Дилип Сарвейт
1
Я просто выбрал в качестве примера чисел, которые вы можете ожидать. Φ ( 1 ) = 0.8413 ... и поэтому , если вы генерировать 10 4 образцов стандартного нормального распределения, следует ожидать ближе к 8413 из 10000 образцов , чтобы иметь значение 1 . Вы правильно внедряете метод Бокса-Мюллера, но не понимаете полученных результатов и не связываете их с cdf и т. Д.8401Φ(1)знак равно0,8413...1048413100001
Dilip Sarwate

Ответы:

3

Для Mathematica $VersionNumber > 5 вы можете использовать

Quantile[NormalDistribution[μ, σ], 100 q]

для 3-го qпроцентиля.

В противном случае вы должны сначала загрузить соответствующий пакет статистики.

JM не статистика
источник
(У меня версия 7.) У меня нет проблем с загрузкой пакета Статистика. Но как там называется функция? Потому что у меня сложилось впечатление, что эта Quantileстрока будет делать вычисления вручную, а не по формуле.
Рам Рахум
Оцените его с символическими параметрами (т.е. не присваивают значения mu, sigmaи q); Вы должны получить выражение, включающее функцию обратной ошибки.
JM не статистика
16

Страница Джона Кука, « Распределения в Scipy» , является хорошим справочным материалом для такого рода вещей:

In [15]: import scipy.stats

In [16]: scipy.stats.norm.ppf(0.975)
Out[16]: 1.959963984540054
АРС
источник
4

Ну, вы не спрашивали о R, но в R вы делаете это с помощью? Qnorm

(Это на самом деле квантиль, а не процентиль, или я так считаю)

> qnorm(.5)
[1] 0
> qnorm(.95)
[1] 1.644854
Таль Галили
источник
1
Квантиль против процентиля (это просто вопрос терминологии), j.mp/dsYz9z .
ЧЛ
1
В то время как мы находимся, в R-скорректированных Уолд-КИ (например, Agresti-Coull) доступны в PropCIsпакете. Метод Уилсона используется по умолчанию Hmisc::binconf(как предложено Агрести и Куллом).
ЧЛ
0

Вы можете использовать обратную функцию erf , которая доступна, например, в MatLab и Mathematica.

Для нормального CDF, начиная с

Yзнак равноΦ(Икс)знак равно12[1+приусадебный участок(Икс2)]

Мы получили

Иксзнак равно2 приусадебный участок-1(2Y-1)

Для нормального журнала CDF, начиная с

Yзнак равноFИкс(Икс;μ,σ)знак равно12ERFC(-журналИкс-μσ2)

Мы получили

-журнал(Икс)знак равноμ+σ2 ERFC-1(2Y)
Жан-Виктор Кот
источник
2
не больше ли это комментарий, чем ответ?
Макрос
Моя идея заключалась в том, что если у вас есть инверсии для функций erf и erfc, то проблема решена. MatLab, например, имеет такие предварительно запрограммированные функции.
Жан-Виктор Кот
@ Jean-VictorCôté Пожалуйста, развивайте свои идеи в своем ответе. В противном случае это просто выглядит как комментарий, как предложено выше.
ЧЛ
журнал(Икс)Икс