作者jsb (jsb)
看板Fortran
标题Re: [问题] 如何用fortran去做bootstrap
时间Mon Apr 20 23:57:14 2009
如果要的是"不重复的 1-60 的乱数",就复杂得多。
除了随机取位置外,还要用到阵列内容互换。
1. 随机选位置。
2. 阵列第一个元素和随机位置的数字互换。
3. 除已经交换过的第一个元素外,其余任选位置。
4. 阵列第二个元素和随机位置的数字互换。
5. .
.
.
?. 阵列第 (n-3) 个元素和随机位置的数字互换。
你的问题里 n = 60。
不过我记得 bootstrapping 应该是可以重复选取,
只是要取很多很多次。你的题目里面只取了 10 次,
不知道够不够充分。
你的题目设计的目的如果只是要呈现 bootstrapping 的概念,
那 10 次可重复样本应该就够了。
不过那就表示你这个问题可能是个统计作业,
建议你下次还是仔细想想、查查指令再上来问问题。
如果你的题目设计原本就是不能重复选取,
或是是想讲求效率而且原样本很大的话,
用不重复的方法可以较快达到效果。
※ 引述《stanlin1118 (小铁)》之铭言:
: 如题
: 若我有个回归模式y=6+1.5x+e e~cauchy(0,1)
: 我要如何利用fortran去做bootstrap来估计beta0和beta1
: 过程大致是知道
: 但是对於随机抽取样本的位置不太清楚
: 例如从上述回归模式取出60个x後
: 令为X1(1)~X1(60)
: 重复抽10次
: 我的程式可以写成底下的形式
: do j=2,10
: do i=1,60
: Xj=X1( )
: ↑如何表示成X1的随机位置1~60阿?(重点是不懂这个)
: end do
: end do
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.217.211.5