根据@agstudy 编辑此帖子以进行简化
我正在尝试开发一个使用随机均匀分布来模拟聚合物的模型。
该模型有 2 个状态
状态 1(如果在状态 2 中,状态 1 的概率为 0.003):增长概率,A = .01 收缩概率,B = .0025
状态 2(如果在状态 1 中,状态 2 的概率为 0.0003):增长概率,A = .01 收缩概率,E = .05
模拟从状态 1 开始
在状态 1 中,从 data.frame1 中采样随机数,如果 # < .0025 在 data.frame2 中输入 -1,如果 # < .01 在 data.frame2 中输入 +1,如果在 data.frame2 中都没有输入 0。继续直到达到 # < .0003(进入状态 1 的概率)
如果 # < .0003 被采样,则在 data.frame2 中输入 -1 并切换到状态 2。继续采样随机数,而在状态 2 如果 # < .003 则在 data.frame2 中输入 +1 并切换到状态 1 并继续如上所示。如果在状态 2 中 # >= .003,并且如果 # < .05 在 data.frame2 中输入 -1,否则在 data.frame2 中输入 0
我希望这可以解决@agstudy 的问题,但它有可能不会……抱歉,如果是这样的话。
这是一个在 excel 中生成的示例,说明小集合的外观
第一列来自data.frame1,输入列是data.frame2,出于解释目的,我包括了状态和长度列。
rnumbers state input length
0 1 0 0 # initialized state
0.009413895 1 1 1
0.052959306 1 1 2
0.002453354 1 -1 1
0.000290324 2 -1 0
0.093312954 2 0 0
0.077210941 2 0 0
0.04924944 2 -1 -1
0.010590107 2 -1 -2
0.03308292 2 -1 -3
0.037239807 2 -1 -4
0.007889393 2 -1 -5
0.026476751 2 -1 -6
0.000454509 1 1 -5
0.009820683 1 1 -4
0.019836999 1 1 -3
0.009380381 1 1 -2
0.083149383 1 1 -1
0.022212547 1 1 0
0.051917035 1 1 1
0.05032031 1 1 2
0.03956718 1 1 3
0.032664445 1 1 4
0.004352291 1 1 5
0.08902418 1 1 6
0.095643962 1 1 7