当前位置:网站首页>MCS:连续随机变量——Student’s t分布

MCS:连续随机变量——Student’s t分布

2022-06-23 03:56:00 今晚打佬虎

Student’s t

Student’s t分布也是一个很重要的分布在统计分析中,常用于检验变量均值的显著性。Student’s t分布也叫做t分布,与标准的正态分布类似,但是尾部可以向左右延申,取决于参数 k k k自由度。

t分布的期望和方差:

E ( t ) = 0 E(t) = 0 E(t)=0
V ( t ) = k k − 2 , k > 2 V(t) = \frac{k}{k - 2},k > 2 V(t)=k2kk>2

t分布性质:

  1. k > 30 k > 30 k>30时,t分布近似于标准的正态分布。
  2. t、chi-Square和标准正态分布之间的关系:
    t = z X 2 / k t = \frac{z}{\sqrt{\mathcal X^2 / k}} t=X2/kz

生成服从t分布的随机变量

  1. 生成一个标准的正态变量: z ∼ N ( 0 , 1 ) z \sim N(0, 1) zN(0,1)
  2. 生成一个自由度为k的Chi-Square变量: X k 2 \mathcal X_k^2 Xk2
  3. t = z / X k 2 / k t = z / \sqrt{\mathcal X_k^2 / k} t=z/Xk2/k
  4. Return t.

例:生成一个自由度为6的t变量:

  1. z = 0.71 z = 0.71 z=0.71
  2. X 6 2 = 6.29 \mathcal X_6^2 = 6.29 X62=6.29
  3. t = 0.71 / 6.29 / 6 = 0.693 t = 0.71 / \sqrt{6.29/6} = 0.693 t=0.71/6.29/6=0.693
  4. t = 0.693 t = 0.693 t=0.693
import numpy as np
import matplotlib.pyplot as plt
def generate_t_var(k=1):
    z = np.random.normal(0, 1)
    if k < 30:
        c = (np.random.normal(0, 1, size=(k))**2).sum()
        t = z / np.sqrt(c / k)
    else:
        z_ = np.random.normal(0, 1)
        c = int(k + z_ * np.sqrt(2*k) + 0.5)
        t = z / np.sqrt(c / k)
    return t

k = 1 、 10 、 30 、 50 k = 1、10、30、50 k=1103050

在这里插入图片描述

原网站

版权声明
本文为[今晚打佬虎]所创,转载请带上原文链接,感谢
https://wangjh.blog.csdn.net/article/details/125302445