Python:Python数据分析基础教程/王斌会 第六章 数据的统计分析

图书学习打卡:Python数据分析基础教程/王斌会 第六章 数据的统计分析

在这里插入图片描述

6.1 随机变量及其分布

6.1.1 均匀分布

在这里插入图片描述

6.1.2 正态分布

在这里插入图片描述

##6.1 随机变量及其分布
####6.1.1 均匀分布
a=0;b=1;y=1/(b-a)
plt.plot(a,y); plt.hlines(y,a,b);
plt.show()
#plt.vlines(0,0,1);plt.vlines(1,0,1);

#####(1)整数随机数
import random
random.randint(10,20)  #[10,20]上的随机整数

#####(2)实数随机数
random.uniform(0,1)    #[0,1]上的随机实数

#####(3)整数随机数列
import numpy as np
np.random.randint(10,21,9)  #[10,20]上的随机整数

#####(4)实数随机数列
np.random.uniform(0,1,10)   #[0,1]上的10个随机实数=np.random.rand(10)

###6.1.2 正态分布
#####(2)标准正态分布
from math import sqrt,pi   #调用数学函数,import math as *
x=np.linspace(-4,4,50);
y=1/sqrt(2*pi)*np.exp(-x**2/2);
plt.plot(x,y);
plt.show()
####################################################
####################################################
####################################################
import scipy.stats as st  #加载统计方法包
P=st.norm.cdf(2);P

'''加载自定义库,在当前目录下建立DaPy1func.py函数库即可'''
import DaPy_fun as da
'''标准正态曲线面积(概率) '''
da.norm_p(-1,1)         #68.27%
da.norm_p(-2,2)         #94.45%
da.norm_p(-1.96,1.96)   #95%
da.norm_p(-3,3)         #99.73%
da.norm_p(-2.58,2.58)   #99%

za=st.norm.ppf(0.95);za   #单侧
[st.norm.ppf(0.025),st.norm.ppf(0.975)]  #双侧

#####(3)正态随机数
np.random.normal(10,4,5)  #产生5个均值为10标准差为4的正态随机数
np.random.normal(0,1,5)   #生成5个标准正态分布随机数

'''一页绘制四个正态随机图 '''
fig,ax = plt.subplots(2,2)
for i in range(2):
    for j in range(2):
        ax[i,j].hist(np.random.normal(0,1,500),bins = 50)
plt.subplots_adjust(wspace = 0,hspace=0)

z=np.random.normal(0,1,100)
#cnts, bins = np.histogram(z, bins=50, normed=True)
#bins = (bins[:-1] + bins[1:]) / 2
#plt.hist(z,bins=50,density=True)
#plt.plot(bins, cnts)
#plt.hist(z,density=True)[0]
#plt.hist(z,density=True)[1]
import seaborn as sns
sns.distplot(z)

st.probplot(BSdata.身高, dist="norm", plot=plt); #正态概率图
st.probplot(BSdata['支出'], dist="norm", plot=plt);

6.2 统计分析基础

6.2.1 统计量的概念

在这里插入图片描述

6.2.2 统计量的分布

在这里插入图片描述

##6.2 数据分析统计基础
###6.2.1 的 统计量的
#####(1)简单随机抽样
np.random.randint(0,2,10)  #[0,2)上的10个随机整数
i=np.random.randint(1,53,6);i #抽取10个学生,[1,52]上的6个整数
BSdata.iloc[i]       #随机抽取的6个学生信息
BSdata.sample(6)    #直接抽取6个学生的信息

###6.2.2 统计量的分布
def norm_sim1(N=1000,n=10):    # n样本个数, N模拟次数(即抽样次数)
    xbar=np.zeros(N)            #模拟样本均值
    for i in range(N):          #[0,1]上的标准正态随机数及均值
       xbar[i]=np.random.normal(0,1,n).mean()
    sns.distplot(xbar,bins=50)  #plt.hist(xbar,bins=50)
    print(pd.DataFrame(xbar).describe().T)
norm_sim1()
norm_sim1(10000,30)
#sns.distplot(norm_sim1())  #plt.hist(norm_sim1())
#sns.distplot(norm_sim1(n=30,N=10000)) #plt.hist(norm_sim1(n=30,N=10000))

def norm_sim2(N=1000,n=10):
    xbar=np.zeros(N)
    for i in range(N):
       xbar[i]=np.random.uniform(0,1,n).mean()  #[0,1]上的均匀随机数及均值
    sns.distplot(xbar,bins=50)
    print(pd.DataFrame(xbar).describe().T)
norm_sim2()
norm_sim2(10000,30)

#sns.distplot(norm_sim2())             #plt.hist(norm_sim2())
#sns.distplot(norm_sim1(n=30,N=10000)) #plt.hist(norm_sim2(n=30,N=10000))

#####(3)t分布曲线
x=np.arange(-4,4,0.1)
yn=st.norm.pdf(x,0,1);yt3=st.t.pdf(x,3);yt10=st.t.pdf(x,10)
plt.plot(x,yn,'r-',x,yt3,'b.',x,yt10,'g-.');
plt.legend(["N(0,1)","t(3)","t(10)"]);

6.3 基本统计推断方法

6.3.1 点估计与区间估计

在这里插入图片描述

6.3.2 假设检验

在这里插入图片描述

##6.3  基本统计推断方法

###3.2.1 参数的估计方法
####3.2.1.1 点估计
#####(1)均值的点估计
BSdata['身高'].mean()
#####(2)标准差的点估计
BSdata['身高'].std()
##### (3)比例的点估计
#f=BSdata['开设'].value_counts();p=f/sum(f);p
42/150

#3.2.1.2 区间估计
da.norm_p(-2,2)

def t_interval(b,x):
    a=1-b
    n = len(x)
    import scipy.stats as st
    ta=st.t.ppf(1-a/2,n-1);ta
    from math import sqrt
    se=x.std()/sqrt(n)
    return(x.mean()-ta*se, x.mean()+se*ta)
t_interval(0.95,BSdata['身高'])

X=BSdata['身高']
st.norm.interval(0.95,X.mean())
n=len(X)
st.t.interval(0.95, n-1, X.mean(), X.std()/sqrt(n))
#st.t.interval(0.95, len(X)-1, X.mean(), st.sem(X))

###6.3.2 参数的假设检验
#####(1)t检验
import scipy.stats as st  #加载统计方法包
st.ttest_1samp(BSdata.身高, popmean = 166)
st.ttest_1samp(BSdata.身高, popmean = 170)
### 单样本t检验及图示
import DaPy_fun as da
da.ttest_1plot(BSdata.身高,166)
da.ttest_1plot(BSdata.身高,170)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值