我试图将一个简单的t-score可视化添加到我正在编写的一些分析实用程序中(在一段时间内绘制scipy' s pdf
概率密度函数)。在这个例子中,我绘制了学生的t分布,以及给定问题集的临界t分数截止。然而,就我所知,简单的看法并没有正确转出。
在这个例子中,我有一个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()
答案 0 :(得分:1)
PDF是密度。 Y轴不是以“概率”为单位,而是“每单位X的概率”。在tcrit
评估PDF以获得与曲线匹配的适当值。
尝试这样绘制垂直线:
plt.vlines([-tcrit, tcrit], 0.0, st.t.pdf(tcrit), colors='r')