我正在寻找一些引导程序。我有一个Excel工作表,其中有10列1111行数据,每行代表.0432等股票的收益。此外,每一列代表投资组合的大小。第一列代表总股数的第一十分位数(以小盘为中心的投资组合),最后一列代表总股数的最后十分位数(以大写为中心的投资组合)...
现在,每一列都代表一个原始样本,但首先: 正如您可能从引导程序中了解或可能不知道,该想法是使用您必须创建填充的数据,因此这就是为什么不讨论原始填充的原因。 考虑以下链接中的图片:https://newonlinecourses.science.psu.edu/stat555/sites/onlinecourses.science.psu.edu.stat555/files/cross_val/bootstrap_overview/index.png
因此,归结为一点,我们有10个原始样本。我们绘制一个子样本(完成而不替换),并将其命名为x1。您将这些数据放回并再次绘制,并且当您再次绘制时,需要进行替换。您将此子样本命名为x2。您会重复此过程很多次,在本例中为10,000次。
用更明显的话来说,这是10个原始样本中的每个样本
(又称10列)我希望抽取10,000个样本,样本数量为1,000。
最后,我希望找到一个投资组合的所有自举样本标准偏差的标准偏差。就是说....假设我们采用第1列...自举样本标准偏差将是与第1列的1,000个样本量的10,000个样本中的第一个随机样本的标准差... 。另一个自举样本的标准偏差将是与第1列的1,000的样本大小相乘的10,000的第二个随机样本的标准偏差。所以,我要的是一旦完成此过程并得到标准偏差总共10,000。
然后,我将对10列/投资组合中的每一个进行相同的处理。 (一旦到达这一点,我计划通过运行t检验来比较每个列/组合产生的值,以评估它们之间是否存在统计显着性)
以我的数据为例
大小1和大小2,正如我所说的,它们都有1111行数据(行对应于年份),如下所示:
year size 1 size 2
0 0.0353 0.0371
1 0.0061 0.0379
2 -0.0077 0.0125
3 -0.0336 -0.0256
4 0.0386 0.0240
// etc... up to 1111
例如size 1是用Python编写的data.Size1
到目前为止,我所拥有的是:
import numpy as np
import bootstrapped.bootstrap as bs
import bootstrapped.stats_functions as bs_stats
stdev = data.Size1.std()
originalpopulation1 = data.Size1
samples=originalpopulation1[:10000]
print(bs.bootstrap(samples, stat_func=bs_stats.std))
但是,我需要引导程序的替代方法,因为在出于技术原因在导入时它不会在任何情况下运行。
或者,我尝试过:
import numpy as np
sample_list = []
for i in range(1000):
rand_list = np.random.randint(0,10000, 10000)
sample_list.append(sum(rand_list)/1000)
sample_list = []
sample_list.stdev()
但是我认为这段代码并没有涉及所需的两个标准偏差,即每个子样本都有一个标准偏差,然后我也要求所有子样本之间有一个标准偏差,即我正在寻找标准偏差投资组合的所有自举样本标准偏差。
(此外,我想我将不得不为10列中的每一列创建一个唯一的代码,以便上面的最终代码基本上相同,除了10列中的每一列都具有唯一的标签。)