повторная случайная выборка; выборочное распределение выборочной медианы - PullRequest
0 голосов
/ 15 сентября 2018

нужна помощь с повторной случайной выборкой!с учетом численности населения существует 10 000 человек в трех возрастных группах: 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. Цель: выполнить повторную случайную выборку 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()

не уверен, где я ошибся в своем коде, но я могу 'Кажется, я получаю желаемые результаты

1 Ответ

0 голосов
/ 15 сентября 2018

В вашем коде было много ошибок. Я исправил их и представил рабочий код ниже. Я не показываю начальные строки кода, где вы определяете данные. Я выделяю измененные строки комментарием #.

Еще пара точек: длина рассчитывается с использованием 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

Выход

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...