我正在尝试向我正在编写的一些分析实用程序添加一个简单的 t 分数可视化(绘制 scipy 的 pdf
概率密度函数在一个区间内)。在此示例中,我绘制了学生 t 分布,以及给定问题集的关键 t 分数截止值。但是,据我所知,简单的 vis 并没有正确显示。
在这个例子中,我有一个 n=24
数据集,我正在尝试可视化它的 alpha=0.05
双尾测试(也就是统计显着性2.5% 在分布的任一尾部)。我希望临界 t 分数在 y(概率)值为 0.025 时与 t 分布相交,但 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()
最佳答案
PDF 是一个密度。 Y 轴不是以“概率”为单位,而是以“每单位 X 的概率”为单位。在 tcrit
处评估 PDF 以获得与曲线匹配的适当值。
试试这个来绘制垂直线:
plt.vlines([-tcrit, tcrit], 0.0, st.t.pdf(tcrit), colors='r')
关于python - 在 Python 中可视化 T 分布时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42331555/