【问题标题】:repeated random sampling; sampling distribution of sample median重复随机抽样;样本中位数的抽样分布
【发布时间】:2018-09-15 23:43:13
【问题描述】:

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

注意:样本的年龄组构成必须与人口的年龄组构成相同或接近,即“1-10 岁”组占样本的 20% 或 0.2x50 = 10。目的:执行重复随机从总体中抽样 50 人,并找到样本中位数月薪的抽样分布。说明:用 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()

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

【问题讨论】:

    标签: python matplotlib seaborn


    【解决方案1】:

    您的代码中有很多错误。我纠正了它们并在下面提供了工作代码。我没有显示定义数据的代码的初始行。我通过评论 # 突出显示修改后的行。

    还有几点:长度是使用len 而不是Len 计算的,指定颜色的正确拼写是color 而不是colour

    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
    

    输出

    【讨论】:

    • 嗨!为什么你在 sample_data = np.random.normal(mean_list[j], std_list[j], size) 的代码中使用 'j' 代替 'I' ?
    • 因为您的列表只有三个元素。那是正确的索引。仔细看代码你就明白了
    猜你喜欢
    • 2019-02-20
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    相关资源
    最近更新 更多