Python统计学(一)

1 基本配置

1.1 基本模块

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats
import math

1.2 绘图设置

plt.rcParams[“font.sans-serif”]=‘SimHei’ #解决中文乱码问题
plt.rcParams[“axes.unicode_minus”]=False #解决符号无法正常显示的问题

2 基本统计量

在这里插入图片描述

备注:求方差时,默认使用n计算方差,为了得到样本方差,需要设置ddof=1
如:
np.mean([1,2,3]), np.std([1,2,3]),np.std([1,2,3],ddof=1)
在这里插入图片描述

3 基本分布

3.1 离散型分布

在这里插入图片描述

3.2 离散型分布示例

3.2.1 伯努利分布

ff=stats.bernoulli(0.5)
ff.rvs(10)

3.2.2 二项分布

num,p=(20,0.5)
ff=stats.binom(num,p)
ff.rvs(10)

3.2.3 泊松分布

lamda=2
ff=stats.poisson(lamda )
ff.pmf(0),ff.rvs(10)

3.3 连续型分布

在这里插入图片描述

3.4 连续型分布示例

3.4.1 正态分布

nv=stats.norm(3,2)
x=np.arange(-10,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
在这里插入图片描述

3.4.2 均匀分布

start,width=2,5
nv=stats.uniform(start,width)
x=np.arange(0,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
在这里插入图片描述

3.4.3 指数分布

u=0
sita=2
nv=stats.expon(u,sita)
x=np.arange(0,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
x0=2
math.exp(-x0/sita)/sita,nv.pdf(x0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
在这里插入图片描述

3.4.4 t分布

n=10
fd=n-1
nv=stats.t(fd)
x=np.arange(-10,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
在这里插入图片描述

3.4.5 卡方分布

n=10
fd=n-1
nv=stats.chi2(fd)
x=np.arange(-10,50,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
#plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
在这里插入图片描述

3.4.6 F分布

n1,n2=10,10
fd1,fd2=n1-1,n2-1
nv=stats.f(fd1,fd2)
x=np.arange(-2,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
在这里插入图片描述

3.4.7 对数正态分布

nv=stats.lognorm(scale=math.exp(1),s=0.3)
x=np.arange(-2,10,0.01)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)
在这里插入图片描述

3.4.8 韦伯分布

nv=stats.exponweib(a=1,c=2)
x=np.arange(-2,10,0.1)
y=nv.pdf(x)
y2=nv.cdf(x)
plt.plot(x,y,label=“pdf”)
plt.plot(x,y2,label=“cdf”)
plt.grid()
plt.legend()
nv.sf(0),nv.ppf(0.6),nv.isf(0.3),nv.rvs(10)

在这里插入图片描述

Python统计学分析方面提供了丰富的库,可以满足从基础到高级的各种统计需求。以下是些常用的 Python 统计学分析包及其功能和应用场景: ### 常用统计学分析包 #### 1. `statistics` 模块 这是 Python 标准库中自带的个模块,适用于进行基础的统计计算,如均值、中位数、方差等[^1]。 - **常用函数**: - `mean()`:计算平均值 - `median()`:计算中位数 - `variance()`:计算方差 - `stdev()`:计算标准差 ```python import statistics data = [1, 2, 3, 4, 5] print("Mean:", statistics.mean(data)) print("Variance:", statistics.variance(data)) ``` #### 2. NumPy NumPy 是用于科学计算的核心库之,尤其擅长处理大型多维数组和矩阵运算,适合执行高效的数值统计操作[^4]。 - **常用统计函数**: - `np.mean()`:计算均值 - `np.median()`:计算中位数 - `np.std()`:计算标准差 - `np.var()`:计算方差 ```python import numpy as np data = np.array([1, 2, 3, 4, 5]) print("Mean:", np.mean(data)) print("Standard Deviation:", np.std(data)) ``` #### 3. Pandas Pandas 是数据处理和分析的关键工具,提供了类似于表格的数据结构(DataFrame 和 Series),非常适合进行结构化数据的统计分析[^4]。 - **常用方法**: - `.describe()`:快速获取数据集的统计摘要 - `.mean()`, `.std()`, `.var()`:计算各项统计指标 ```python import pandas as pd df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) print(df.describe()) ``` #### 4. SciPy SciPy 提供了更高级的统计函数和测试方法,常用于推断统计学,如 t 检验、卡方检验等[^4]。 - **常用函数**: - `scipy.stats.ttest_ind()`:独立样本 t 检验 - `scipy.stats.chisquare()`:卡方检验 ```python from scipy import stats group1 = [20, 22, 19, 18, 24] group2 = [25, 28, 24, 23, 27] t_stat, p_value = stats.ttest_ind(group1, group2) print("T-statistic:", t_stat) print("P-value:", p_value) ``` #### 5. Statsmodels Statsmodels 是专门用于统计建模和测试的库,支持线性回归、时间序列分析、ANOVA 等复杂模型[^4]。 - **常用模型**: - `statsmodels.api.OLS()`:普通最小二乘回归 - `statsmodels.formula.api`:使用公式接口建模 ```python import statsmodels.api as sm X = sm.add_constant(np.random.rand(100, 1)) y = 2 * X[:, 1] + np.random.normal(0, 0.1, 100) model = sm.OLS(y, X).fit() print(model.summary()) ``` #### 6. Seaborn 和 Matplotlib 虽然它们主要用于数据可视化,但结合统计计算可以绘制出箱图、直方图、密度图等反映统计特征的图表[^4]。 ```python import seaborn as sns import matplotlib.pyplot as plt sns.histplot(data, kde=True) plt.show() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值