• 利用t.ppf&t.interval分别计算T分布置信区间[实例]


    scipy.stats.t.interval用于计算t分布的置信区间,即给定置信水平时,计算对应的置信区间的下限和上限。

    scipy.stats.t.ppf用于计算t分布的百分位点,即给定百分位数(概率)时,该函数返回给定百分位数对应的t分布的值。//它的作用是根据给定的累积概率值,计算随机变量的值,使得该值以下的累积概率等于给定的概率。

     利用t.ppf&t.interval分别计算T分布置信区间[实例]

    1. import scipy.stats as stats
    2. import numpy as np
    3. # 指定概率值(例如,95% 置信水平对应的概率)
    4. alpha = 0.05
    5. # 指定样本数据
    6. data = np.array([34,56,39,71,84,92,44,67,98,49,55,73,50,62,75,44,88,53,61,25,36,66,77,35])
    7. # 计算样本均值和标准误差
    8. sample_mean = np.mean(data)
    9. sample_std = np.std(data, ddof=1) # 使用ddof=1进行自由度校正
    10. sample_size = len(data)
    11. standard_error = sample_std / np.sqrt(sample_size)
    12. # 计算T分布的置信区间的上下限
    13. t_critical = stats.t.ppf(1 - alpha / 2, df=sample_size - 1) # 自由度为样本大小减一
    14. confidence_interval_lower = sample_mean - t_critical * standard_error
    15. confidence_interval_upper = sample_mean + t_critical * standard_error
    16. # 输出T分布置信区间的上下限
    17. print("T分布置信区间的下限:", confidence_interval_lower)
    18. print("T分布置信区间的上限:", confidence_interval_upper)
    19. print("-------------------")
    20. # 计算t分布的置信区间
    21. t_confidence_interval = stats.t.interval(1 - alpha, df=sample_size - 1, loc=sample_mean, scale=sample_std / np.sqrt(sample_size))
    22. # 输出计算结果
    23. print("t分布的置信区间:", t_confidence_interval)
    24. # T分布置信区间的下限: 51.356996738889045
    25. # T分布置信区间的上限: 68.14300326111095
    26. # -------------------
    27. # t分布的置信区间: (51.356996738889045, 68.14300326111095)
    28. # [Finished in 5.1s]

    附录:多种方式进行T分布检验

    1. import numpy as np
    2. import scipy.stats as stats
    3. import matplotlib.pyplot as plt
    4. # 创建一个样本数据,假设它符合T分布
    5. np.random.seed(0)
    6. sample_data = np.random.standard_t(df=5, size=100)
    7. # 绘制直方图
    8. plt.hist(sample_data, bins=20, density=True, alpha=0.6, color='b', label='Histogram')
    9. # 绘制T分布的概率密度函数(PDF)曲线
    10. x = np.linspace(min(sample_data), max(sample_data), 100)
    11. pdf = stats.t.pdf(x, df=5)
    12. plt.plot(x, pdf, 'r-', lw=2, label='T-Distribution PDF')
    13. # 添加图例和标签
    14. plt.legend()
    15. plt.title('Histogram and PDF of Sample Data')
    16. plt.xlabel('Value')
    17. plt.ylabel('Probability Density')
    18. # 显示图形
    19. plt.show()
    20. # 绘制Q-Q图
    21. stats.probplot(sample_data, dist="t", sparams=(5,), plot=plt)
    22. plt.title('Q-Q Plot against T-Distribution')
    23. # 显示Q-Q图
    24. plt.show()
    25. # 进行正态性检验(Shapiro-Wilk检验)
    26. shapiro_test_statistic, shapiro_p_value = stats.shapiro(sample_data)
    27. print("Shapiro-Wilk检验统计量:", shapiro_test_statistic)
    28. print("Shapiro-Wilk检验p值:", shapiro_p_value)

  • 相关阅读:
    对象存储解决方案:高性能分布式对象存储系统MinIO
    java毕业设计电影推荐系统Mybatis+系统+数据库+调试部署
    工厂人员定位系统如何解决工厂管理难题?
    kafka的auto.offset.reset详解与测试
    嵌入式 Linux 入门 环境篇(三、开发板和 PC 的网络互通)
    Pycharm远程连接服务器不能debug问题
    Word控件Spire.Doc 【页面设置】教程(1):在C#/VB.NET:在 Word 文档中插入分页符
    datawhale - 基于术语词典干预的机器翻译挑战赛 (一)
    【python技术】akshare爬取A股最新业绩预告保存进excel的简单示例
    C语言实验十二 指针(二)
  • 原文地址:https://blog.csdn.net/book_dw5189/article/details/133531106