# 导入Scipy库的stata模块from scipy import stats as sts
# from scipy.stats import mode# 导入numpy库用于读取数据import numpy as np
# 学习更多help(sts)
data = np.loadtxt("D:\Allcode\python\大数据与python\salary.csv",delimiter =",",usecols=1)# delimiter分割符# usecols读入的列数# skiprows跳过的行数# unpack是否将数据向量输出# encoding编码
data
# 正态分布# 均值
u =1# 方差4
s =2# 实际随机变量取值
k =1
normal = sts.norm.pdf(k,loc = u,scale =2)
normal
0.19947114020071635
3 随机变量的数字特征
3.1 期望
# 二项分布期望# 试验次数
n =5# 成功概率
p =0.2# 期望为np
sts.binom.mean(n,p)
1.0
# 泊松分布期望# 参数λ的值
r =0.1,0.2,0.3# 期望为λ
sts.poisson.mean(mu = r)
array([0.1, 0.2, 0.3])
# 均匀分布期望# 下限
a =100# 上限
b =200# 期望为(a+b)/2
sts.randint.mean(a,b,loc =0.5)
150.0
# 指数分布期望
sts.expon.mean(scale =1/3)
0.3333333333333333
# 正态分布期望
sts.norm.mean(loc =1,scale =2)
1.0
3.2 方差
# 二项分布方差# 试验次数
n =5# 成功概率
p =0.2# 期望为np(1-p)
sts.binom.var(n,p)
0.8
# 泊松分布方差# 参数λ的值
r =0.1,0.2,0.3# 方差为λ
sts.poisson.var(mu = r)
array([0.1, 0.2, 0.3])
# 均匀分布方差# 下限
a =100# 上限
b =200# 方差为(b-a)^2/12
sts.randint.var(a,b,loc =0)
833.25
# 指数分布方差
sts.expon.var(scale =1/3)
0.1111111111111111
# 正态分布方差
sts.norm.var(loc =1,scale =2)
4.0
4 参数估计与假设检验
4.1 置信区间求解
from scipy import stats as sts
# 置信度alpha
a =0.95# (均值)位置参数loc
u =100# (方差)尺度参数scale
s =0.5# 使用正态分布的interval方法
CI = sts.norm.interval(alpha = a,loc = u,scale = s)print("置信区间为:",CI)
置信区间为: (99.02001800772997, 100.97998199227003)
4.2 假设检验
# 单个正态总体均值检验from scipy import stats as sts
# 单个总体的样本数据,总体方差未知
data =[0.33,0.55,0.777,0.555,0.344,0.445,0.666,0.555,0.755,0.456,0.123]# 原假设H_0:X = 0.5,检验上述数据均值是否与0.6存在显著差异
A = sts.ttest_1samp(a = data,popmean =0.65)print("T值为",A[0])print("伴随概率为",A[1],"<0.05,拒绝原假设H_0")