统计检验/jupyter循环进度条展示

分析建模,日常问题整理(二十四)


2019.4.10~2019.4.28


    1. 相关检验
# 相关系数
pd.DataFrame(pd.DataFrame([[1,1,0,0,0],[0,1,1,0,3]]).T.rename(columns = {0:'A',1:'B'})).corr()
    1. 正态检验
import scipy
import scipy.stats as scs
import scipy.stats as scs
def normality_tests(arr):
    """
    Tests for normality distribution of given data set
    :param arr: ndarray
    object to generate statistics on
    :return:
    """
    print("Skew of data set  %14.3f" % scs.skew(arr))
    print("Skew test p-value %14.3f" % scs.skewtest(arr)[1])
    print("Kurt of data set  %14.3f" % scs.kurtosis(arr))
    print("Kurt test p-value %14.3f" % scs.kurtosistest(arr)[1])
    print("Norm test p-value %14.3f" % scs.normaltest(arr)[1])

normality_tests([-1,-0.5,-0.4,-0.3,-0.2,0,0.2,0.3,0.4,0.5,1])
# Skew of data set           0.001
# Skew test p-value          0.292
# Kurt of data set           0.001
# Kurt test p-value          0.625
# Norm test p-value          0.509

KS检验

scipy.stats.kstest (rvs, cdf, args = ( ), N = 20, alternative ='two-sided', mode ='approx')

Anderson 检验,该方法是由 scipy.stats.kstest 改进而来的,可以做正态分布、指数分布、Logistic 分布、Gumbel 分布等多种分布检验。默认参数为 norm,即正态性检验。

scipy.stats.anderson (x, dist ='norm' )

Shapiro-Wilk test检验

scipy.stats.shapiro(x)
    1. 卡方检验

目的:判别两组数据是否有差别?比较理论频数和实际频数的吻合程度或者拟合优度问题?比较实际数据和理论分布之间的差异有多大。
原假设
H0:两组数据无差异(一般选择有绝对优势出现的事件,如果发生的小概率事件就不得不拒绝掉原假设)
H1:两组数据不是无差异
卡方统计量=x^2=\sum(f_i-np_i)^2/np_i,在0假设成立的情况下服从自由度为k-1的卡方分布。
np_i 表示理论分布出现的频数或者值,f_i表示实际值。

from  scipy.stats import chi2_contingency
kf = chi2_contingency(np.array([[1,2,1,1,2,1],[1,2,2,1,1,2]]))
print('chisq-statistic=%.4f, p-value=%.4f, df=%i expected_frep=%s'%kf)

表1:第X1个变量出现的实际值

Y V1 V2 V3 总计
0 4 7 6 17
1 1 3 6 10
总计 5 10 12 27

表2:第X1个变量出现的理论值

Y V1 V2 V3 总计
0 5*17/27=3.1 6.3 7.6 17
1 5*10/27=1.9 3.7 4.4 10
总计 5 10 12 27

卡方值 =
(4-3.1)^2/3.1+(7-6.3)^2/6.3+(6-7.6)^2/7.6+(1-1.9)^2/1.9+(3-3.7)^2/3.7+(6-4.4)^2/4.4 =

两个表的数字差距越大,两个表的独立性越强约偏离均匀的分布,01在各组的分布越不均匀,粗分类结果越好(对y的区分效果越好)。
卡方检验和IV值都可以用来评价变量的作用。

from  scipy.stats import chi2_contingency
kf = chi2_contingency(np.array([[4,7,6],[1,3,6]]))
# 这里需要算0两类的变量分布
print('chisq-statistic=%.4f, p-value=%.4f, df=%i expected_frep=%s'%kf)

output:
chisq-statistic=1.6994, p-value=0.4275, df=2 expected_frep=[[ 3.14814815  6.2962963   7.55555556]
 [ 1.85185185  3.7037037   4.44444444]]
    1. T检验

T检验,亦称student t检验(Student's t test),主要用于样本含量较小(例如n < 30),总体标准差未知的总体。T检验是用t分布理论来推论差异发生的概率,从而比较两个平均数的差异是否显著。
单总体检验,t分布

单总体t.jpg

双总体检验,t分布
双总体t.jpg

H0:
单总体,样本均值是否等于总体均值20,结论:P<0.05,等于总体均值

from scipy import stats
import pandas as pd
dataSer=pd.Series([15.6,16.2,22.5,20.5,16.4,19.4,16.6,17.9,12.7,13.9])
pop_mean=20
t,p_twoTail=stats.ttest_1samp(dataSer,pop_mean)
p_oneTail = p_twoTail/2
print("t=",t,"p_twoTail=",p_twoTail, "p_oneTail = ", p_oneTail)
output:t= -3.00164952589 p_twoTail= 0.0149164142489 p_oneTail =  0.00745820712445

H0:两样本均值无差异

rvs1 = stats.norm.rvs(loc=5,scale=10,size=500)  
rvs2 = stats.norm.rvs(loc=5,scale=10,size=500)
# 检验两样本均值是否有显著差异
# 首先,检验方差是否相等
stats.levene(rvs1, rvs2)

# 如果p>0.05方差相等
stats.ttest_ind(rvs1,rvs2)

# 如果p<0.05方差不相等
stats.ttest_ind(rvs1,rvs2, equal_var = False)
    1. 卡方检验和T检验区别

T检验主要检验均值,卡方检验主要检验整体差异?

    1. jupyter进度条展示
from tqdm import tqdm_notebook,tnrange
for i in tqdm_notebook(range(0, new_loc.shape[0], 10),desc = 'lst loop'):
      print(i)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,743评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,296评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,285评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,485评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,581评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,821评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,960评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,719评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,186评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,516评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,650评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,936评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,757评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,991评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,370评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,527评论 2 349

推荐阅读更多精彩内容