大师兄的数据分析学习笔记(五):探索性数据分析(四)

2022-04-22  本文已影响0人  superkmi

大师兄的数据分析学习笔记(四):探索性数据分析(三)
大师兄的数据分析学习笔记(六):探索性数据分析(五)

四、多因子与复合分析

1. 假设检验

第一步:建立原假设H_0(包含等号),H_0的反命题为H_1,也叫备择假设。
第二步:选择检验统计量,检验统计量是根据数值的均值、方差等性质构造的一个转换函数,目的是让这个数据符合一个已知分布。
第三步: 根据显著水平(一般为0.05,\alpha),确定拒绝域,也就是说要求数据有95%的可能与某分布一致。
第四步: 计算p值或者样本统计值,作出判断。

>>>from astropy.modeling import models,fitting
>>>import numpy as np
>>>import matplotlib.pyplot as plt

>>>def func(x,miu,sigma):
>>>    return 1./np.sqrt(2*np.pi)/sigma*np.exp(-(x-miu)**2/2/sigma**2)

>>># 生成正态分布
>>>x = np.linspace(0, 1, 100)
>>>y = func(x, 0.5, 0.2)
>>>y += np.random.normal(0., 0.02, x.shape)
>>>plt.plot(x, y)
>>>plt.xlabel('x')
>>>plt.ylabel('y')
>>>plt.show()

>>># 使用astropy进行拟合
>>>g_init = models.Gaussian1D(amplitude=1., mean=0, stddev=1.)
>>>fit_g = fitting.LevMarLSQFitter()
>>>g = fit_g(g_init, x, y)
>>>print(g.mean.value, g.stddev.value)
0.4998641574199107 0.19898961723032316
2. 卡方检验

H_0:总体X的分布函数为F(x).
如果总体分布为离散型,则假设具体为
H0:总体X的分布律为P{X=xi}=pi, i=1,2,...

- 已打疫苗 未打疫苗 合计
轻症 90(75) 60(75) 150
重症 10(25) 40(25) 50
合计 100 100 200
>>>import scipy.stats as ss

>>>res = ss.chi2_contingency([[90,60],[10,40]])
>>>print(f'stat:{res[0]}')
>>>print(f'p:{res[1]}')
>>>print(f'dof:{res[2]}')
>>>print(f'expected:{res[3]}')
stat:22.426666666666666
p:2.183216533714857e-06
dof:1
expected:[[75. 75.]
 [25. 25.]]
3. 方差检验

(1) 实验条件,即不同的处理造成的差异,称为组间差异。用变量在各组的均值与总均值之偏差平方和的总和表示,记作SSb,组间自由度dfb。
(2) 随机误差,如测量误差造成的差异或个体间的差异,称为组内差异,用变量在各组的均值与该组内变量值之偏差平方和的总和表示, 记作SSw,组内自由度dfw。
总偏差平方和 SSt = SSb + SSw。

甲组 已租 丙组
36 28 30
50 44 27
30 29 42
33 36 45
41 23 45
>>>import scipy.stats as ss

>>>data1 = [36,50,30,33,41]
>>>data2 = [28,44,29,36,23]
>>>data3 = [30,27,42,45,45]
>>>res = ss.f_oneway(data1,data2,data3)
>>>print(f"statistic:{res[0]}")
>>>print(f"pvalue:{res[1]}")
statistic:0.8593981253083374
pvalue:0.44791070261692767
上一篇下一篇

猜你喜欢

热点阅读