- 1 名前:132人目の素数さん mailto:sage [2011/01/09(日) 17:31:49 ]
- R は統計計算とグラフィックスのための言語・環境です。
統計計算で重宝するデータ型や、複数要素を処理する演算や関数、 解析結果を表示するグラフィックなど、多彩な機能を提供します。 ●関連サイト The R Project www.r-project.org/ RjpWiki www.okada.jp.org/RWiki/ リンク集 www.okada.jp.org/RWiki/?%A5%EA%A5%F3%A5%AF%BD%B8
- 381 名前:132人目の素数さん [2012/02/02(木) 16:52:09.32 ]
- >>380
無理やりの処理だが、こんなんじゃ駄目? mypois <- function(n=50,sum=150,adjtimes=10){ myvec <- rep(0,times=n) mysum <- 0 for(i in 1:adjtimes){ mysum <- sum(myvec) myvec <- myvec + sign(sum-mysum)*rpois(n,abs(sum-mysum)/n) myvec[myvec < 0] <- 0 if( abs(sum-mysum) == 0 ){ break } } return(myvec) } > x <- mypois(50,150) > x [1] 3 2 3 2 5 3 4 5 4 0 1 1 5 4 6 3 5 5 0 4 4 3 4 5 4 7 1 4 1 2 1 2 3 2 1 3 7 2 [39] 0 2 2 3 0 1 3 6 3 4 2 3 > sum(x) [1] 150
- 382 名前:381 mailto:sage [2012/02/02(木) 17:00:53.33 ]
- 0から6になってなかったのと、計算の順番がおかしかったので修正した。
mypois <- function(n=50,sum=150,max=6,adjtimes=10){ myvec <- rep(0,times=n) mysum <- 0 for(i in 1:adjtimes){ myvec <- myvec + sign(sum-mysum)*rpois(n,abs(sum-mysum)/n) myvec[myvec < 0] <- 0 myvec[myvec > max] <- max mysum <- sum(myvec) if( abs(sum-mysum) == 0 ){ break } } return(myvec) } > x <- mypois(50,150,6) > x [1] 1 6 1 0 5 3 5 1 2 6 3 3 6 3 3 3 3 3 1 4 2 3 3 0 5 4 3 6 3 5 2 4 4 0 2 1 3 3 [39] 2 4 0 2 1 3 6 4 4 2 1 6 > sum(x) [1] 150
- 383 名前:381 [2012/02/02(木) 17:33:39.03 ]
- 青木先生のところの poissondist に嵌めたら、今一つなのは、
0〜6からはみ出たデータを丸めたからかな。上手い方法がないものかねぇ。 > x <- mypois(50,150,6) > x [1] 5 2 1 3 4 4 3 4 3 0 5 5 3 3 1 2 4 4 4 2 5 0 3 4 2 2 3 4 4 1 6 1 1 5 4 4 2 4 [39] 2 5 1 3 2 0 5 2 5 4 1 3 > poissondist(hist(x,plot=F)$counts) ポアソン分布への適合度の検定 data: hist(x, plot = F)$counts X-squared = 9.7821, df = 4, p-value = 0.04426 sample estimates: n lambda 50.00 2.06
|

|