RstudioでSIRモデル描画
免疫を獲得しないで回復する率を0と置いた場合は以下のようになる。
この変数tにおける上記常微分方程式を、ケルマックマッケンドリックのS-I-Rモデルと呼ぶ。
この微分方程式に関して架空の数値を代入していったものをRのパッケージのdeSolveを使って解いていく。
deSolveの読み込み
Rを立ち上げたらlibrary(deSolve)と打ち込んで読み込みを行う。
> library(deSolve)
deSolveのライブラリ読み込みを行うと“ode”というのが使えるようになり結果が以下のように出てくる。
time | S | I | R |
---|---|---|---|
1 |
0.998537432 | 0.000213768 | 0.001248782 |
2 |
0.998307644 |
0.000248954 |
0.001478935 |
3 |
0.998040915 |
0.0002897444 |
0.001746150 |
… |
… |
… |
… |
120 |
0.707915532 |
5.38E-07 |
0.345215539 |
> out20201215_data <- as.data.frame(out20201215_data)
> out20201215_data <- as.data.frame(out20201215_data)
> out20201215_data
X time S I R
1 1 1 0.9985374 2.137680e-04 0.001248782
2 2 2 0.9983076 2.489543e-04 0.001478935
3 3 3 0.9980409 2.897444e-04 0.001746150
4 4 4 0.9977289 3.373812e-04 0.002058874
5 5 5 0.9973676 3.924392e-04 0.002421057
6 6 6 0.9969472 4.563538e-04 0.002842595
7 7 7 0.9964587 5.304446e-04 0.003332726
8 8 8 0.9958914 6.162268e-04 0.003902174
9 9 9 0.9952331 7.154392e-04 0.004563457
10 10 10 0.9944695 8.300421e-04 0.005330965
11 11 11 0.9935848 9.622168e-04 0.006221069
12 12 12 0.9925606 1.114375e-03 0.007252348
13 13 13 0.9913763 1.289193e-03 0.008446210
14 14 14 0.9900089 1.489545e-03 0.009826479
15 15 15 0.9884325 1.718519e-03 0.011420116
16 16 16 0.9866183 1.979350e-03 0.013257249
17 17 17 0.9845351 2.275353e-03 0.015370954
18 18 18 0.9821485 2.609816e-03 0.017797934
19 19 19 0.9794217 2.985848e-03 0.020578181
20 20 20 0.9763158 3.406173e-03 0.023754429
21 21 21 0.9727904 3.872910e-03 0.027371797
22 22 22 0.9688050 4.387129e-03 0.031477200
23 23 23 0.9643195 4.948727e-03 0.036117854
24 24 24 0.9592968 5.555864e-03 0.041340133
25 25 25 0.9537038 6.204643e-03 0.047187566
26 26 26 0.9475145 6.888697e-03 0.053698621
27 27 27 0.9407114 7.599011e-03 0.060904474
28 28 28 0.9332897 8.323452e-03 0.068825194
29 29 29 0.9252584 9.047157e-03 0.077467760
30 30 30 0.9166427 9.752682e-03 0.086823012
31 31 31 0.9074855 1.042062e-02 0.096863152
32 32 32 0.8978472 1.103062e-02 0.107540784
33 33 33 0.8878053 1.156248e-02 0.118788158
34 34 34 0.8774524 1.199751e-02 0.130517914
35 35 35 0.8668925 1.231997e-02 0.142625639
36 36 36 0.8562371 1.251817e-02 0.154993199
37 37 37 0.8456007 1.258541e-02 0.167493200
38 38 38 0.8350955 1.252051e-02 0.179994286
39 39 39 0.8248270 1.232778e-02 0.192366691
40 40 40 0.8148898 1.201651e-02 0.204487428
41 41 41 0.8053647 1.160016e-02 0.216244986
42 42 42 0.7963171 1.109517e-02 0.227542705
43 43 43 0.7877957 1.051977e-02 0.238301437
44 44 44 0.7798333 9.892693e-03 0.248460088
45 45 45 0.7724472 9.232227e-03 0.257976604
46 46 46 0.7656413 8.555248e-03 0.266826516
47 47 47 0.7594082 7.876662e-03 0.275000895
48 48 48 0.7537311 7.209074e-03 0.282504608
49 49 49 0.7485863 6.562659e-03 0.289353864
50 50 50 0.7439446 5.945208e-03 0.295573802
51 51 51 0.7397736 5.362305e-03 0.301196194
52 52 52 0.7360389 4.817583e-03 0.306257375
53 53 53 0.7327055 4.313017e-03 0.310796441
54 54 54 0.7297387 3.849214e-03 0.314853794
55 55 55 0.7271047 3.425736e-03 0.318469804
56 56 56 0.7247714 3.041332e-03 0.321684002
57 57 57 0.7227085 2.694171e-03 0.324534418
58 58 58 0.7208876 2.382036e-03 0.327057028
59 59 59 0.7192830 2.102481e-03 0.329285480
60 60 60 0.7178706 1.852955e-03 0.331250929
61 61 61 0.7166291 1.630893e-03 0.332981973
62 62 62 0.7155387 1.433781e-03 0.334504685
63 63 63 0.7145819 1.259211e-03 0.335842680
64 64 64 0.7137431 1.104909e-03 0.337017245
65 65 65 0.7130082 9.687588e-04 0.338047455
66 66 66 0.7123646 8.488052e-04 0.338950395
67 67 67 0.7118015 7.432590e-04 0.339741294
68 68 68 0.7113088 6.504921e-04 0.340433707
69 69 69 0.7108780 5.690422e-04 0.341039562
70 70 70 0.7105014 4.975925e-04 0.341569436
71 71 71 0.7101723 4.349615e-04 0.342032699
72 72 72 0.7098848 3.800972e-04 0.342437590
73 73 73 0.7096337 3.320647e-04 0.342791359
74 74 74 0.7094145 2.900344e-04 0.343100386
75 75 75 0.7092230 2.532721e-04 0.343370272
76 76 76 0.7090559 2.211301e-04 0.343605928
77 77 77 0.7089101 1.930372e-04 0.343811663
78 78 78 0.7087828 1.684904e-04 0.343991248
79 79 79 0.7086717 1.470475e-04 0.344147987
80 80 80 0.7085747 1.283204e-04 0.344284772
81 81 81 0.7084902 1.119681e-04 0.344404132
82 82 82 0.7084164 9.769196e-05 0.344508277
83 83 83 0.7083520 8.523020e-05 0.344599140
84 84 84 0.7082959 7.435364e-05 0.344678410
85 85 85 0.7082469 6.486168e-05 0.344747563
86 86 86 0.7082042 5.657882e-05 0.344807886
87 87 87 0.7081669 4.935172e-05 0.344860505
88 88 88 0.7081344 4.304629e-05 0.344906403
89 89 89 0.7081061 3.754534e-05 0.344946435
90 90 90 0.7080813 3.274649e-05 0.344981351
91 91 91 0.7080598 2.856036e-05 0.345011804
92 92 92 0.7080410 2.490886e-05 0.345038364
93 93 93 0.7080246 2.172383e-05 0.345061528
94 94 94 0.7080103 1.894577e-05 0.345081730
95 95 95 0.7079978 1.652292e-05 0.345099347
96 96 96 0.7079869 1.440983e-05 0.345114710
97 97 97 0.7079774 1.256684e-05 0.345128109
98 98 98 0.7079692 1.095947e-05 0.345139794
99 99 99 0.7079619 9.557615e-06 0.345149984
100 100 100 0.7079556 8.335020e-06 0.345158871
101 101 101 0.7079502 7.268776e-06 0.345166621
102 102 102 0.7079454 6.338896e-06 0.345173379
103 103 103 0.7079412 5.527950e-06 0.345179273
104 104 104 0.7079376 4.820731e-06 0.345184413
105 105 105 0.7079344 4.203976e-06 0.345188896
106 106 106 0.7079316 3.666116e-06 0.345192804
107 107 107 0.7079292 3.196341e-06 0.345196218
108 108 108 0.7079271 2.786777e-06 0.345199195
109 109 109 0.7079253 2.429700e-06 0.345201790
110 110 110 0.7079237 2.118373e-06 0.345204052
111 111 111 0.7079223 1.846934e-06 0.345206025
112 112 112 0.7079210 1.610274e-06 0.345207745
113 113 113 0.7079200 1.403938e-06 0.345209244
114 114 114 0.7079191 1.224039e-06 0.345210551
115 115 115 0.7079183 1.067192e-06 0.345211691
116 116 116 0.7079176 9.304421e-07 0.345212685
117 117 117 0.7079169 8.112149e-07 0.345213551
118 118 118 0.7079164 7.072650e-07 0.345214306
119 119 119 0.7079159 6.166351e-07 0.345214965
120 120 120 0.7079155 5.376184e-07 0.345215539
得られたデータを描画
ggplot2が必要なのでインストールしていない場合は以下のようにしてインストール
> install.packages("tidyverse")
> install.packages("tidyverse")
package ‘lattice’ successfully unpacked and MD5 sums checked
package ‘colorspace’ successfully unpacked and MD5 sums checked
・
・
・
package ‘tidyr’ successfully unpacked and MD5 sums checked
package ‘xml2’ successfully unpacked and MD5 sums checked
package ‘tidyverse’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\○○〇\AppData\Local\Temp\RtmpkLeqvN\downloaded_packages
>
のようになったらインストールが「完了。
このパッケージはグラフを重ねるように書いていくものらしい。
ひとつひとつやっていくと何をやってるかわかりやすいのでそれぞれ順を追って描画していく。
次のように入力。
名前をS_plot_1とし次のように入力。
I、Rに対しても同じようにして描画していく。
次のように入力。
> S_plot_0 <- ggplot(data = out20201215_data, mapping = aes(x = time, y = S))
上記のS_plot_0を描画。
> S_plot_0
そうすると次のように下地が出来上がる。
これに導き出したデータのグラフを重ねて表示させる。名前をS_plot_1とし次のように入力。
> S_plot_1 <- S_plot_0 + layer(geom = "line", stat = "identity", position = "identity")
描画する。次のように入力。
> S_plot_1
次のように出力される。
I、Rに対しても同じようにして描画していく。
Iの描画
> I_plot_0 <- ggplot(data = out20201215_data, mapping = aes(x = time, y = I))
> I_plot_1 <- I_plot_0 + layer(geom = "line", stat = "identity", position = "identity")
> I_plot_1
> I_plot_1 <- I_plot_0 + layer(geom = "line", stat = "identity", position = "identity")
> I_plot_1
Rの描画
> R_plot_0 <- ggplot(data = out20201215_data, mapping = aes(x = time, y = R))
> R_plot_1 <- R_plot_0 + layer(geom = "line", stat = "identity", position = "identity")
> R_plot_1
> R_plot_1 <- R_plot_0 + layer(geom = "line", stat = "identity", position = "identity")
> R_plot_1
Rでggplot2によるグラフ描画関連ページ
- 感染率による感染者数増加の比較
- 当サイトは主に物理に関する数学など、その他周辺も含めた少々ごった煮のウェブサイトです。 数学分野に関しての趣旨としては、通常のテキストでは割愛されてしまう内容などを詳しく記述し、さらには難しい説明をするのではなく、わかりにくい内容をいかにわかりやすく伝えるか━など、そういったウェブコンテンツならではの利便性と機動性を生かしたサイト作成を主眼としています。
- RstudioでSIRモデルA
- 当サイトは主に物理に関する数学など、その他周辺も含めた少々ごった煮のウェブサイトです。 数学分野に関しての趣旨としては、通常のテキストでは割愛されてしまう内容などを詳しく記述し、さらには難しい説明をするのではなく、わかりにくい内容をいかにわかりやすく伝えるか━など、そういったウェブコンテンツならではの利便性と機動性を生かしたサイト作成を主眼としています。
- RstudioでSIRモデル@
- 当サイトは主に物理に関する数学など、その他周辺も含めた少々ごった煮のウェブサイトです。 数学分野に関しての趣旨としては、通常のテキストでは割愛されてしまう内容などを詳しく記述し、さらには難しい説明をするのではなく、わかりにくい内容をいかにわかりやすく伝えるか━など、そういったウェブコンテンツならではの利便性と機動性を生かしたサイト作成を主眼としています。