- 締切済み
統計のプログラミング
私は、経済学部の4年生です。 現在卒論で、R言語を研究しているのですが、 プログラミングが難しくてよくわかりません。 自分の研究したい手法のプログラミングを知りたいときには、 どのような対処をすればよいでしょうか。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- backs
- ベストアンサー率50% (410/818)
意地悪でいうのではないのですが、 > 経済学部で統計にあまり詳しくない状況なので という人が統計学の方法論自体の研究を行うのは無謀なのでは?という指摘を教官からされないのでしょうか(^_^;) 手順としては: (1) 正規分布、一様分布、対数正規分布から試験データを用意する。 (2) 各々のデータに対していくつかの多重比較法を適用して検定を1000回ずつ行う(適用した多重比較法の検定結果が1000個得られる)。 (3) 検定の結果(p値)をプロットしてみる。好ましいのは得られたp値が0.05の付近にばらつくこと。 という感じでしょう? > テューキーの方法についてのプログラムをウェブから見つけてきましたが、そのプログラムのどこに組み込めばよいのかわからない テューキー法のプログラムに書き加えるのではなくて、for()を使ってtukey()という関数の実行を1000回繰り返しばよいのでしょう? for(i in 1:1000) tukey(data, group) とすれば1000回分の検定結果が返されます。もっとも、p値を別の変数に格納するようにしないとダメですけども。 p値は > result <- tukey(data, group) > result$Tukey[,1] などとすれば取り出せますから、 > dat <- numeric(1000) という変数を用意しておいて、そこに代入していくようにすればよいでしょう(後は自分で考えて工夫すること)。
- backs
- ベストアンサー率50% (410/818)
> 多重比較法について、研究している どうも質問者さんの意図している「研究」というのが分からないのですが、手法の開発(改良)を行うわけですか? > 代表的なTukeyの方法をプログラムしようとしています Tukey法を行うための関数を練習として自分で定義してみようということですよね?制御構文などの基本は他の言語とほぼ同じなわけですから、Rについての基本的なルールと、R風のプログラミング手法(apply関数類の利用とか)を学ぶのが筋でしょう。 乱数を発生させる関数はそれこそrnorm()とか色々ありますし、モンテカルロシミュレーションを行うならforやrepeatを使えばよいでしょう。 多重比較に関するシミュレーション実験の常套手段というものがあるわけですから、まずはそれを知ることが先決でしょう(No.2さんが指摘してくださっているように)。
補足
ご説明ありがとうございます。 backsさんには、当たり前のことを質問しているかもしれませんが、経済学部で統計にあまり詳しくない状況なので、まだ何が初歩的なのかよくわからない状況なのでご了承ください。 もう少し、補足させていただきますと現在多重比較法の検出力をテーマにして研究しようと考えております。そこで、正規分布だけではなく、カイ二乗分布やポアソン分布のほかにノンパラメトリック分布のときに種々の手法(テューキーの方法やボンフェローニの方法など)における検出力がどのような値をとるかを調べようと思っています。 そこで、検出力を調べるシミュレーションを組む必要が出てきまして、いくつかの問題が出てきました。 先輩の論文を見ておりますと、シミュレーション回数が1000回という記述がありました。テューキーの方法についてのプログラムをウェブから見つけてきましたが、そのプログラムのどこに組み込めばよいのかわからないという状況で困っておりまして、質問させていただきました。 長くなりましたが、時間のご都合がありましたらご説明をお願いいたします。
- proto
- ベストアンサー率47% (366/775)
検索してみたらあっという間に出てきました。 Google検索便利なので、今度から質問の前に検索してみてください。
お礼
大変参考になりました。 ありがとうございました。
補足
すばやいご返答ありがとうございます。 ご提示していただいたサイトは私も閲覧してはいたのですが、まだ問題があり、 ・論文では、乱数を発生させている ・シミュレーション回数を1000回程度行っている ・ボンフェローニの方法や、Peritzの方法などにも言及している ため、その際との知識だけでは、どう対処してよいかわかりませんでしたので、質問させていただいたのです。 このような問題に対しては、どのように解決すればよいのでしょうか。
- proto
- ベストアンサー率47% (366/775)
web上の情報で言えば、Rについて日本語で書かれたマニュアルは少ないようです。 素直に書店に行って、Rについて書かれた本をお金を出して買ってくる方が無難でしょう。 ですがRについてのマニュアルを読む前に、自分が使いたい統計的手法については分かっておかなければなりませんよ。 Rはしょせん計算機でしかありません。 例えば、電卓を使えば√2を計算することは出来ます。しかし、平方根の意味を知らない小学生には計算結果である1.41421356...の意味まで理解することはできません。 Rでも同じです。Rのマニュアルを読めば適当な統計的分析を行うことはできるでしょう。 しかし、分析結果を正しく理解するためにはRとは別に数理統計を学ぶ必要があります。 自分の用いたい統計的手法が分かっているならばRの勉強を。どの統計的手法を使っていいか分からない状態なら、Rより先に数理統計の勉強をしてください。 実際、統計は数値を分析することよりも、分析法を選択したり結果を正しく解釈することの方が何倍も難しいですから。
補足
返答ありがとうございます。 そして、説明不足ですみませんでした。 実は、現在多重比較法について、研究しているのですが、 まず代表的なTukeyの方法をプログラムしようとしています。 しかし、Rについて取り組んでから、まだ日が浅いためどのようにすればよいかわからないのです。 すみませんが、アドバイスをいただけないでしょうか。
- backs
- ベストアンサー率50% (410/818)
Rを研究しているということがよく分かりませんが、簡単にいえば自分でパッケージを作成するようなことをしているわけですか? それとも経済学のある研究で使うために、Rで書かれた関数を探す、あるいは自作したいということですか?
補足
説明不足ですみませんでした。 実は、現在多重比較法について、研究しているのですが、 まず代表的なTukeyの方法をプログラムしようとしています。 しかし、Rについて取り組んでから、まだ日が浅いためどのようにすればよいかわからないのです。 すみませんが、アドバイスをいただけないでしょうか。
お礼
backs様 何回も質問にお答えしていただいてありがとうございます。 おっしゃるとおり、自分には難しい課題ですけど、 残りの休みの期間を使って勉強していきたいと思います。 ありがとうございました。