統計ソフトSTATAの部屋 Ver.2
■ このスレッドは過去ログ倉庫に格納されています
統計ソフト STATAを使って統計解析をするスレです。 日本語の良いソースが少ないので盛り上げましょう。 前スレが順調に!?88まで行ったんですが、落ちてしまったので再開です。 >>266 勉強して教えてください。 教えることは最高の学びともいいますし。 (^O^)/ただで勉強しようと思うなヽ(`Д´)ノプンプン はじめまして。STATAのコマンドを調べていて辿り着きました。 そして早速ですが質問させてください。 グラフの凡例(legend)を右に表示させ、かつラベルを縦1列に並べたいのですが、この縦1列に並べるコマンドが分かりません。 helpを参照するとlegendオプションのstyle( )というのが怪しいのですが上手くいかず。 Graph EditorでlegendのColumnsを1にすれば目的の形にはできるのですが、コマンドが知りたいです。 ご存知の方がいらっしゃいましたらどうぞよろしくお願い致します。 参考までにサンプルデータで作ったものを書いておきます。 ・データ year group freq 2000 1 1 2010 1 2 2000 2 3 2010 2 4 2000 3 5 2010 3 6 2000 4 7 2010 4 8 ・コマンド twoway (line freq year if group==1)/* */ ( line freq year if group==2)/* */ ( line freq year if group==3)/* */ ( line freq year if group==4),/* */ legend(position(3)) 4本の線グラフが表示される。 今の状態ではグラフ右側に2×2の形でラベルが表示されるがこれを1列にしたい。 >>269 最後のposition(3)の次にスペース1個入れてc(1)ではいかが? legend(position(3) c(1)) >>270 269です。 素早いご解答ありがとうございます そして無事c(1)でできました。感動! column(1)とか色々打ち込んでみてたのですが、c( )だったんですね。 ちなみにそういう情報はSTATAのhelpなどで検索できますか? コマンドを調べるのにいつも手間取っていて。。 後学のため、ご存知でしたら教えて頂けると大変助かります。 >>271 省略しない場合、colsのようです。 検索は、Help→Searchで、適宜どうぞ。今回の場合はlegendで。 勉強や努力が足りなくて優秀になれない奴が惨めな思いをするのは当然 なんだよ。それを自分で何もせずに優秀な人間の足を引っ張るとは言語 道断である。他人を貶めるだけで自分は楽をする奴は恥を知れ。今後も そういう馬鹿者を発見次第、即刻攻撃を掛けて当該スレを焼け野が原に するので、覚悟をする様に願いたい。こういう考え方が国家を滅ぼす。 無能な馬鹿は自滅するに任せ、優秀な人材こそを選択的に抽出し、それ を国家が意図して保護しなければならない。そうする事が国家が生き残 る唯一の道である。繰り返す。何の努力もしない馬鹿を無条件に保護す れば、その結果として誰も努力しなくなるだけである。だから馬鹿を保 護しては絶対にならない。 描 >みんなで優秀な人間の足を引っ張って沈もうよ。 >そうすれば自分だけが馬鹿で惨めな思いをしなくて >すむから楽チン。 >一億総白痴可で横並びになれば怖くは無い > >>272 ありがとうございます。 help確認してみました。確かにcolsですね。 私もlegendのヘルプは何度か見ていたのですが、cols見逃していました。。 お手数をおかけしてすみません。 syntaxをいつも頑張って解読しようとするのですがなかなか力及ばず。 helpやマニュアル(黒い冊子)片手にこれからも頑張ります。 初心者なりに最近驚いたことを一つ。 stataで小数点を含む数値を扱うときはfloat()関数が必要。 count if 変数名==0.1 ではなく count if 変数名==float(0.1) としなければならない。 気づくまでは数が合わなくてオロオロしてました。 描 >367 :匿名希望:2012/07/23(月) 17:23:38.69 > >>365 > 頭悪いのはお前の方だろ? > 「猫」という字を「描」に間違えやがってwww > 小学生並みの頭の悪さだぞ、お前! > 焼かれるのはお前の方だろ? > 外国では猫の丸焼きというゲテモノ料理もあるらしいぜwww > STATAで、重回帰分析にpropensity scoreって使えるんですかね? 2群比較やロジスティックはわかるんですけど。 お久しぶりです。 >>276 >propensity score使えるようですよ SPSSでは一応使えるけどっていうレベルみたい。SPSSの中の人が言っていた。 やっぱりRかな。でもStataいいっす。 >>274 小数点問題 ちょうど私もハマってしまいました。 ここにまとめておくと調べるのにも便利ですね。 情報ありがとうございます。 この情報の公式な発表とかありますか? ちょっとググったら、 ttp://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=20&ved=0CHkQFjAJOAo&url=http%3A%2F%2Fwww.rpi.edu%2F~simonk%2Fpdf%2FUsefulStataCommands.pdf&ei=H6NqUP3UIe3LmAX0kYDABQ&usg=AFQjCNGWGyuzTiMvneGJkgFjA5Wr38qvYw&sig2=PP6RQkXbjVehu3TUwAvPgQ のここに書いてありました。 K.Data Types,When 3.3 3.3,andMissingValues foreach n of numlist 1(1)255 { di `n' , char(`n') } charコマンドで特殊な文字列を表現できる。でも日本語フォントはダメみたい。 ずっと文字列を変数名と認識させる方法を探しているが見つからない。 . input testdesu testdesu 1. 1009 2. 9001 3. end . di testdesu 1009 . di ("test"+"desu") testdesu 最後のところでちゃんと1009と表示させる方法を探している。 . di ("test"+"desu")ここは実際はもっと複雑なstring functionコマンドです。 単純な方法がありそうなんだけどなぁ ε⌒ヘ ⌒ヽフ ( ( ・ω・) ブヒブヒ しー し─J >>282 解決しました! local i = "test"+"desu" di `i' でOKでした。 単純でしたね。 *log using forabstract.log, txt append /* easy to read, but Japanese will dissapear*/ do "C:\Users\MSC12-03\Dropbox\HOME\2013JPS\forconfidence.do" replace confidence=. if confidence==999 save forconfidence2012-10-10.dta,replace ttest confidence ,by(experience) ranksum confidence, by(experience) Doファイルの中でDoファイルを作成して実行する方法 capture program drop makedofile program makedofile syntax anything qui{ /*これがポイント。これでログファクィルのヘッダーを出力しない。*/ capture log close log using newdofile.do , text replace } di "clear" di "input str10 newvarname data1 data2" foreach i of local anything { local x = _N foreach j of numlist 1(1)`x' { di originalvarname " " /*ここにdata1, data2用の命令*/ } } di "end" qui { log close } end makedofile /*originaldataを呼び出す変数名など*/ 回帰係数がt分布で検定できることの説明ができる人、どうぞ >>285 di `="test"+"desu"' でも出来ました〜。 はやいものですなぁ もう今年も残す所あとわずか・・ おお、まだ残っていましたね。 もう1年たつんだ。 >>159 今日散歩していたら急に思いついた。StataでSleepsortする方法。 上手くできたらまた書き込みます。 >>295 よくよく考えなおしたら、Sleep Sortの理論上、バックグラウンドで複数の関数が実行出来ないと 無理なんですね。あーダメだ。やるとしたらStataから別のプログラムを操作する方法を考えないとダメかな。 このページ、我ながら本当に役に立つ。 ネットさえ繋がれば、忘れたSyntaxのコツなど検索ですぐに見つかるから助かる。 今日も自分のためにメモ。 /* あるテキストデータの先頭にある文字列に 特定の文字列(複数可)を含んでいるかどうかを判定し、 新しい変数名にその結果を格納するプログラム 下記はやっと動いた例。 上手く行かなかったコードも残しておきます。 理由は良くわかりません。 分かる方お教え下さい。 */ 長くなったのでプログラム本体は次の投稿で capture program drop testprogram program testprogram syntax namelist local newvarname = "`1'" gen `1' = 0 foreach i of local namelist { local j= length("`i'") replace `newvarname' = 1 if substr(textdata,1,`j')== "`i'" } list tab `1' end /* 下記の方法では上手く行かなかった。 そのためわざわざnewvarnameというlocal変数を使っています。 replace "`1'" = 1 if substr(textdata,1,`j')== "`i'" */ testprogram list_pine pine testprogram pine_and_apple pine apple データはこれを使って下さい。 clear set more off input id str10 textdata 1 pine 2 apple 3 pineapple 4 pines 5 "pine juice" 6 "pink juice" 7 orange 8 oranges 9 spine 10 "blue pine" end 群間の多重比較に関して質問させて頂きます。 カイ2乗検定で、群間の有意差を出した後にさらに2つの群間において多重比較を行いたいのですが、どうすればよいのでしょうか? STATAで"tukeyhsd"というコマンドを発見したのですが、どう使っていいのか分かりません。 おお、放置プレーしてしまいました。 まず、そのパッケージは、標準で無いので、ネットから、インストールする必要があります。 net install tukeyhsd で、インストール出来ます。 qsturng.adoも必要そうなのでインストールしましょう。 後は、ヘルプ(help tukeyhsd)の通りですが tukeyhsd 連続変数, dv(カテゴリカル変数) で出来ます。 例 sysuse citytemp tukeyhsd region, dv(tempjan) これで、地域毎に1月の気温の比較が、出来ます。 しかし、多重比較する前に、多重比較が本当に良い選択なのか、研究デザインを考えることをお勧めします。 stataを使いながらstataの使い方や統計学について知識を得られるサイトと いうのはないでしょうか?あるいは本はないでしょうか? >>302 あまり親切な回答ではないですが、UCLAのサイトとか有名ですね。 >>302 あ、まじ回答すると、StataのHelpがかなり優秀なんで、 StataのHelpを見ていれば大抵のことは分かります。 サンプルプログラムもあります。 >>2 にもまとめていましたね。 statalist@hsphsun2.harvard.edu このメーリングリストの回答はググればネット上でも閲覧できます。 内容が高度なことが多いですが、困ったときにググると大抵回答があります。 それでも見つからない時には、メーリングリストの会員になって、 質問したら良いと思います。 STATAとRって一般にどっちが優れているんですか? やっぱり一長一短ですか? Rがスラスラと使いこなせる人にはStataは不要かもしれない。 しかし、RはバージョンやOSシステムが変わるだけで挙動が不安定・不確実になるので、 講義で使用する場合など難しいケースが多い。 経済学の最新のパッケージが平易なコマンドで利用できる点など を考えるとやはりStataは優秀。 URLが変わったせいかな!? メモ書き set more on set more off 実行結果を位置画面毎に止めるか止めないか。 set trace on set trace off Stataの処理を一行ずつ丁寧に吐き出してくれるコマンド Keywords デバック モード 一行毎 プログラム プログラミング 結果をその都度 変数 どうでもいいけど、面白かったんで。 Stata helpに存在しない関数の説明があった!! strcat(s1,s2) Domain s1: strings Domain s2: strings Range: strings Description: There is no strcat() function. Instead the addition operator is used to concatenate strings: "hello " + "world" = "hello world" "a" + "b" = "ab" stataを勉強し始めるのに何かいいものないですか?おしえてください >>307 SPSSが学内サーバーを通して使えるので、Rを覚える必要がないと思う学生も多い。 でも一旦卒業するとその環境が継続する人は稀なわけで、Rも併行して覚えておいた方が良いよと言ってる。 STATAも提供されてるけど、稼働率はSPSSよりかなり低い模様。 Stata14最高ですね。日本語対応なんて・・と思っていましたが、Unicodeがちゃんと使えることでデータ解析がこんな居捗るとは思ってもいませんでした。 Stata8から基本コマンドは変わらないので、古くても大丈夫!と思っていましたが、Stata14は早速ポチりました! これはStata分かりにくいだろ! by class: egen number_of_male=count(gender=="male") なんと上記では、男性の数を数えるのではなくてクラスの総人数を数えてしまう! 欠損値はカウントしない様子。 クラスごとの男子生徒の人数を出したいなら下記でOKということ。 egen number_of_male=sum(gender=="male"), by(class) >320 それは抜群の安定性があるからです。 Rはバージョンやプラットフォームが変わるととたんに挙動が怪しくなります。 >>321 Stataに不満は少ないんだが、少ない不満のいくつかとして挙げるとすると 1. バージョンが変わると.data形式が変わって読めなくなる。 直近のバージョンだと互換性は保たれているが少し離れると、 複数のバージョンでデータ形式を整えないといけない。 まぁCSVを介したりすればいいんだけどね。 2. 図表の調整はコマンドで全て記録されない。 これは多分開発側も考えていてRecordボタンなど有るんでしょうけどね。 私が使う範囲では、これくらいかな。贅沢な悩みかもしれない。 お久しぶりです。 Stataの正規表現って最小マッチできないのかな? あけましておめでとうございます。今年もよろしくお願い申し上げます。 公衆衛生の授業で触ってよかったなと思って 大学院に入って使い始めたら周りにStataユーザーが皆無で 困ったなと思ったらHelpが超充実していてなんとかなりそうな気がしてきた。 複数の変数について、特定のidだけ表示できる方法 やっと見つけたんで、一応共有を なんて、みんな知ってるもんなんかな。 browse id syussinti if inlist(id, 1256, 1338) 書き込みありがとうございます。 > 複数の変数について、特定のidだけ表示できる方法 > やっと見つけたんで、一応共有を なんて、みんな知ってるもんなんかな。 面白そうですが、いまいち問題定義が分かりません。 何か具体例を出して頂けますか? 解決案は少し自分で考えてみたいので後で投稿していただけると面白いです!! マ イ ン ド コ ン ト ロ ー ル の手法 ・沢山の人が、偏った意見を一貫して支持する 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法 ・不利な質問をさせなくしたり、不利な質問には答えない、スルーする 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法 偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い 靖 国 参 拝、皇 族、国 旗 国 歌、神 社 神 道を嫌う カ ル ト 10人に一人は カ ル ト か 外 国 人 「ガ ス ラ イ テ ィ ン グ」 で 検 索 を ! 日本人の躾けは『大人の都合』、その目的は威厳に屈服させる為: ある父親:クマが出没する山林に息子を放置、しかも嘘を吐いて保身。 別の父親:勉強の邪魔をして進路を妨害し、学歴を砕く。出世を強要。 ソレでも「親の行為は子供の為」という傲慢な常識を振り回す世間、しかも 「親を尊敬して大切に扱え」という無根拠な思想を押し付ける儒教文化。 お父さん、お母さんを大切にしましょう!!!ソレが世間体というモノ! ケケケ¥ 政治家も、お教授も、権力を振り回すのが大好きな低能人種: ある男:ボクは都民の為に湯河原で休んでるんだ。知事が信じられんのかっ! 別の男:オレは哲也の為に指導してやってるんだ。父親が信じられんのかっ! 上から目線で強弁すれば、自分の言い分は何でも通る国があるらしい… ああ、素晴らしき日本文化よ。キミ達も国会議員を見習い給え。何せ多数決で選 ばれた『皆の代表』なので。だからある男も別の男もエラいんだよォ〜〜〜んw コココ¥ 終わり良ければ全てヨシ。途中経過はどうでもヨシ。 大学:学生の知能なんてどうでもヨシ。カネが儲かる教室を巧みに運営シロ。 狸研:研究の詳細なんてどうでもヨシ。世間が驚く大論文を外国に発表シロ。 芳雄:学問の中身なんてどうでもヨシ。安易に教授になれる分野を専攻シロ。 学問なんて所詮は出世の道具。周囲に秀才っぽく見せ掛けられたらソレでヨシ。 社会的に高い地位、そして豪華で贅沢な暮らし。世間が羨む大学教授のポスト。 ソレさえ手に入れば学問そのものなんて洋梨よォ〜〜〜ん。 よよよ、よ〜〜〜しお。そやしノ〜ベル賞が欲しいよォ〜〜〜んんんwww シシシ¥ ここ数年分を、ど初心者にもわかりやすく書いてくれら、私はあなたを神と呼ぶことにするであろう コレ使ってcommerceの売り上げをアプしたいんや 手取り足とり頭とり教えてや >>353 普通にダミー使っての重回帰で良くね?あまり考えなくてもさ… 流入元とかあるなら色々面倒だけどろ 久しぶりにメモ Stataはクオーテーションマーク関連に煩い。 1. 書き込み失敗した。 久しぶりにメモ Stataはクオーテーションマーク関連に煩い。 1. " 2. ' 3. “ 4. ” 5. ‘ 6. ’ 7. ` 上記全て違う扱い1,2,7はStataで使える。 7はマクロの左側で使うやつ `macro' 全角・半角・日本語・英語を気をつけていてもエディタによっては間違える ちなみに文字コードは下記の通り 1.print(chr(34)) 2.print(chr(39)) 3.print(chr(8220)) 4.print(chr(8221)) 5.print(chr(8216)) 6.print(chr(8217)) 7.print(chr(96)) もうひとつ Stata Programmingでどつぼにはまったのでメモ プログラムにオプションを付けるときsyntaxのみではカンマ(,)を上手く取り除いてくれないのtokenizeを使う。実は、 >>202 に概出 解決方法 program testprogram syntax namelist [,Option] tokenize "`0'" ,parse(" ,") ... end この ,parse(" ,")がキモ ,parse(",")は駄目 ””の中に半角スペースと,が入っていてこれで分けるというコマンド この後、`1' , `2'で取り出し可能。 ちなみに[,Option]は省略可能で,o や ,opt や ,optionと記載OK これ以外、例えば,otと書くとエラー プログラム内では記載が無ければ`option'というマクロに""が 記載があれば`option'というマクロに"option"が入る。 も一つ capture hogehogeと記載すると _rcというシステム変数に入力される エラーが無ければ0が、エラーがあればそのエラー番号が入力される だからこれを利用して capture confirm variable 変数名 if _rc { 変数名が無い場合の処理 } else { 変数名がある場合の処理 } 裏返しで capture confirm variable 変数名 if !_rc { 変数名がある場合の処理 } else { 変数名が無い場合の処理 } と記載できる。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる