【问题标题】:Using bootstrapping random.choice使用引导 random.choice
【发布时间】:2016-12-05 20:32:51
【问题描述】:

我正在尝试使用自举对儿子 (np.random.choice) 进行 1000 次复制,以进行替换重采样,以便我可以计算每个复制的平均值。然后我会将这些平均值的标准差与标准进行比较。

但是我的引导部分不正确,如何解决?

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
from scipy import stats

df = pd.read_csv('http://www.math.uah.edu/stat/data/Pearson.txt',
                 delim_whitespace=True)
df.head()
y = df['Son'].values

Replications = np.random.choice(y, 1000, replace = True)
print("Replications: " , Replications)
print("")
Mean = np.mean(Replications)

print("Mean: " , Mean)

sem = stats.sem(y)
print ("The SEM : ", sem)

【问题讨论】:

  • 您是否正在寻找Replications = np.array([np.random.choice(df.Son, len(df), replace = True) for _ in range(10000)])
  • np.mean(Replications, axis=1)?
  • 感谢我一直在寻找的东西,我猜你是误加了 10000 个 0 吗?
  • 不客气!我添加了 cmets 作为答案。是的,我不小心添加了一个额外的零。刚拿出来。

标签: python numpy statistics-bootstrap


【解决方案1】:

您可以创建 1000 个长度为 len(df) 的复制,每个复制如下:

Replications = np.array([np.random.choice(df.Son, len(df), replace = True) for _ in range(1000)])
Mean = np.mean(Replications, axis=1)
print("Mean: " , Mean)

谢谢!

【讨论】:

    猜你喜欢
    • 2020-03-03
    • 2016-07-15
    • 2020-01-30
    • 1970-01-01
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多