/**
*
* * @描述: 计算效应量,简单方式 <br/>
* * @方法名: ES <br/>
* * @param x <br/>
* * @param y <br/>
* * @return <br/>
* * @返回类型 double 越大表示两个群体重叠的部分越少 (小效应量: .0~.2 ; 中效应量: .2~.5;大效应量: .5~以上)
* <br/>
* * @创建人 micheal <br/>
* * @创建时间 2019年1月5日下午10:58:11 <br/>
* * @修改人 micheal <br/>
* * @修改时间 2019年1月5日下午10:58:11 <br/>
* * @修改备注 <br/>
* * @since <br/>
* * @throws
*/
public static double ES(double[] x, double[] y) {
double xMean = mean(x);
double yMean = mean(y);
double xSD = standardDeviation(x);
double ySD = standardDeviation(y);
return Mutil.divide(Mutil.subtract(xMean, yMean), xSD, 2);
}
/**
*
* * @描述: 计算效应量,标准方式,更准确 <br/>
* * @方法名: ES2 <br/>
* * @param x <br/>
* * @param y <br/>
* * @return <br/>
* * @返回类型 double 越大表示两个群体重叠的部分越少 (小效应量: .0~.2 ; 中效应量: .2~.5;大效应量: .5~以上)
* <br/>
* * @创建人 micheal <br/>
* * @创建时间 2019年1月5日下午10:58:11 <br/>
* * @修改人 micheal <br/>
* * @修改时间 2019年1月5日下午10:58:11 <br/>
* * @修改备注 <br/>
* * @since <br/>
* * @throws
*/
public static double ES2(double[] x, double[] y) {
double xMean = mean(x);
double yMean = mean(y);
double xVariance = variance(x);
double yVariance = variance(y);
return Mutil.divide(Mutil.subtract(xMean, yMean), Math.sqrt(Mutil.divide(Mutil.add(xVariance, yVariance), 2, 2)), 2);
}
测试代码,打印结果:-0.03,-0.04
double[] x1 = { 7, 3, 3, 2, 3, 8, 8, 5, 8, 5, 5, 4, 6, 10, 10, 5, 1, 1, 4, 3, 5, 7, 1, 9, 2, 5, 2, 12, 15, 4 };
double[] y1 = { 5, 4, 4, 5, 5, 7, 8, 8, 9, 8, 3, 2, 5, 4, 4, 6, 7, 7, 5, 6, 4, 3, 2, 7, 6, 2, 8, 9, 7, 6 };
log.info("计算[效应量] 简单:" + ES(x1, y1));
log.info("计算[效应量] 标准:" + ES2(x1, y1));