高校~社会人の情報学基礎知識講座

シミュレーションにおけるモデル化の重要性について

»

さて、10月の情報処理技術者試験の準備を始めなければ...。
今回は10/10らしいですよ?TOTOの日ですね。


シミュレーション

計算を用いて「この条件下ならこのようになるはずである」という結果を導出することをシミュレーションという。
※シュミレーションは誤記。

https://e-words.jp/w/%E3%82%B7%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3.html

その際に必ず必要となるのは「モデル化」という操作が必要になります。
モデル化とは何か、というと「どういう計算をするかセット」なわけです。

物理エンジンというシミュレーターがありますが、これは重力や各種物理定数なんかの値が違った時、どのようにふるまうかを計算しています。
Covid-19流行拡大初期に感染拡大モデルとそこシミュレータによる動画がいろいろ報道されたりTwitterに流れてたりしました。
https://www.covid19-jma-medical-expert-meeting.jp/topic/3925
https://biostat-hokudai.jp/seirmodel/
など。「感染拡大モデル」で検索するともっといっぱい出てきます。

過去のデータをもとに未来を予測することなどにもシミュレーションはよく使うのですが、ここで一つパンピーが忘れやすいポイントがあります。

「そのモデル、本当に正しいの?」

どんなに計算を積み重ねるとしても、その計算式が間違っているとなーんも意味がない。
この当たり前の話を忘れると大惨事になるわけです。

先に紹介した感染拡大モデルについても、実際の病気発生人数などを統計処理して近似した関数を持ち出しているわけですが、日本と途上国で同じ関数が使えるのか?
といった疑問点があるわけです。(それを踏まえたうえで論文化してるとは思いますが。)


回帰関数

統計処理的に「こんな感じになるんじゃね?」という関数の導出方法があるのですが、それを回帰分析と言います。
簡便なデータ分析ならExcelでできるのですが、研究職レベル以上ならRやMATLABを利用しましょう。

モデル作成の一環として回帰分析する際、直線で結果をあえて求めることがあります。
散布図などをみて「1次関数っぽい形だな?」と思った際に利用するのですが、利用の仕方を間違えるとこうなります。
https://togetter.com/li/738694

ちなみにこの話は1学期にもしています。https://el.jibun.atmarkit.co.jp/hfukkoshi/2021/01/2_1.html

このクソ図を見せて「何が悪いかわからない」と言われたことがあるのです・・・。

具体的に何が悪いかというと、回帰直線は「その直線と各点の距離が最小となる直線」です。中3でやりませんでした? 点と直線の距離って。この値が最小になるように直線を引くわけです。

でも該当の図はx軸近辺に大量のデータ(点)があり、xが大きい時に点はほぼ無い。にもかかわらず回帰直線でございと線を引いて「人口密度が高いと出生率も高い」とか主張している訳です。

流石に無理筋。 回帰直線を出すときには相関係数という値も計算するんだけど、厳密には違うがざっくり「グラフ適合率」くらいのイメージ。これが明らかに低い。

というリテラシーを持ちたいところです

Comment(0)

コメント

コメントを投稿する