今回使用するコマンドをまとめた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.