作者Grave (极缓板)
看板R_Language
标题[问题] 迭代模拟,要重新生成
时间Wed Dec 2 18:48:31 2020
大家好,附图为我的程式架构
https://i.imgur.com/LW6h95M.jpg
大致上是:
写一个function
里面是对模型配适的模拟与迭代
经由给定的起始值会慢慢收歛至模型的真值
收歛条件为後项减前项<0.01或迭代到第五十次
则此次的模拟结果就会存到下面的avebeta矩阵
重复200次取平均
以上内容
如果想改成:
收歛条件为後项减前项<0.01
若迭代超过50次仍为收敛
则该次取样的模拟值不存入avebeta矩阵内
程式自己重新生成资料去跑simulation这个function
程式码该怎麽改…
请教各位前辈与高手了
谢谢大家!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.74.9.63 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1606906113.A.1CC.html
1F:→ andrew43: 看不懂「己重新生成资料去跑simulation这个function」 12/02 19:13
2F:→ andrew43: 如果你只是想把求解和重覆200次合成一个function,最快 12/03 01:06
3F:→ andrew43: 的方法就是都写死在同一个function里即可。 12/03 01:07
4F:推 rebe212296: 为何已经用apply了还要用for 12/03 13:00
5F:推 rebe212296: break改成continue或next 12/03 13:03
6F:推 rebe212296: ifelse再多一个else 12/03 13:05
7F:推 rebe212296: 先把你真正要的写例子出来,再case by case 12/03 13:06
8F:推 rebe212296: 小於0.01太大,其实应该小於1e-6程式才会判断前项值 12/03 13:10
9F:→ rebe212296: 等於後项值 12/03 13:10
10F:推 rebe212296: 要写<=1e-6 12/03 13:11
11F:推 rebe212296: 版上有很多模拟的解答可以参考 12/03 13:22
12F:→ andrew43: 我猜原po的意思是要改成「若达模拟次数上限但差值不达标 12/03 16:35
13F:→ andrew43: 则自动重新做一次」。可参考以下的例子当范本去改 12/03 16:36
15F:推 rebe212296: 感谢a大 12/03 17:34