★ Rによるシュミレーション ★

9338. Rによるシュミレーション 波音 2006/02/06 (月) 12:17
└9339. Re: Rによるシュミレーション 青木繁伸 2006/02/06 (月) 13:17
 └9343. Re^2: Rによるシュミレーション 波音 2006/02/06 (月) 15:50
  └9344. Re^3: Rによるシュミレーション 青木繁伸 2006/02/06 (月) 16:56
   └9348. Re^4: Rによるシュミレーション 波音 2006/02/06 (月) 17:36


9338. Rによるシュミレーション 波音  2006/02/06 (月) 12:17
中心極限定理のシュミレーションをRでしてみようと考えて,こちら(http://theory.chem.sci.kobe-u.ac.jp/~takada/comp-chem/central-limit.html)のwebサイトを参考にやってみたのですが,
x<-runif(10000)
sampling<-function(x,n){
return(x[order(runif(length(x)))][1:n])
}
myprog<-function(a){
for(i in 1:100)
print(mean(sampling(x,a)))
}
myprog(4)
のようにすると,100個のデータが表示されます。それを1度txtファイルなどに保存してからread.table()で読み込んでからヒストグラムを作っていたのですが,わざわざそんなことをしなくてもmyprogの関数内でヒストグラムを作るようにするにはどうすればよいでしょうか。よく分からなかったのでとりあえずこれで4,9,16,…,1000の場合を地道にやってしまったのですが,,,

     [このページのトップへ]


9339. Re: Rによるシュミレーション 青木繁伸  2006/02/06 (月) 13:17
やり方はいろいろありますが

myprog <- function(a)
{
hist(apply(sapply(1:100, function(i) sampling(x,a)), 2, mean))
}
sapply(c(4,9,16,100,1000), myprog)

     [このページのトップへ]


9343. Re^2: Rによるシュミレーション 波音  2006/02/06 (月) 15:50
for構文で繰り返しをしなくても関数aplly()を使って結果のリストを返すようにしてあげればよかったのですね。

hist()内のsapply()は「10000個のデータからa個のデータをサンプリングする」という行為を100回繰り返して,そのそれぞれの平均をapply()で返している。ということですか?

     [このページのトップへ]


9344. Re^3: Rによるシュミレーション 青木繁伸  2006/02/06 (月) 16:56
> hist()内のsapply()は「10000個のデータからa個のデータをサンプリングする」という行為を100回繰り返して,そのそれぞれの平均をapply()で返している。ということですか?

そうです

     [このページのトップへ]


9348. Re^4: Rによるシュミレーション 波音  2006/02/06 (月) 17:36
回答ありがとうございます,とても参考になりました。他にも自分でいろいろ試してやってみます。

     [このページのトップへ]


● 「統計学関連なんでもあり」の過去ログ--- 037 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る