作者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/m.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