トレンドテスト



補足記事がこちら

※この記事の式とソースは、トレンドカイ自乗テストのそれである。Cochran-Armitage trendテストは補足記事。

SNPジェノタイプデータについて、Armitage's trend testを付け加える用ができた。エクセルはこちら

検算はこちらのサイトの例で実施。

式はY^2=¥frac{N(N(r_1+2r_2)-R(n_1+2n_2))^2}{RS(N(n_1+4n_2)-(n_1+2n_2)^2)}

ただし、2x3の分割表が

r_0,r_1,r_2,R

s_0,s_1,s_2,S

n_0,n_1,n_2,N

のような場合


public static double trendChi(double[][] data){
double N=0;
double R=0;
double S=0;
double[] n = new double[data[0].length];
for(int i=0;i<data.length;i++){
for(int j=0;j<data[i].length;j++){
N+=data[i][j];
if(i==0){
R+=data[i][j];
}else if(i==1){
S+=data[i][j];
}
n[j]+=data[i][j];
}
}
//System.out.println("data[0][1] data[0][2] "+data[0][1] + " " + data[0][2]);
//System.out.println("N="+N+" R="+R+" S="+S);
//System.out.println("n1n2n3="+n[0]+" "+n[1]+" "+n[2]);
double Y=(N*Math.pow((N*(data[0][1]+2*data[0][2])-R*(n[1]+2*n[2])),2))/
(R*S*(N*(n[1]+4*n[2])-Math.pow((n[1]+2*n[2]),2)));
//System.out.println("Y="+Y);
double s=Math.pow(3,2);
//System.out.println("3^2="+s);
return Y;
}