常用统计算法JAVA实现 - 卡方检验(16)

/**
	 * 
	 * @描述:  卡方检验/拟合优度  
 * @方法名: ChiSquare
 * @param values
 * @return
 * @返回类型 double (1、随机出现的结果;2、不是随机出现的结果) 参考表B5
 * @创建人 micheal
 * @创建时间 2019年1月7日下午3:51:57
 * @修改人 micheal
 * @修改时间 2019年1月7日下午3:51:57
 * @修改备注
 * @since
 * @throws   */ public static double ChiSquare(double...values) { int n = values.length; double[] O = new double[n]; double[] E = new double[n]; double[] D = new double[n]; double[] OESQ = new double[n]; double[] OESQE = new double[n]; double oSum = 0; double OESQESum = 0; for (int i = 0; i < n; i++) { O[i] = values[i]; oSum = oSum + values[i]; } for (int i = 0; i < n; i++) { E[i] = oSum / n; D[i] = O[i] - (oSum / n); OESQ[i] = Math.pow((O[i] - (oSum / n)), 2); OESQE[i] = Math.pow((O[i] - (oSum / n)), 2) / (oSum / n); OESQESum = OESQESum + Math.pow((O[i] - (oSum / n)), 2) / (oSum / n); } return OESQESum; }

测试代码,打印结果:20.6

log.info("计算[卡方]:" + ChiSquare(23,17,50));

 

你可能感兴趣的:(卡方检验)