11/03/02 15:08:08.80
ステップ10-13/15
プログラムを使ってモンテカルロ法をする方法
モンテカルロ法は、計算された95%CIが本当に正しいかどうかを確かめる時などにも使える手法
ちょっとややこしいが、モンテカルロ法を行う時などに使う新規データベースの作成方法
program プログラム名
postfile 新規データベースを作るための名前 新変数名1 新変数名2 新変数名3 using 作成するデータベース名,replace
forvalues i = 1/作成するデータ数 {
drop _all
/* ここに計算式 */
post mysim (新変数名1に代入する値) (新変数名2に代入する値) (新変数名3に代入する値)
}
postclose 新規データベースを作るための名前
end
quietlyコマンドの使い方
quietlyを適応する部分を別のプログラムにして
プログラムの中から
quietly 別プログラム名
で呼び出す方法
14/15
モンテカルロ法をスピードアップする方法
which コマンド名
これでbuilt-in command:と表示されるコマンドは実行速度が速いが、
/Applications/o_Stata/ado/base/c/ci.ado
*! version 3.3.15 17mar2005
このように表示される.adoコマンドは実行速度が遅いのでモンテカルロ法などで使うのを避けるべき
135:ごろ
11/03/03 05:09:56.70
Lecture3-15/15
練習問題
date関数は以外と融通が利かない。以下例
display %td date("Feb02","MD") /* OK, but Year is 1960. */
display %td date("Feb02","MD1993") /* This doesn't work. */
display %td date("Feb02"+"1993","MDY") /* OK */
display %td date("Feb02"+ string(1993),"MDY") /* OK */
display %td date("Feb02","MD",1959) /* Strange, Year is 1960. */
display %td date("2001/02/03","YMD") /* OK: 03feb2001 */
display %tc date("2001/02/03","YMD") /* NO: 01jan1960 00:00:15 */
display string(1993) + "Feb02" /* OK: 1993Feb02 */
display "Feb02" + string(1993) /* Error: Feb02unknown function +string() */
ブートストラップの結果表示のための関数
. matrix define 変数名 = もともとのデータから計算 /*計算された値はMatrixに直す必要がある。*/
. bstat, stat(変数名) n(対象数)
136:ごろ
11/03/03 05:11:59.82
Lectrure4
1/24 pwd /* 現在の作業ディレクトリを表示 */
2-6/24 Adoファイルを用いて、capture log closeなどのコマンドをサポートする。
discard
adoファイルはメモリに読み込まれるため、元ファイルを変更してもすぐには反映されない。
このdiscardコマンドで、adoファイルを再読込する。
capture noisily ・・・
このコマンドで、途中でエラーが起きてもlogファイルが作成されるようになる。
7/24 sysdirコマンドでStataが使う7つのディレクトリが表示される。
通常は、自作のadoファイルはPERSONAL:で表示される以下に格納する。Macなら例えば
PERSONAL: ~/Library/Application Support/Stata/ado/personal/
となる。
8/24 Stata helpファイルの作成方法
9/24 Doファイル、プログラム、adoファイルの使い分け
137:ごろ
11/03/03 05:13:20.91
10/24 adoファイルで有効な一時的な変数を作成するtempvarの使い方
11/24 preserveコマンドの使い方。
プログラムが終わったり、エラーが出るとこのpreserveコマンドを実行した時点のデータセットに戻る。
12/24 一時的にファイルを作成するtempfileコマンドの説明
13/24 adoファイルでもassertコマンドを使いなさいという教え
14/24 変数名をマクロで読み込むadoファイルの紹介
15-16/24 summarize,detailコマンドで得られる結果のうち、interquartile rangeのみを表示させる新しいプログラムを
作成しながら、どのように上手く結果を表示させるかなどの説明
使われている関数は、
_col()関数、Stataは初期設定で%9.0gで結果を返すので、9文字以上の数列にはならないことを利用。
17-18/24
syntax [varlist]
foreach i of local varlist {
この組み合わせで、Stataの通常のコマンドのような操作が出来るようになる。
19/24 syntax [varlist]の詳しい説明 help syntaxで表示される内容とほぼ同じ。
20/24 自作プログラムで、if,in, =exp, usingf, w aw pw iwコマンドが使えるようにする
138:ごろ
11/03/03 05:50:41.84
21/24
syntax [varlist]
syntax varlist の違い。[ ]が無いときには、変数名が指定されていないとエラーになる。
特定の処理をさせる場合にはエラーを避けるためになるべくifオプションなどは使わない。
使う場合には次のコマンドでデータを守る。
if "`if'" != "" {
preserve
quietly keep `if'
}
22/24
" ",`', `" "'の使い方。ここは非常に参考になった。
マクロのに""を含む文字列を代入すると、エラーが起きることがある。
それを避けるために`" "'を使う。
ここを学んで、何故Stataが`'などというおかしな引用符を使うのかが少し分かった気がする。
23/24
version 10
というようなバージョンコントロールの説明
*! (adoファイル内)で始まるコメントは、which コマンド名 を実行したときにコメントが表示される。
24/24
練習問題
error エラー番号 エラーの説明が表示される
abbrev(変数名,表示させる長さ) 変数名が長いとき、省略してくれる。
unab マクロ名 : _all マクロ名に、データに含まれる省略されていない変数名が全て格納される
これで一応全てのレクチャー内容の報告を終わります。
参考にして頂ければ幸いです。
139:ごろ
11/03/04 03:00:03.77
Stataのバグ?
. display string(1) + "A"
1A
. display "A" + string(1)
Aunknown function +string()
r(133);
. display = "A" + string(1)
A1
string()と文字列を足し算するときに順番を入れ替えるとエラーになる
意味の分からない=だが、これを付けるとOK
140:ごろ
11/03/04 03:03:37.69
今、気がついた
A1だと変数名と勘違いされてしまうからエラーになるのかな?
141:ごろ
11/03/05 08:33:06.57
Advancedも受けようかなぁ
NetCourse® 152: Advanced Stata Programming
Content:
This course teaches you how to create and debug new commands that
are indistinguishable from the commands in Stata.
It is assumed that you know why and when to program and to some extent
how.
You will learn how to parse both standard and nonstandard Stata syntax
using the intuitive syntax command, how to manage and process saved
results, how to process by-groups, and more.
Course leaders:
Kerry Kammire, technical services analyst at StataCorp
Jennifer Rolfes, technical services representative at StataCorp
Course length:
7 weeks (5 lectures)
Dates:
October 7–November 25, 2011
Prerequisites:
* Stata 11, installed and working
* Course content of NetCourse 151 or equivalent knowledge
* Internet web browser, installed and working
(course is platform independent)
Price:
$150.00
142:132人目の素数さん
11/03/25 20:00:53.28
@保守
ごろさん大丈夫かぁー??
143:ごろ
11/03/27 03:08:58.46
>>142
ありがとうございます。私と私の周りの人は皆無事です。
しかし、あまりの事態に、のんきにStataしている気になれませんでした。
地震・津波そのものの被害も大変なものでしたが、原発事故の影響が恐ろしいです。
犠牲になられた方のご冥福をお祈り申し上げます。
144:132人目の素数さん
11/04/10 23:28:41.47
ちなみに、stataのオンライン・レクチャーはDVDでみれたり、あるいは、過去のものをみれたりするのでしょうか。社会人の私としては、決まった時期にみるというより、休みの時に一気に見たいのですが。
145:ごろ
11/04/12 05:52:11.98
>>144
オンラインレクチャーというよりは、オンラインで置いてあるテキストを読みながら
自分で勉強するという感じですね。
そういう意味では本を購入するのと変わらないので1万以上するのは高い気もしますが、
質問もできるというインタラクティブ性が良いのでしょうね。
テキストファイルなので、時間があるときに、自分のペースで勉強出来ます。
質問も、24時間OKです。返信は24時間いつでも対応ではありませんが、数時間以内には
全て答えが返ってきていましたし、とても参考になる答えもありました。
講義や、質疑応答の資料は後日、ダウンロードできるようになるので、復習も出来ます。
本と比較すると高いですが、巷の講演会を受講するよりは、質問も何度でも好きなだけできますし、
ある程度期間があるので、自分を強制的に勉強させることが出来たし、結果的には良かったのかと
思っています。
Advanceコースは10月なのでまだ先ですが、一応今のところは受けるつもりです。
他にも興味深いコースはありますが、2万円以上するので、さすがにちょっと躊躇しています。
146:132人目の素数さん
11/04/13 00:04:53.57
>>145
せっかくオンラインなのだから、DVDなどで販売してくれたほうがうれしいですよね。
何度も見返すことができるし、第一、好きなときに勉強できます。
次回も、上級レベルと通常レベルがかぶっていて、両方受講するにはちょっとタイミングが悪いです。
といういうニーズの対応はTACやLECは普通やっていることですので、臨機応変にしてほしいところです。
ちなみに、どれくらいの期間視聴が可能なのでしょうか。
147:132人目の素数さん
11/04/13 00:32:24.18
>>146
ちなみに、MATAについてはオンライン・セミナーで議論されるでしょうか。ネット上でかかれた.mlibファイルが開くことができず、stata9で開けず苦労しています。このあたりの勉強を講義ベースで聞けたらと思うのですが。
148:ごろ
11/04/13 02:09:41.64
>>147
視聴期間は基本的に講義開催期間のみですが、先にも書いたとおり、最終的には
サイト自体がダウンロードできるようになるので、講義終了後に繰り返し復習することは可能です。
MATAについてはよく分かりませんが、少なくとも私が受講したコースには有りませんでした。
しかし、講義から離れた内容の質問でも答えてもらえる可能性は高いと思います。
149:ごろ
11/04/24 23:29:58.92
ノートパソコンのOSをクリーンインストールし直した。
前は、Stataの10と11を両方使っていたけど、今回は11のみでいくことにした。
150:ごろ
11/05/04 18:13:09.80
今byableなプログラムを書いているけど結構難しいなぁ
capture program drop myprog
program myprog , byable(recall)
syntax varlist
marksample touse
foreach i of local varlist {
quietly:sum `i' if `touse'
di abbrev("`i'",9) _col(10) "N ="r(N) _col(25) "Mean +/- SD="%4.1f r(mean) " +/- " %4.1f r(sd) _col(55) "Min =" %4.1f r(min) _col(70) "Max =" %4.1f r(max)
}
end
こんな感じになるんだけど、myprogに変数が沢山つくと挙動がおかしくなる。
なんでだろー
151:132人目の素数さん
11/05/05 22:21:25.50
MAC版で日本語を表示させると、詰まって表示されるのですが、
何か対策はありますか。
教科書体を利用すると、多少ましになりますが、他に手段は
ないのでしょうか。
152:ごろ
11/05/06 02:46:33.01
>>151
私もMac版 v11.2を使っています。
Stataで日本語表示をさせようと考えたことが無かったので
気が付きませんでしたが、同じ状況は再現できました。
試したコマンド
di "日本語を表示させる"
OsakaとかもPreferenceから選べますが、ダメでしたね。
やっぱりDF教科書体が一番まともでした。
コピーしようと選択すると文字化けみたいになりますね。
ペーストはちゃんとできますが、日本語表示のために何か複雑な仕組みでも
あるのでしょうかね。
詰まってしまうのは、等幅フォント設定の為ではないか、と思いますが、
それを解除する初期設定項目もないので難しそうですね。
明確な解決案は思いつきませんが、
例えば、EmacsからStataを操作することが出来れば
うまくいきそうな気がします。
以前試そうと頑張ってみましたが途中で諦めました。
あと、Font関連では、ギリシャ文字や±などの特殊文字もStataで表示させるのは
難しいようですね。
既存のフォントを入れ替えて表示させる方法がどこかにありましたが、
また見つけたらリンクを貼ります。
153:132人目の素数さん
11/05/06 22:39:02.59
>>152
早速のお返事ありがとうございます。
うまくいかないものなのですね。
どうしても、日本語を使いたいときは、
教科書体でがんばってみたいと思います。
154:132人目の素数さん
11/05/11 00:21:35.86
stataのマニュアルは購入しなければならないのでしょうか。
time serisとpanelのマニュアルが取得したいのですが。。