裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

ダメ出し:シミュレーションの条件設定

2012年01月18日 | ブログラミング

http://d.hatena.ne.jp/foo22222/20120115

Nt <- 1000
df1 <- 1
set.seed(101)
ts1 <- rchisq(Nt, df1)
set.seed(101)  # set.seed()で生成される乱数を同じものにする。
ts2 <- rchisq(Nt, df1)
t1 <- sample(ts1, 500, replace = FALSE)
t2 <- sample(ts2, 500, replace = FALSE)
p1 <- pchisq(t1, df1, lower.tail = FALSE)
p2 <- pchisq(t2, df1, lower.tail = FALSE)
plot(p1, p2)

としているが,
ts1 と ts2 は全く等しい(等しいようにしているから等しいのだけど)
ならば,ts1, ts2 の区別はする必要はないので余計なことは不要で

Nt <- 1000
df1 <- 1
set.seed(101)
ts1 <- rchisq(Nt, df1)
t1 <- sample(ts1, 500, replace = FALSE)
t2 <- sample(ts1, 500, replace = FALSE)

でよいし,そもそも rchisq( ) は無限母集団からの乱数抽出なのだから,そこから Nt 個取り出してそれを母集団として sample( ) により無作為抽出をするというような二段階の乱数生成をする必要はない。つまり,

Nt <- 1000
df1 <- 1
set.seed(101)
t1 <- rchisq(500, df1)
t2 <- rchisq(500, df1)
p1 <- pchisq(t1, df1, lower.tail = FALSE)
p2 <- pchisq(t2, df1, lower.tail = FALSE)
plot(p1, p2)

で十分。

コメント (1)    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 良いプログラムとはどういう... | トップ | octave にある vander 関数 »
最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
シミュレーションのイメージにつきまして (foo22222)
2012-01-19 11:39:04
私のブログへのコメントありがとうございます。

このシミュレーションがどのようなことをイメージしているかを説明させていただきます。

ある1つの母集団から、無作為抽出を2回行い(1回の抽出で母集団から1000の標本を抽出)、ある1つのことの独立性の検定を2x2分割表で行います。

そのために、1回目で母集団を作り、sample()関数で母集団から1000個の標本を抽出したつもりでした。

もう一度勉強し直して、シミュレーションを考え直したいと思います。
返信する

コメントを投稿

ブログラミング」カテゴリの最新記事