python bootstrap container宽度_(Python)使用scikits bootstrap估计回归参数置信区间

你能提供你的R码吗?我很想知道R是怎么处理的

这里的问题是,您只需将y传递给boot.ci,但每次它运行myu函数时,它都会使用整个原始的x(请注意,myu函数缺少x输入)。Bootstrapping将统计函数应用于重新采样的数据,因此,如果使用原始的x和y样本应用统计函数,将得到一个不合理的结果。实际上,这就是BCA方法根本不起作用的原因:它无法将统计函数应用于元素数量不相同的jackknife样本。

采样沿0轴(行)进行,因此如果要将多个1D数组传递给统计函数,可以使用多个列:xy = vstack((x,y)).T将起作用,然后使用从这些列获取数据的statf函数:def my_function(xysample):

return stats.linregress(xysample[:,0], xysample[:,1])[2]

或者,如果您想完全避免弄乱数据,可以定义一个对索引进行操作的函数,然后将索引传递给boot.ci:def my_function2(i):

return stats.linregress(x[i], y[i])[2]

boot.ci(np.arange(len(x)), statfunction=my_function2, alpha=0.05, n_samples=1000, method='pi')

注意,在这两种情况下,BCA都可以工作,所以最好使用method='BCA',除非您真的想使用百分比间隔;BCA总是更好的。

我知道这两种方法都不太理想。老实说,我从来没有必要将这样的多个数组传递给我的statfunction,大多数人很可能使用mean作为他们的statfunction。我认为这里最好的方法是允许传递相同大小[0]数组的列表,例如,boot.ci([x,y],...),然后同时对所有这些数组进行采样,并将它们作为单独的参数传递给statfunction。在这种情况下,您只需要一个my_function(x,y)。我会看看我能不能做到,但如果你能给我看你的R代码,那就太好了,因为我想看看是否有更好的方法来处理这个问题。

更新:

在最新版本的scikits.bootstrap(v0.3.1)中,可以提供数组的元组,并将其样本作为单独的参数传递给statfunction。此外,statfunction可以提供数组输出,并且将为输出中的每个点计算置信区间。因此,现在很容易做到这一点。以下将给出线性回归的每个输出的置信区间:cis = boot.ci( (x,y), statfunction=stats.linregress )

在这种情况下,cis[:,2]将是所需的置信区间。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值