为何crq包对同一数据集多次运行会产生系数以外的不同结果?
为何crq包对同一数据集多次运行会产生系数以外的不同结果?
嗨,这个问题其实很好解释,核心原因出在你使用的**自助法(Bootstrap)**上!
看你的代码,在调用summary.crq时指定了se="boot"参数,这意味着程序会通过自助抽样的方式来计算标准误和置信区间。自助法的核心逻辑是:反复从你的原始数据集中有放回地抽取新的样本,用这些样本重新拟合模型,最后基于这些重复拟合的结果,估算统计量的波动情况(比如标准误)和置信区间。
虽然你一开始用set.seed(1245)固定了数据集的生成,但crq的自助抽样环节默认不会继承这个全局随机种子——每次运行时,生成的自助样本都是随机的,所以依赖于这些样本计算出的标准误、置信上下限自然会出现差异。不过你会发现系数的点估计(也就是结果里的Value列)是固定不变的,因为这部分是基于你固定种子生成的原始数据集计算的,和自助抽样过程无关。
想要每次运行得到完全一致的自助结果也很简单,只需要在调用summary.crq时,通过boot.args参数给自助过程指定一个固定的种子即可,比如:
Model <- summary.crq(w1, taus=0.5, alpha=0.05, se="boot", boot.args = list(seed=1245))
这样每次运行时,自助抽样都会使用同一个种子生成完全相同的样本,标准误、置信区间这些结果也就完全一致了。
备注:内容来源于stack exchange,提问作者UNI39
相关产品推荐
相关产品推荐

