今回使用するコマンドをまとめたdoファイル2点(calcpi.doとsim_pi.do)です。zipファイルをダウンロード後に展開(解凍)してください。
doファイルは、Stataのメニューの「ファイル > 開く」で開いて使用します。
ZIP形式(1KB)
はじめにclear
コマンドでデータセットをクリアします。次にlocal
コマンドでマクロ変数myobs
に100を代入し、set
コマンドでobs
にmyobs
を設定します。この操作によりデータセットの観測数(行数)が100行に設定されます。さらに、seed
として1を設定します。この後の無作為な数字を生成する際に使用されますが、この値を設定することで再現性を確保できます。以上で無作為に点を打つ準備が整いました。
gen
コマンドで変数x, y, r
を生成します。変数x, y
には、runiform
関数により0以上1以下の値が無作為に抽出され、代入されます。この値をXY座標上の点とみなし、正方形の範囲内に無作為に点を打ったと想定します。変数r
にはx
とy
の二乗和の平方根を代入します。この値が1以下である点(x, y)は四分円の内側にある点とみなすことができます。
先ほどのcalcpi.do
の事前準備と同様にデータセットをクリアしローカルマクロ変数を設定して観測数を指定します。
gen
コマンドで変数x, y, r
を生成しますが、乱数は後の操作で入力するので、ここでは0を入力しておきます。
sim_pi.do
では、calcpi.do
で行った操作を複数回実行しますが、その結果を格納するためのデータセットが必要になります。しかし、Stataでは基本的に1つのデータセットを扱うため、結果を格納するためのスペースを用意する必要があります。このスペースを準備するためのコマンドがtempfile,tempname,postfile
です。tempfile
コマンドで一時ファイルにzfile
という名前を割り当てます。次にtempname
コマンドで行列にmemhold
という名前を割り当てます。最後にpostfile
コマンドでzfile
に結果を記録しておくための変数pis
を生成します。
pis
の平均値が円周率に近い値となるか、ヒストグラムの形状がどのように変化するかなど、doファイルを編集してぜひお試しください。Stata is a registered trademark of StataCorp LLC, College Station, TX, USA, and the Stata logo is used with the permission of StataCorp.