重复随机抽样;样本中值的抽样分布

2024-09-29 01:34:10 发布

您现在位置:Python中文网/ 问答频道 /正文

需要帮助重复随机抽样!考虑到人口规模,存在3个年龄组的10000人:2000人年龄在“1-10岁”,3000人在“11-20岁”,5000人在“21-30岁”。每个年龄组的月薪分布如下:年龄“1-10”:平均值=2000,方差=500^2年龄“11-20”:平均值=3000,方差=600^2年龄“21-30”:平均值=4000,方差=700^2

注:样本的年龄组构成必须与人群的年龄组构成相同或接近,即“1-10”年龄组占样本的20%或0.2x50=10。目的:对人群进行重复随机抽样,找出样本中位数月薪的抽样分布。说明:用400个重复采样结果进行测试,并可视化模拟的采样分布。在

我就是这么做的:

import pandas as pd
import matplotlib.pyplot as pet
import numpy as np
import seaborn as sns
sns.set()
population = 10000
repeat = 400
samplesize = 50
samplesize_list = [10, 15, 25]
label_list = ['1-10', '11-20', '21-30']
std_list = [500, 600, 700]
mean_list = [2000, 3000, 4000]
repeat_median = np.empty(repeat, dtype = float)
for j in range(Len(samplesize_list)):
    size = samplesize_list[j]
    for i in range(repeat):
        sample_data = np.random.normal(mean_list[i], std_list[i], size)
        repeat.median[I] = np.median(sample_data)
plt.subplot(len(samplesize_list), 1, j+1)
sns.distplot(repeat_median, colour = 'blue', label = label_list[j])
plt.legend(loc = "upper right")
plt.show()

我不知道我的代码哪里出错了,但我似乎无法得到我想要的结果


Tags: importasnppltlabellist平均值median
1条回答
网友
1楼 · 发布于 2024-09-29 01:34:10

你的代码中有很多错误。我纠正了它们,并给出了下面的工作代码。我没有显示定义数据的代码的初始行。我用注释#突出显示修改后的行。在

再加几点:长度是用len而不是Len计算的,指定颜色的正确拼写是color,而不是{}

import matplotlib.pyplot as plt # You wrote plt as pet

for j in range(len(samplesize_list)): # Replaced Len by len
    size = samplesize_list[j]
    for i in range(repeat):
        sample_data = np.random.normal(mean_list[j], std_list[j], size) # replaced j >i
        repeat_median[i] = np.median(sample_data) # Corrected
    plt.subplot(len(samplesize_list), 1, j+1)
    sns.distplot(repeat_median,  color='blue', label = label_list[j]) # Modified
    plt.legend(loc = "upper right")
plt.tight_layout() # Added for better adjustment of spacing

输出

enter image description here

相关问题 更多 >