《商务与经济统计》Python实现笔记(一)

独立样本T检验(两样本均值估计两总体均值大小关系)

import pandas as pd
import numpy as np
from scipy import stats

# 传数据
data = pd.read_excel(r"C:\Users\liuhao\Desktop\python_work\Python数据分析与挖掘实战\chapter8\test\data\data.xls")
d1 = data.iloc[:,:1]
d2 = data.iloc[:,1:2]
print(stats.ttest_ind(d1,d2,equal_val=True))

#传样本参数
from scipy.stats import ttest_ind_from_stats
ttest_ind_from_stats(mean1=325, std1=40, nobs1=12,
              mean2=286, std2=44, nobs2=12)
#返回双尾p值

# 方差齐性检测
d1 = data.iloc[:,:1].values.T
d2 = data.iloc[:,1:2].values.T
d3 = pd.Series(d1[0]) # levene函数传递的参数为一维数组,需要进行转换
d4 = pd.Series(d2[0])
print(stats.levene(d3,d4))
#p值大于显著水平则具有方差齐性
#如果两总体不具有方差齐性,需要将equal_val参数设定为“False”

匹配样本T检验(估计两匹配样本的总体均值大小关系)

from scipy.stats import ttest_rel
import numpy as np
d1 = np.array([6,5,7,6,6,6])
d2 = np.array([5.4,5.2,6.5,5.9,6,5.8])
ttest_rel(d1,d2) #返回双尾p值

二项分布假设性检验(样本中事件发生的频率估计总体事件概率)

from scipy import stats
stats.binom_test(101, n=400, p=0.2, alternative='greater')#事件发生的频率实为100

二项式分布是一种离散分布,如果你想测试P(X>=N),就必须将它更改为P(X>N+1)

import numpy as np
from scipy import stats

#自定义函数计算p值
def binomtest_p(x, p, n):
    """
    x:事件发生的次数
    n:样本量
    p:假设检验的概率
    return:返回单尾p值
    """
    p_success = x/n
    z = (p_success - p)/np.sqrt(p*(1-p)/n)
    p_value = stats.norm.sf(z)
    return (z,p_value)

两个总体比率的假设检验

from scipy import stats
import numpy as np

def test(n1,p1,n2,p2):
    
    p = (n1*p1+n2*p2)/(n1+n2)
    z = (p1-p2)/np.sqrt(p*(1-p)*((1/n1)+(1/n2)))
    p_value = stats.norm.sf(z)
    return (z,p_value)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值