Подтвердить что ты не робот

Преобразование Z-балла (Z-значение, стандартная оценка) в p-значение для нормального распределения в Python

Как конвертировать Z-score из Z-распределение (стандартное нормальное распределение, распределение Гаусса) до p-value? Мне еще предстоит найти магическую функцию в Scipy stats module, но нужно быть там.

4b9b3361

Ответ 1

Мне нравится функция выживания (верхняя хвостовая вероятность) нормального распределения немного лучше, потому что имя функции более информативно:

p_values = scipy.stats.norm.sf(abs(z_scores)) #one-sided

p_values = scipy.stats.norm.sf(abs(z_scores))*2 #twosided

нормальное распределение "норма" является одним из около 90 распределений в scipy.stats

norm.sf также вызывает соответствующую функцию в scipy.special, как в примере getgenes

небольшое преимущество функции выживания, sf: числовая точность должна лучше для квантилей, близких к 1, чем использование cdf

Ответ 2

Я думаю, что кумулятивная функция распределения (cdf) предпочтительнее функции выжившего. Функция оставшегося в живых определяется как 1-cdf и может неправильно сообщать предположения, которые использует языковая модель для направленных процентилей. Кроме того, функция процентных точек (ppf) является обратной величиной cdf, что очень удобно.

>>> import scipy.stats as st
>>> st.norm.ppf(.95)
1.6448536269514722
>>> st.norm.cdf(1.64)
0.94949741652589625

Ответ 3

Ага! Я нашел это: scipy.special.ndtr! Это также похоже на scipy.stats.stats.zprob (это просто указатель на ndtr).

В частности, с учетом одномерного экземпляра numpy.array z_scores можно получить значения p как

p_values = 1 - scipy.special.ndtr(z_scores)

или, альтернативно,

p_values = scipy.special.ndtr(-z_scores)

Ответ 4

Из формулы:

import numpy as np
import scipy.special as scsp
def z2p(z):
    """From z-score return p-value."""
    return 0.5 * (1 + scsp.erf(z / np.sqrt(2)))

Ответ 5

p_value = scipy.stats.norm.pdf(abs(z_score_max)) #one-sided test 
p_value = scipy.stats.norm.pdf(abs(z_score_max))*2 # two - sided test

Функция плотности вероятности (pdf) в python выдает значения p-значений, которые взяты из таблицы z-показателей в книге статистики вступления /AP.