乱数の2次元適合度検定とそのCプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
wareatama

乱数の2次元適合度検定とそのCプログラム

#1

投稿記事 by wareatama » 12年前

初めまして、になります。どなたかご教授よろしくお願いします。

本題ですが今回、乱数を合同式法で発生させてそれを2次元適合度検定で検定するCプログラムを作ろうとしています。
しかし、プログラムを組む以前に2次元適合度検定についてもイマイチ理解できず説明をよんでとりあえず1次元適合度検定をするプログラムを製作し、そこから改変しようと試みるも案の定行き詰ってしまいました。
そこで、どなたか2次元適合度検定の説明とそのCプログラムを作成する手助けをしていただけないでしょうか。作成中のソースの一部を下に一応載せておきます。(x[N]に発生させた乱数が格納されています。f[],g[]は期待度数を格納)

コード:

//2次元適合度判定を行うfをx座標、gをy座標としたと仮定して2次元平面を考える
	for(i=1;i<(N+1)/2;i++){
		for(k=1;k<M+1;k++){
			if(x[2*i-1]>(double)(k-1)/M && x[2*i-1]<=(double)k/M){
				f[k]++;
			} 
			if(x[2*i]>(double)(k-1)/M && x[2*i]<=(double)k/M){
				g[k]++;
			}		
		}
	}
この下でカイ2乗を計算して境界値と比べる?のだと思っています

アバター
みょん
記事: 16
登録日時: 12年前
住所: 京都
連絡を取る:

Re: 乱数の2次元適合度検定とそのCプログラム

#2

投稿記事 by みょん » 12年前

2次元適合度検定の前に、まずは1次元の場合に関しては理解されているでしょうか?
要は出たそれぞれの目に対してカイスクエア(分散)を求めればよいだけですね。

適当に検索して出てきた文章などから察するに、2次元の場合でも事情はほとんど変わらないようです。
単純に、検証したいデータ列を2次元の方向で走査するというだけだと思います。
(実際私が見たものでは、「奇数番目」と「偶数番目」の2次元で適合度検定を行なっていました)
今回のように、特にデータがもともと2次元的な性質を持っている列でないことからも、それこそ奇数番目と偶数番目を2軸としておいても良いと思います。
(というか、そもそも2次元で考える必要があるのですか?データ列を見る限り1次元でも問題ないように思えますが)

また、行き詰まったらならどこで行き詰っていて、そこからどうしたいのかをコードと共に示さないと中々他の方も答えづらいと思いますよ。

閉鎖

“C言語何でも質問掲示板” へ戻る