无法在Python中可视化TDistribution

2024-06-25 06:02:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一个简单的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()

T-Vis


Tags: importalphaforplotasnppltlabel