import numpy as np
from scipy import stats
group = 3 #输入组数为2
rank = 4 #输入等级数
data = '147 72 28 37 17 9 10 5 4 8 2 3'
table = data.split(' ')
table = [int(x) for x in table]
aaa = np.array(table).reshape(rank, group)
print(aaa)
bbb = np.cumsum(aaa, axis=1)
#print(bbb)
bsum = np.cumsum(bbb, axis=0)
#print(bsum)
ccc = np.append([0], bsum[:, -1][0:-1])
ddd = bbb[:, -1] / 2
#print(ccc,ddd)
eee = [list(item) for item in zip(ddd, ccc)]
#print(eee)
fff = np.cumsum(eee, axis=1)
#print(fff)
ggg = np.sum(aaa)
#print(ggg)
hhh = (fff / ggg)[:, 1]
#print(hhh)
iii = [list(item) for item in zip(hhh, hhh,hhh)]
#print(iii)
jjj = aaa * iii
#print(jjj)
kkk = np.sum(jjj, axis=0) / np.sum(aaa, axis=0)
lll =np.sum(aaa, axis=0)
r1, r2,r3 = np.sum(jjj, axis=0) / np.sum(aaa, axis=0)
n1, n2,n3 =np.sum(aaa, axis=0)
r1l = r1 - 1.96 / np.sqrt(12 * n1)
r1h = r1 + 1.96 / np.sqrt(12 * n1)
r2l = r2 - 1.96 / np.sqrt(12 * n2)
r2h = r2 + 1.96 / np.sqrt(12 * n2)
r3l = r3 - 1.96 / np.sqrt(12 * n3)
r3h = r3 + 1.96 / np.sqrt(12 * n3)
mmm = 12*lll*(kkk-0.5)**2
chisquare = mmm.sum()
#print(chisquare)
#print(r1,r2,r3)
P=2*stats.chi2.pdf(chisquare,2)
print(
'R1={:.3f},95%CI:[{:.3f},{:.3f}]\nR2={:.3f},95%CI:[{:.3f},{:.3f}]\nR3={:.3f},95%CI:[{:.3f},{:.3f}]\nRidit分析结果:卡方值={:.3f},P={:.3f}'
.format(r1, r1l, r1h, r2, r2l, r2h, r3, r3l, r3h, chisquare, P))
python 多样本Ridit分析程序
最新推荐文章于 2024-05-20 18:16:07 发布