

数据

算法和EXCEL实现
第一步:计算组内标准差








python实现
data =[[74.03, 74.002, 74.019, 73.992, 74.008], [73.995, 73.992, 74.001, 74.011, 74.004], [73.988, 74.024, 74.021, 74.005, 74.002], [74.002, 73.996, 73.993, 74.015, 74.009], [73.992, 74.007, 74.015, 73.989, 74.014], [74.009, 73.994, 73.997, 73.985, 73.993], [73.995, 74.006, 73.994, 74.0, 74.005], [73.985, 74.003, 73.993, 74.015, 73.988], [74.008, 73.995, 74.009, 74.005, 74.004], [73.998, 74.0, 73.99, 74.007, 73.995], [73.994, 73.998, 73.994, 73.995, 73.99], [74.004, 74.0, 74.007, 74.0, 73.996], [73.983, 74.002, 73.998, 73.997, 74.012], [74.006, 73.967, 73.994, 74.0, 73.984], [74.012, 74.014, 73.998, 73.999, 74.007], [74.0, 73.984, 74.005, 73.998, 73.996], [73.994, 74.012, 73.986, 74.005, 74.007], [74.006, 74.01, 74.018, 74.003, 74.0], [73.984, 74.002, 74.003, 74.005, 73.997], [74.0, 74.01, 74.013, 74.02, 74.003], [73.982, 74.001, 74.015, 74.005, 73.996], [74.004, 73.999, 73.99, 74.006, 74.009], [74.01, 73.989, 73.99, 74.009, 74.014], [74.015, 74.008, 73.993, 74.0, 74.01], [73.982, 73.984, 73.995, 74.017, 74.013]]#计算每行平均数
row_means = [sum(row) / len(row) for row in data]
#计算行的每个值和平均数之差的平方
squared_diffs = [[(x - mean)**2 for x in row] for row, mean in zip(data, row_means)]
#对所有结果求和
total_sum = sum(sum(row) for row in squared_diffs)
#计算自由度和标准差
degrees_of_freedom=len(data)*(sizes-1)
pooled_std_dev = np.sqrt(total_sum/degrees_of_freedom)
#计算C4(d+1),【标准差修正用】
c4 = np.sqrt(2/degrees_of_freedom)*gamma((degrees_of_freedom+1)/2)/gamma(degrees_of_freedom/2)
#修正标准差,即组内标准差
pooled_std_dev_unbiased = pooled_std_dev/c4
print("组内标准差",pooled_std_dev_unbiased)