产生均值为0,方差为2的正态分布随机变量的样本数据25个。计算样本均值和方差,并与真实值进行比较。画出样本的直方图,并与正态分布的概率密度函数做比较。画出样本的分布图;
时间: 2024-10-12 19:11:16 浏览: 50
首先,我们可以使用Python的`scipy.stats`库来创建正态分布并生成所需的25个随机样本。然后,我们会计算样本的平均值和方差,接着使用matplotlib进行绘图。
```python
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
# 创建正态分布
mu = 0
sigma = 2
rv = stats.norm(loc=mu, scale=sigma)
# 生成25个随机样本
sample = rv.rvs(size=25)
# 计算样本均值和方差
sample_mean = sample.mean()
sample_var = sample.var()
# 输出并比较真实值
print(f"Sample mean: {sample_mean:.2f}, true mean: {mu}")
print(f"Sample variance: {sample_var:.2f}, true variance: {sigma**2}")
# 绘制样本直方图
plt.hist(sample, bins='auto', density=True, alpha=0.6)
plt.xlabel('Value')
plt.ylabel('Frequency')
# 画出正态分布概率密度函数
x = np.linspace(rv.ppf(0.01), rv.ppf(0.99), 100) # 网格点
pdf = rv.pdf(x)
plt.plot(x, pdf, 'r-', linewidth=2, label='PDF of normal distribution')
plt.legend()
plt.title("Histogram and PDF of Sample Data")
plt.show()
阅读全文