from scipy.stats import f
def f_test(n1,n2,sig_squre1,sig_square2):
"""
sig_square1>sig_square2
"""
f = sig_sqaure1/sig_square2
return f.sf(f,n1,n2)#单尾p值
多个总体比率相等性检验(观察频率与期望频率的卡方检验)
import pandas as pd
import numpy as np
from scipy import stats
data = pd.read_excel(r"C:\Users\liuhao\Desktop\a.xls")
import pandas as pd
import numpy as np
from scipy import stats
data = pd.read_excel(r"C:\Users\liuhao\Desktop\a.xls",index_col=0)
data["sum"] = data.sum(axis="columns")
data["fre"] = data["是"]/data["sum"]
chi_square = stats.chi2.ppf(0.95,df=2)
a = []
for i in list(range(len(data.index))):
for j in list(range(i+1,len(data.index))):
p = abs(data.iloc[i,3] - data.iloc[i+1,3])
cv = np.sqrt(5.991)*np.sqrt((data.iloc[i,3]*(1-data.iloc[i,3])/data.iloc[i,2])+(data.iloc[j,3]*(1-data.iloc[j,3])/data.iloc[j,2]))
a.append([p,cv])
# 若p>cv,则差异显著
import pandas as pd
import numpy as np
from scipy import stats
data = pd.read_excel(r"C:\Users\liuhao\Desktop\s.xls",index_col=0)
stats.chi2_contingency(data)