2017-02-19 29 views
1

Я пытаюсь добавить простую визуализацию t-score в некоторые утилиты анализа, которые я пишу (построение функции плотности вероятности scipy через интервал). В этом примере я рисую распределение ученика t, а также критические отсечки t-score для заданного набора проблем. Тем не менее, простой вид просто не получается правильно, насколько я могу судить.Угрозы Визуализация T-распределения в Python

В этом примере у меня есть набор данных n=24, и я пытаюсь визуализировать двухсторонний тест alpha=0.05 (статистическая значимость AKA указана на 2,5% в любом хвосте дистрибутива). Я ожидал бы, что критический t-балл будет пересекать t-распределение при значении y (вероятность) 0,025, но сам t-распределение, по-видимому, масштабируется/сплющивается? на некоторой сумме.

Насколько я могу судить, распределение t просто не совпадает с тем, что я ожидаю от фактических вероятностей, но настройка достаточно проста, где я не могу сказать, где я ошибаюсь. Я несколько новичок в статистике, и мне интересно, не хватает ли здесь чего-то фундаментального?

## Basic T-Distribution 
import scipy.stats as st 
import matplotlib.pyplot as plt 
import numpy as np 

## Setup  
dof = 23  # Degrees of freedom 
alpha = 0.05 # Significence level 
ntails = 2  # Number of tails 

## Calculate critical t-score 
tcrit = abs(st.t.ppf(alpha/ntails, dof)) 
# +=2.068 

plt.figure() 
xs = np.linspace(-10,10,1000) 
plt.plot(xs, st.t.pdf(xs,dof), 'k', label="T-Distribution PDF") 

## Plot some vertical lines representing critical t-score cutoff 
critline = np.linspace(0,alpha/ntails) # y range for critical line, AKA probability from 0-p* 
xs_1 = len(critline) * [-tcrit]   # X ranges for plotting 
xs_2 = len(critline) * [tcrit] 
plt.plot(xs_1, critline, 'r', label="-t* for dof=23") 
plt.plot(xs_2, critline,'r', label="t* for dof=23") 
plt.legend() 

T-Vis

ответ

1

формата PDF является плотность. Ось Y не находится в единицах «вероятности», а «вероятности на единицу X». Оцените PDF в tcrit, чтобы получить соответствующее значение, соответствующее кривой.

Попробуйте построить вертикальные линии:

plt.vlines([-tcrit, tcrit], 0.0, st.t.pdf(tcrit), colors='r') 
+0

+1 для 'vlines', спасибо там и для explination. Я смущен тем, что здесь есть «единица X»? Разве X не является t-балл, который является более или менее стандартизированным показателем разницы? Как бы вы избавились от «на единицу X» здесь, чтобы визуализировать истинную вероятность на диаграмме? –

+0

Вы не избавитесь от него. Значения PDF по-прежнему являются плотностями, а не вероятностями. Интеграл PDF является функцией вероятностей, но это не то, что вы рисуете. «Alpha/2» - это * область * под кривой каждого из двух хвостов, а не * значение * PDF в этих точках. –

+0

Aah aah aah, который теперь имеет полный смысл. Спасибо за разъяснение! –