/**
*
* * @描述: 内在一致性信度 <br/>
* * @方法名: ICR <br/>
* * @param values <br/>
* * @return <br/>
* * @返回类型 double 克隆巴赫系数 [.00 ~ +1.00],越大越可信 <br/>
* * @创建人 micheal <br/>
* * @创建时间 2019年1月4日下午11:38:24 <br/>
* * @修改人 micheal <br/>
* * @修改时间 2019年1月4日下午11:38:24 <br/>
* * @修改备注 <br/>
* * @since <br/>
* * @throws <br/>
*
*/
public static double ICR(double[]... values) {
int k = values.length;
double varianceSum = 0.0;
double scoreSum = 0.0;
double[] Tscore = new double[values[0].length];
for (int i = 0; i < k; i++) {
double[] x = values[i];
varianceSum = varianceSum + variance(x);
for (int j = 0; j < x.length; j++) {
Tscore[j] = Tscore[j] + x[j];
}
}
scoreSum = variance(Tscore);
return Mutil.multiply(k / (k - 1), Mutil.divide(Mutil.subtract(varianceSum, scoreSum), varianceSum, 2));
}
测试代码,打印结果:-0.24
double[] p1 = { 3, 4, 3, 3, 3, 4, 2, 3, 3, 3 };
double[] p2 = { 5, 4, 4, 3, 4, 5, 5, 4, 5, 3 };
double[] p3 = { 1, 3, 4, 5, 5, 5, 5, 4, 4, 2 };
double[] p4 = { 4, 5, 4, 2, 4, 3, 3, 2, 4, 3 };
double[] p5 = { 1, 3, 4, 1, 3, 2, 4, 4, 3, 2 };
log.info("计算[克隆巴赫系数]:" + ICR(p1, p2, p3, p4, p5));