高斯分布样本均值与标准差乘积的分布探究
实现方案与代码
以下是用Python完成需求的完整代码,依赖numpy和matplotlib库:
import numpy as np import matplotlib.pyplot as plt # 1. 生成含1000个个体的高斯分布数据集x np.random.seed(42) # 设置随机种子保证结果可复现 x = np.random.normal(loc=0, scale=1, size=1000) # 均值0、标准差1的高斯分布,可按需调整参数 # 2. 有放回抽取50个包含5个个体的随机样本 sample_size = 5 num_samples = 50 samples = np.random.choice(x, size=(num_samples, sample_size), replace=True) # 3. 计算每个样本的均值和标准差 sample_means = np.mean(samples, axis=1) sample_stds = np.std(samples, axis=1, ddof=1) # ddof=1计算无偏样本标准差(除以n-1) # 4. 创建交互变量y:均值与标准差的乘积 y = sample_means * sample_stds # 5. 绘制y的分布 plt.figure(figsize=(8, 6)) plt.hist(y, bins=12, edgecolor='black', alpha=0.7) plt.title('Distribution of Interaction Variable y') plt.xlabel('y (Mean * Standard Deviation)') plt.ylabel('Frequency') plt.grid(axis='y', linestyle='--', alpha=0.7) plt.show()
关键说明
- 随机种子
np.random.seed(42)用于固定随机结果,方便重复验证,可按需移除或修改。 - 高斯分布的
loc(均值)和scale(标准差)可根据你的实际数据特征调整。 - 若需计算总体标准差,可去掉
np.std中的ddof=1参数。 - 直方图的
bins数量可根据y的分布密度调整,让分布特征更直观。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

