python金融风控评分卡模型和数据分析微专业课(博主亲自录制视频):http://dwz.date/b9vv
项目联系QQ:231469242
python 2.7
# -*- coding: utf-8 -*-
from statsmodels.stats.multicomp import (pairwise_tukeyhsd,
MultiComparison)
# Import standard packages
import numpy as np
from scipy import stats
import pandas as pd
import variance_check
#数据excel名
excel="sample.xlsx"
#读取数据
df=pd.read_excel(excel)
#获取第一组数据,结构为列表
group_mentaln=list(df.StressReduction[(df.Treatment=="mental")])
group_physical=list(df.StressReduction[(df.Treatment=="physical")])
group_medical=list(df.StressReduction[(df.Treatment=="medical")])
list_groups=[group_mentaln,group_physical,group_medical]
list_total=group_mentaln+group_physical+group_medical
print"equal test-----------------------------------------------------"
# #比较组内的样本是否相等,如果不相等,不适合于tukey等方法
equal_lenth=variance_check.Equal_lenth(list_groups)
if equal_lenth==False:
print("the length of groups are not equal")
multiComp = MultiComparison(df['StressReduction'], df['Treatment'])
tukey=multiComp.tukeyhsd()
summary=multiComp.tukeyhsd().summary()
print(summary)
q=tukey.q_crit
print("q values:",q)
'''
q值
Out[41]: 3.5057698487864877
'''
'''
Multiple Comparison of Means - Tukey HSD,FWER=0.05
===============================================
group1 group2 meandiff lower upper reject
-----------------------------------------------
medical mental 1.5 0.3217 2.6783 True
medical physical 1.0 -0.1783 2.1783 False
mental physical -0.5 -1.6783 0.6783 False
-----------------------------------------------
'''
print("data details:",summary.data)
'''
[['group1', 'group2', 'meandiff', 'lower', 'upper', 'reject'],
[u'medical', u'mental', 1.5, 0.32169999999999999, 2.6783000000000001, True],
[u'medical', u'physical', 1.0, -0.17829999999999999, 2.1783000000000001, False],
[u'mental', u'physical', -0.5, -1.6782999999999999, 0.67830000000000001, False]]
'''
variance_check.py
# -*- coding: utf-8 -*-
'''
用于方差齐性检验
正太性检验
配对相等检验
'''
import scipy,math
from scipy.stats import f
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
# additional packages
from statsmodels.stats.diagnostic import