我正在尝试向正在编写的某些分析实用程序中添加简单的t分数可视化(在一段时间内对scipy的pdf概率密度函数进行绘图)。在此示例中,我将绘制学生的t分布以及给定问题集的关键t分数临界值。然而,据我所知,简单的可见光并没有正确地出现。

在此示例中,我有一个n=24数据集,并且试图对其进行可视化的alpha=0.05两尾检验(AKA统计显着性由分布的任一尾部表示为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()


python - 无法在Python中可视化T分布-LMLPHP

最佳答案

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/

10-11 07:24