绘制不存在均值的cauchy分布的密度函数与分布函数图代码,并比较与正态分布的差异
时间: 2023-12-14 18:37:56 浏览: 108
以下是绘制不存在均值的Cauchy分布的密度函数与分布函数图的Python代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义不存在均值的Cauchy分布的密度函数
def cauchy(x, x0, gamma):
return 1 / (np.pi * gamma * (1 + ((x - x0) / gamma)**2))
# 定义不存在均值的Cauchy分布的分布函数
def cauchy_cdf(x, x0, gamma):
return 0.5 + (1 / np.pi) * np.arctan((x - x0) / gamma)
# 设定参数
x0 = 0 # 中位数
gamma = 1 # 尺度参数
# 绘制密度函数图
x = np.linspace(-10, 10, 1000)
y = cauchy(x, x0, gamma)
plt.plot(x, y)
plt.title("Cauchy Distribution Density Function")
plt.xlabel("x")
plt.ylabel("p(x)")
plt.show()
# 绘制分布函数图
y_cdf = cauchy_cdf(x, x0, gamma)
plt.plot(x, y_cdf)
plt.title("Cauchy Distribution CDF")
plt.xlabel("x")
plt.ylabel("F(x)")
plt.show()
```
运行代码后,会出现两幅图像,第一幅图像为不存在均值的Cauchy分布的密度函数图,第二幅图像为不存在均值的Cauchy分布的分布函数图。
为了比较Cauchy分布与正态分布的差异,我们可以将Cauchy分布与正态分布的密度函数在同一张图上绘制出来。以下是绘制Cauchy分布与正态分布密度函数对比图的Python代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义不存在均值的Cauchy分布的密度函数
def cauchy(x, x0, gamma):
return 1 / (np.pi * gamma * (1 + ((x - x0) / gamma)**2))
# 定义正态分布的密度函数
def normal(x, mu, sigma):
return 1 / (sigma * np.sqrt(2*np.pi)) * np.exp(-0.5 * ((x - mu) / sigma)**2)
# 设定参数
x0 = 0 # 中位数
gamma = 1 # 尺度参数
mu = 0 # 均值
sigma = 1 # 标准差
# 绘制密度函数图
x = np.linspace(-10, 10, 1000)
y_cauchy = cauchy(x, x0, gamma)
y_normal = normal(x, mu, sigma)
plt.plot(x, y_cauchy, label="Cauchy Distribution")
plt.plot(x, y_normal, label="Normal Distribution")
plt.title("Comparison of Cauchy and Normal Distributions")
plt.xlabel("x")
plt.ylabel("p(x)")
plt.legend()
plt.show()
```
运行代码后,会出现一幅图像,其中蓝色线为不存在均值的Cauchy分布的密度函数,橙色线为标准正态分布的密度函数。可以看出,Cauchy分布的密度函数的尾部比正态分布更长,同时中心附近的概率密度比正态分布更小。这是因为Cauchy分布的尾部是由于无限多个方差为1的正态分布相加所得到的。因此,当样本量较小或者存在极端值时,使用不存在均值的Cauchy分布进行建模可能更加合适。
阅读全文