我有15个样本,进行回归分析的规模较小。
有人告诉我,使用自举技术增加样本数量将使我的数据更具统计意义。所以我尝试了。
我最初尝试的是通过python scikit-learn的“重新采样”功能使样本数量从15增加到1000。
http://scikit-learn.org/stable/modules/generated/sklearn.utils.resample.html
但是,当我看到“重新采样”功能的源代码时,似乎与引导无关。
所以,这是我的问题。
问题1:使用Bootstrapping技术将15个样本重新采样到1000个在统计上有意义吗?
问题2:如果是,如何在Python环境中实现?
谢谢。
最佳答案
Q1。虽然引导程序本身是一种广泛使用且在统计上有效的技术,但15个样本可能太小而无法执行任何有用的操作。
您可能会因特定领域的原因而感到15个样本代表您感兴趣的人群。在这种情况下,您可以使用引导程序。您可能要考虑的一件事是将引导程序与数据变化结合起来。即,每次对数据进行重新采样时,请向新数据中添加一些噪声,然后将其附加到原始数据集中。
这是学习引导程序技术及其变体的重要资源:
http://www.stat.cmu.edu/~cshalizi/402/lectures/08-bootstrap/lecture-08.pdf
Q2。借助sklearn功能,您处在正确的轨道上。正如在
文档中,重采样功能实现了引导程序的第一步。
基本上,您需要做的是运行一个循环,该循环对原始数据调用resample函数,并将其附加到新的DataFrame上,直到新的DataFrame的大小为1000。注意:新的DataFrame还应该包含原始数据。
重采样功能将返回随机选择的数据子集。随机子集中的观察次数等于n_samples的值。例如,如果设置n_samples = 10,则replace函数将返回10个数据点。如果您设置n_samples = 15,则重采样将每次返回整个数据集。
您需要考虑的另一个参数是replace。如果replace为True,则可以在replace返回的子集中重复原始数据中的数据点。如果replace为False,则原始数据中的每个数据点只能在子集中出现一次。
这些参数的选择将取决于您拥有的数据,但是一种合理的方法可能是将n_samples设置为