Numpy 使用norm.ppf和norm.cdf来计算正态分布的逆函数和累积函数

Numpy 使用norm.ppf和norm.cdf来计算正态分布的逆函数和累积函数

在统计学中,常常需要计算正态分布对应的概率密度函数和累积分布函数。Python中,可以使用Scipy库的stats子库中的norm类来计算正态分布相关函数。

  • norm.ppf :逆正态分布函数:给定概率,返回对应的z值;
  • norm.cdf :正态分布函数:给定z值,返回对应的概率。

阅读更多:Numpy 教程

norm.ppf()的使用方法

norm.ppf(q, loc=0, scale=1)

参数说明:
– q :概率;
– loc :均值,默认为0;
– scale :标准差,默认为1。

该函数返回给定概率对应的z值。

举例:

import numpy as np
from scipy.stats import norm

q = 0.025  # 给定概率
z = norm.ppf(q)  # 返回对应的z值
print(z)  # 输出-1.9599639845400545

# 如果给定概率为双尾检验,则需要乘以0.5,以计算单边置信区间对应的概率
p = 1 - 0.05 / 2  # 双尾检验的置信度
z = norm.ppf(p)
print(z)  # 输出1.959963984540054

norm.cdf()的使用方法

norm.cdf(x, loc=0, scale=1)

参数说明:
– x :z值;
– loc :均值,默认为0;
– scale :标准差,默认为1。

该函数返回给定z值对应的概率。

举例:

import numpy as np
from scipy.stats import norm

z = 1.96  # 给定z值
p = norm.cdf(z)  # 返回对应的概率
print(p)  # 输出0.9750021048517795

# 如果计算双尾置信区间,则需要分别计算左右两侧的概率
p = norm.cdf(z) - norm.cdf(-z)
print(p)  # 输出0.950004209703559

# 还可以使用norm类中的ppf方法来计算置信区间范围
p1 = 1 - 0.05 / 2
z1 = norm.ppf(p1)  # 返回对应的z值
interval = (-z1, z1)
print(interval)  # 输出(-1.9599639845400545, 1.9599639845400545)

总结

在Python的Scipy库中,可以使用norm.ppf和norm.cdf来计算正态分布的逆函数和累积函数。在计算统计学中的置信区间和假设检验等问题时,这些函数非常有用。在使用时需要注意参数的设置,特别是均值和标准差的默认取值。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程