02 基本分布(下)-t分布和f分布

接着上一次的卡方之后 ,我们来讲解t分布

1 t分布

        设随机变量X与Y相互独立,且X服从标准正态分布N(0,1), Y服从自由度为n的卡方分布,则随机变量

​​​​​​​

的分布密度是 式1

 这种分布称为自由度为n的t分布,记作T~t(n).

证明过程我们不需要看 太过于繁琐 没有必要

我们直接记住结论就可以,之后我们会用到代码来推导

由式1不难看出,t分布的密度函数是偶函数,因此其密度曲线关于y轴对称,形状类似于正态分布,而且我们还可以证明式2 

故当n很大时,t分布近似于正态分布N(0,1),但对于小的n,t分布与N(O,l)相差很大. 图1.4画出了n = 1,10, ∞时t分布的密度函数图形.

 

直接根据如上的函数写出的t分布的代码:

def gamma_function(n):
    cal = 1
    for i in range(2, n):
        cal *= i
    return cal
def student_t(x, freedom, n):

    # divide [x.min(), x.max()] by n
    x = np.linspace(x.min(), x.max(), n)

    c = gamma_function((freedom + 1) // 2) \
        / np.sqrt(freedom * np.pi) * gamma_function(freedom // 2)
    y = c * (1 + x**2 / freedom) ** (-((freedom + 1) / 2))

    return x, y, np.mean(y), np.std(y)
for freedom in [1, 2, 5]:

    x = np.arange(-10, 10) # define range of x
    x, y, _, _ = student_t(x, freedom=freedom, n=10000)
    plt.plot(x, y, label=r'$v=%d$' % (freedom))
plt.legend()
plt.show()

 

 从原理来推导t分布

其中X服从正态分布

Y服从自由度为n的卡方分布

先求Y的数据

y=0
for i in range(5):
    x=np.random.standard_normal(size=10000)
    y=y+x*x
x=np.random.standard_normal(size=10000)
t=x/(np.sqrt(y/5))
plt.figure(figsize=(5,2),dpi=100)
plt.hist(t,1000)
plt.show()

 

2 F分布

分布密度是

         这个函数虽然看上去有点难,其实确实很难,但不要记啦 ,记也记不住,毕竟现在我连正态分布表达式都记不住

        

 对于不同的自由度(n1,n2)及不同的数a(0<a<1) ,给出了满足等式

 的上侧分位数F_a(n_1,n_2)

记住以下公式 可以和正态分布的

 可以和正态分布的​​​​​​​

 形成对照记忆

 


版权声明:本文为fuxun222原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。