概念
符号检验 ( sign test ) 是非参数统计中最古老的检验方法之一,仅通过符号 “+” 和 “-” 的个数来检验分位数。
实例 & 代码
现有28位学生某门课程的成绩数据,为[ 95 , 89 , 68 , 90 , 88 , 60 , 81 , 67 , 60 , 60 , 60 , 63 , 60 , 92 , 60 , 88 , 88 , 87 , 60 , 73 , 60 , 97 , 91 , 60 , 83 , 87 , 81 , 90 ],问80分是否可以作为学生成绩的3/4分位数?显著性水平为0.01。
import numpy as np
import pandas as pd
import scipy.stats as stats
def sign_test(list_c,q,u):
lst=list_c.copy()
n=len(lst)
neg=pos=0
for i in lst:
if i<u:
neg+=1
elif i>u:
pos+=1
else:
continue
k=min(neg,pos)
n1=pos+neg
p=2*stats.binom.cdf(k,n1,q)
print('neg:%i pos:%i p-value:%f'%(neg,pos,p))
sign_test([95,89,68,90,88,60,81,67,60,60,60,63,60,92,
60,88,88,87,60,73,60,97,91,60,83,87,81,90],0.75,80)
结果如下:
neg:13 pos:15 p-value:0.002237
p值小于0.01,因而认为3/4分位数不是80。