1.问题描述
欲考察不同教材在不同教学方法下的教学效果。现有3种教材,4种不同的教学方法,教材和教学方法有12种不同的组合,在随机抽取的12个不同的班级进行教学,每个班级按随机抽签的方式确定接受哪一种教学处理。一个学期后,每个班抽取2名被测进行测试,数据如下表所示,试对数据结果进行分析处理。
教材A/教学方法B | ||||
---|---|---|---|---|
83,80 | 90,86 | 98,92 | 69,63 | |
70,61 | 84,78 | 86,83 | 95,90 | |
90,94 | 54,53 | 78,79 | 87,89 |
2.源码实现
import numpy as np
from scipy.stats import f
X = np.array([[[83, 80], [90, 86], [98, 92], [69, 63]],
[[70, 61], [84, 78], [86, 83], [95, 90]],
[[90, 94], [54, 53], [78, 79], [87, 89]]])
a = len(X)
b = len(X[0])
c = len(X[0][0])
SST = np.square(X - X.mean()).sum()
SSA = b * c * np.square(X.mean(axis=2).mean(axis=1) - X.mean()).sum()
SSB = a * c * np.square(X.mean(axis=2).mean(axis=0) - X.mean()).sum()
SSAB = 0
for i in range(0, a):
for j in range(0, b):
SSAB += np.square(X[i][j].mean() - X.mean(axis=2).mean(axis=1)[i] - X.mean(axis=2).mean(axis=0)[j] + X.mean())
SSAB *= c
SSE = SST - SSA - SSB - SSAB
MSA = SSA / (a-1)
MSB = SSB / (b-1)
MSAB = SSAB / ((a-1)*(b-1))
MSE = SSE / (a*b*(c-1))
FA = MSA / MSE
FB = MSB / MSE
FAB = MSAB / MSE
print(f.ppf(0.95, dfn=a-1, dfd=a*b*(c-1)))
print(FA)
print(f.ppf(0.95, dfn=b-1, dfd=a*b*(c-1)))
print(FB)
print(f.ppf(0.95, dfn=(a-1)*(b-1), dfd=a*b*(c-1)))
print(FAB)
3.运行及其结果
$ python3 example.py
3.88529383465
3.87777777778
3.4902948195
13.1259259259
2.99612037752
45.0185185185
4.结果解析
因为,所以教材对教学效果的影响不显著。因为,所以教学方法对教学效果影响显著。因为,所以教材与教学方法的不同组合对教学效果影响显著。
网友评论