2015-03-30 2 views
3

Использование функции ppf от scipy.stat.norm, я получаю результат с одним хвостом, например, ppf(.95) выдает 1.644..., а не 1.96... должно получиться распределение с двумя хвостами.Scipy - функция двух хвостов ppf для значения z?

Есть ли функция в scipy, которая дает двухсторонний z-балл, основанный на p-значении?

ответ

5

Что вы ищете довольно просто

In [12]: def normz(val): 
    ....:  return scipy.stats.norm.ppf((1+val)/2) 
    ....: 
In [13]: normz(0.95) 
Out[13]: 1.959963984540054 

Это происходит из-за симметричный характер нормального распределения. 95% -ный доверительный интервал покрывает 95% нормальной кривой, и в результате вероятность получения значения вне этого 95% составляет менее 5% (из-за его формы). Тогда напомнить, что нормальная кривая симметрична, площадь каждого хвоста эквивалентно

enter image description here

так в вашем случае, площадь каждого хвоста 0.025.

В результате, для того, чтобы использовать scipy.stats.normal.ppf() с C, необходимо использовать симметричный характер нормального распределения и

enter image description here

, чтобы получить подходящую нижнюю/верхнюю вероятность хвоста 0.975 для использования с scipy.stats.norm.ppf(). Этот график может помочь вам визуализировать концепцию.

enter image description here

Смежные вопросы