1.问题描述
对2531名学生和教师进行了抽样调查,调查对象分类及意见分类如下表所示。计算调查对象和态度之间的列联相关系数,并进行显著性检验。
学生和教师的抽样调查 | 赞成 | 不置可否 | 反对 |
---|---|---|---|
低年级学生 | 446 | 212 | 319 |
高年级学生 | 273 | 193 | 324 |
教师 | 262 | 325 | 177 |
2.源码实现
import numpy as np
from scipy.stats import chi2
M = np.array([[446, 212, 319],
[273, 193, 324],
[262, 325, 177]])
a = np.array(M.sum(axis=0))
b = np.array(M.sum(axis=1))
e = 0;
t = a.sum()
for i in range(0, len(a)):
for j in range(0, len(b)):
# print([M[i][j], a[i], b[j]])
e += M[j][i]*M[j][i] / (a[i]*b[j])
d = t * (e - 1)
c = np.sqrt(d / (t + d))
print(chi2.ppf(0.99, df=4))
print(d)
print(c)
3.运行及其结果
$ python3 example.py
13.276704136
130.017244775
0.221042933109
4.结果分析
因为,所以求得的列联系数
具有显著意义。
网友评论