numpy.random.standard_t

random.standard_t(df, size=None)

从标准学生t分布中抽取样本 df 自由度。

双曲分布的特例。AS df 变大,结果类似于标准正态分布。 (standard_normal

注解

新代码应该使用 standard_t A方法 default_rng() 请参阅 快速启动 .

参数
df浮点数或类似浮点数的数组

自由度必须大于0。

sizeint或int的元组,可选

输出形状。如果给定的形状是,例如, (m, n, k) 然后 m * n * k 取样。如果尺寸是 None (默认),如果 df 是标量。否则, np.array(df).size 取样。

返回
outndarray或scalar

从参数化标准学生t分布中提取样本。

参见

Generator.standard_t

应该用于新代码。

笔记

t分布的概率密度函数是

System Message: WARNING/2 (P(x,df)=\frac{\Gamma(\frac{df+1}{2})}{\sqrt{\pi-df})

latex exited with error [stdout] This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=latex) restricted \write18 enabled. entering extended mode (./math.tex LaTeX2e <2018-12-01> (/usr/share/texlive/texmf-dist/tex/latex/base/article.cls Document Class: article 2018/09/03 v1.4i Standard LaTeX document class (/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo)) (/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty For additional information on amsmath, use the `?' option. (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty)) (/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty)) (/usr/share/texlive/texmf-dist/tex/latex/anyfontsize/anyfontsize.sty) (/usr/share/texlive/texmf-dist/tex/latex/tools/bm.sty) (./math.aux) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd) (/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd)) Runaway argument? P(x,df)=\frac {\Gamma (\frac {df+1}{2})}{\sqrt {\pi -df}\end \ETC. ! File ended while scanning use of \split. <inserted text> \par <*> math.tex ! Emergency stop. <*> math.tex No pages of output. Transcript written on math.log.

t检验基于数据来自正态分布的假设。t检验提供了一种检验样本平均值(即根据数据计算的平均值)是否是真实平均值的良好估计的方法。

T分布的起源于1908年由威廉·戈塞特在都柏林吉尼斯啤酒厂工作时首次出版。由于专利问题,他不得不用笔名发表文章,所以他用了学生这个名字。

工具书类

1

Dalgaard,Peter,“R导论统计”,Springer,2002年。

2

维基百科,“学生t-分布”https://en.wikipedia.org/wiki/student's_t-分布

实例

摘自Dalgaard第83页 [1], 假设11名妇女的每日能量摄入量(单位:千焦(kj))为:

>>> intake = np.array([5260., 5470, 5640, 6180, 6390, 6515, 6805, 7515, \
...                    7515, 8230, 8770])

他们的能量摄入是否有系统地偏离推荐值7725千焦?

我们有10个自由度,那么样本平均值在推荐值的95%以内吗?

>>> s = np.random.standard_t(10, size=100000)
>>> np.mean(intake)
6753.636363636364
>>> intake.std(ddof=1)
1142.1232221373727

计算t统计量,将ddof参数设置为无偏值,使标准偏差中的除数为自由度n-1。

>>> t = (np.mean(intake)-7725)/(intake.std(ddof=1)/np.sqrt(len(intake)))
>>> import matplotlib.pyplot as plt
>>> h = plt.hist(s, bins=100, density=True)

对于单侧t检验,t统计量在分布中出现的距离有多远?

>>> np.sum(s<t) / float(len(s))
0.0090699999999999999  #random

所以p值约为0.009,也就是说零假设有99%的概率是真的。

../../../_images/numpy-random-standard_t-1.png