/* * Cohen's dの計算。比較する集合のサンプル数は等しいものとする。 * 参考文献: * https://en.wikipedia.org/wiki/Effect_size#Cohen.27s_d * http://www.mizumot.com/method/mizumoto-takeuchi.pdf * http://www.socscistatistics.com/effectsize/Default3.aspx */ #include #include static double calc_cohens_d(double mean1, double sd1, double mean2, double sd2) { double d, s; s = sqrt((sd1 * sd1 + sd2 * sd2) / 2); d = (mean1 - mean2) / s; return d; } int main(int argc, char *argv[]) { char name[256]; double d1, mean1_1, sd1_1, mean1_2, sd1_2; double d2, mean2_1, sd2_1, mean2_2, sd2_2; /* d1:(集合1-1, 集合1-2) d2:(集合2-1, 集合2-2) を計算 */ while (scanf("%s %lf %lf %lf %lf %lf %lf %lf %lf", name, &mean1_1, &sd1_1, &mean1_2, &sd1_2, &mean2_1, &sd2_1, &mean2_2, &sd2_2) != EOF) { d1 = calc_cohens_d(mean1_1, sd1_1, mean1_2, sd1_2); d2 = calc_cohens_d(mean2_1, sd2_1, mean2_2, sd2_2); printf("%s %f %f\n", name, d1, d2); } return 0; }