python的统计函数库scipy.stats是一个很棒的统计包 您所在的位置:网站首页 描述正态分布的概率密度函数 python的统计函数库scipy.stats是一个很棒的统计包

python的统计函数库scipy.stats是一个很棒的统计包

2023-07-09 07:28| 来源: 网络整理| 查看: 265

描述:在Scipy的模块中,有一个统计的木块——States,其中函数有描述统计(describe)、峰度(kurtosis)、偏度(skew)、众数(mode)、n阶矩。

分布:还有一些分布函数,正泰分布(norm)、对数正态分布(lognorm)、……

计算:针对这些分布函数,有一些通用的的函数,生成符合分布的随机数(rvs)、概率密度函数(pdf)、累计分布函数(cdf)、残存函数(sf ,也就是1-cdf)、分位点函数(ppf,也就是cdf的反函数)、残存函数的逆函数(isf)、用最大似然估计法得出最适合的概率密度函数(fit)。

检验:正态性检验函数有四种:KS检验、AD检验、SW检验、是否服从正态分布检验。

模型:统计模型(StatsModels)中,主要的线性回归模型和对应函数有:普通最小二乘法(OLS)、广义最小二乘法(GLS)、加权最小二乘法(WLS)、带有自相关误差模型的广义最小二乘法(GLASAR)、广义线性模型(GLM)、使用M个估计量的鲁棒线性模型(RLM)、混合效应模型(mixed)、广义加性模型(gam)。

python的统计函数库scipy.stats是一个很棒的统计包,其中常用的功能能够满足包括各种概率分布的cdf、pdf、ppf计算,t检验,f检验,pearsonr相关系数及p值、峰度偏度、MSE等所有本科阶段计量经济学与统计的所有需求。

一、参数估计

1.方差σ已知时μ的置信区间

例,某大学男生体重W服从正态分布N(μ,1.2)。现抽取10名学生,测得体重如下(单位:斤),122,130,139,168,125,160,155,189,107,164,试求平均体重为95%的置信区间。

程序代码为

import scipy.stats as stats import numpy as np p = 0.025 weight = [122,130,139,168,125,160,155,189,107,164] low = np.mean(weight) - stats.norm.ppf(q=1-p)*(np.sqrt(1.2)/np.sqrt(len(weight))) up = np.mean(weight) + stats.norm.ppf(q=1-p)*(np.sqrt(1.2)/np.sqrt(len(weight))) #(low,up)即为其置信区间

stats.norm.ppf()即可以求得在某一置信水平下的标准正态分布函数。

其主要用法为(参数loc默认为零,scale默认为1,不用管它们,下从stats.norm.pdf略)

stats.norm.rvs(loc=0,scale=1,size=n),生成n个服从正态分布的随机数

stats.norm.pdf(x),计算概率密度函数

stats.norm.cdf(x),计算累计密度函数

stats.norm.ppf(q),计算z值

stats.norm.var()/stats.norm.std()/stats.norm.mean()/stats.norm.median(),计算分布的方差/标准差/均值/中位数

2.方差未知时μ的置信区间

同理,可以使用stats.t.ppf(p,n)来计算自由度为n,概率为p的t分布的t值

stats.t的用法与stats.norm大致相同

3. μ 未知时 σ2 的置信区间

from scipy.stats import chi2

通过chi2.ppf(p,n)计算概率为p,自由度为n的卡方值

4. ,σ12,σ22 已知,求 μ1−μ2 在 1−α 置信水平下的置信区间

5. σ12=σ22=σ 时 μ1−μ2 在 1−α 置信水平下的置信区间

4、5均与上述方法相同

6. ,μ1,μ2 未知时 σ12σ22 在 1−α 置信水平下的置信区间

from scipy.stats import f

通过f.ppf(p,n1,n2)计算概率为p,自由度为(n1,n2)的F值

二、参数假设检验

1.单个样本t检验

from scipy import stats stats.ttest_1samp(a,popmean,axis=0)

scipy.stats.ttest_1samp(a,popmean,axis=0)

计算一组数据的平均值的t检验。这是对零假设的双边检验,零假设是独立观察样本a的期望值(均值)等于给定的总体均值。a是观测样本,popmean=零假设的期望值。

2.两个独立样本t检验

from scipy import stats stats.ttest_ind(a,b)

scipy.stats.ttest_ind(a,b,axis=0,equal_var=True)

计算两个独立的数据样本的均值的t检验。这是对两个独立样本具有相同平均值(期望值)的零假设的双边检验。这个检验假设总体有相同的方差。a,b为两组样本数据。

3.配对样本t检验

from scipy import stats t,p = stats.ttest_rel(a,b) #t为t值,p为p-value

scipy.stats.ttest_rel(a,b,axis=0)

计算两个相关的分数样本a和b的t检验。

这是对两个相关或重复样本具有相同平均(期望)值的原假设的双边检验

4.单样本方差假设检验

单样本方差检验的程序编写很简单,略

至此为止,scipy库的主要应用就结束了,后面会偶尔还用到scipy库。接下来,将主要通过statsmodel库进行计量的学习。

5.双样本方差假设检验

双样本方差的假设检验用来判断两个样本的波动情况是否相同。anova_lm()函数常用来进行两样本的F检验(双样本方差假设检验)。

import statsmodels.formula.api as smf #首先导入statsmodel库 import statsmodel.formula.api import ols #statsmodel库可以进行回归 import statsmodel.stats.anova import anova_lm #方差分析 formula = 'Y~x' model = ols(formula,data).fit() #data是Dataframe数据集 results = anova_lm(model) #方差分析,计算F和p-value print(results)

python计量经济学分析-学习笔记 - 知乎



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有