利用python产生均值为0,方差为2的正态分布随机变量的样本数据25个。计算样本均值和方差,并与真实值进行比较。画出样本的直方图,并与正态分布的概率密度函数做比较。画出样本的分布图;
时间: 2024-10-12 12:11:18 浏览: 29
在Python中,我们可以使用numpy库生成均值为0,方差为2的正态分布(高斯分布)随机数,并使用matplotlib进行绘图。首先,我们需要安装这两个库,如果尚未安装,可以使用pip install numpy matplotlib。
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成25个随机样本
mean = 0
variance = 2
size = 25
random_samples = np.random.normal(mean, variance, size)
# 计算样本均值和方差
sample_mean = np.mean(random_samples)
sample_variance = np.var(random_samples)
print(f"样本均值: {sample_mean}")
print(f"样本方差: {sample_variance}")
# 比较与理论值
theoretical_mean = mean
theoretical_variance = variance
comparison = f"样本均值接近理论均值{theoretical_mean},样本方差接近理论方差{theoretical_variance}"
print(comparison)
# 绘制直方图
plt.hist(random_samples, bins='auto', density=True, alpha=0.6, label='Sample Data')
x = np.linspace(min(random_samples), max(random_samples), 100)
pdf = (1 / (np.sqrt(2 * np.pi) * np.sqrt(variance))) * np.exp(-(x - mean)**2 / (2 * variance))
plt.plot(x, pdf, 'r-', linewidth=2, label='Normal Distribution PDF')
plt.title('Sample Data and Normal Distribution Comparison')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.legend()
plt.show()
# 分布图
sns.distplot(random_samples, kde=False, rug=True, color='g', label='Empirical Data')
plt.plot(x, pdf, 'k:', label='Theoretical Gaussian')
plt.title('Empirical Distribution Plot')
plt.legend()
plt.show()
阅读全文