数据分析之数理统计基础

数理统计

1.总体数据和样本数据

总体(Population)又称为母体整体,是指统计学中是指由许多有某种共同性质的事物组成的集合。

样本(Sample)是统计学术语,指从全体中抽取的个体。通过对样本的调查,可以大概的了解总体的情况。

随机抽样:用随机的方式从总体数据中产生具有代表性的样本。

2.数量数据和属性数据

数量数据(Quantitative data):能够进行加减乘除等数值和算术运算的数据。

属性数据(Categorical data):不能进行算术运算的数据。

在这里插入图片描述

3.截面数据和时间序列数据

截面数据(Cross-sectional data):在同一时间或几乎相同的时间下搜集来一些个体的数据。

时间序列数据(Time series data):搜集的是几个时期的数据。

2002-2013道琼斯指数波动图

在这里插入图片描述

4.数据的分布

1.属性数据的频数分布(Frequency distribution)

频数分布:主要用于对数据的提炼和压缩,反应了各个不重叠组观察值出现的次数(频数)。

在这里插入图片描述

2.频率分布

频率分布是指每个组别中观察值出现的比例或百分比。

饮料名称频率百分比(%)
Coca-Cola0.3838
Diet Coke0.1616
Dr.Pepper0.1010
Pepsi0.2626
Sprite0.1010
合计1.00100
3.数量数据的频率分布

对数量性质的数据,要编制频数分布,首先需要规定分组的组别。

确定数量数据分组组别,需要经过以下三个步骤:

  1. 确定分多少组

  2. 确定每个组的组距

    组上下限之间的差叫作组距

  3. 确定每个组的组限

    组限是每个组之间的界限,反映了每个组观察值的变化范围。每个组的下限代表着这组中的最小观察值,每个组的上限代表着该组中的最大观察值。

import numpy as np

Data = [14,19,24,19,16,20,24,20,21,22,
        24,18,17,23,26,22,23,25,25,19,
        18,16,15,24,21,16,19,21,23,20,
        22,22,16,16,16,12,25,19,24,20]
# 求极差
ptpd = np.ptp(Data)
# 求最大值
maxd = np.max(Data)
# 求最小值
mind = np.min(Data)
print(ptpd)
14
print(maxd)
26
print(mind)
12
# 设置组限
Top = 30
Bottom = 10
# 分组为4,求组距
P = (Top - Bottom)/4
# 对组距向上取整
print(np.ceil(P))
5.0
分组频数频率百分比 %
11-1530.0757.5
16-20180.4545
21-25180.4545
26-3010.0252.5
总数401100
4.累积分布

累积分布:另外一种形式的频数分布,可以用来说明数量数据分布的变化。

np.cumsum(axis=0)

np.cumprod(axis=1)

分组累积频数累积频率累积百分比 %
11-1530.0757.5
16-20210.52552.5
21-25390.97597.5
26-30401100

5.位置测度

1.均值(算术平均和加权平均)

样本中的每个值都是真值与误差的和。

S = [s1, s2, ..., sn]
算数平均值:
m = (s1 + s2 + ... + sn) / n
np.mean(S)

W=[w1,w2,...wn]
加权平均值:
a = (s1w1+s2w2+...snwn)/(w1+w2+...wn)
np.average(S, weights = W)
2.中位数

将多个样本按照大小排序,取中间位置的元素。

若样本数量为奇数,中位数为最中间的元素

若样本数量为偶数,中位数为最中间的两个元素的平均值

median = np.median(Data)
3.众数(mode)

众数是一组数据中出现次数最多的数值,有时众数在一组数中有好几个。

# 求众数
counts = np.bincount(Data)
np.argmax(counts)
4.几何平均(geometric mean)

在这里插入图片描述

from scipy import stats 
stats.gmean(Data)

6.变异性测量

1.极差

极差 = 最大值 - 最小值

求极差
np.ptp(Data)
2.方差(Variance)

方差(Variance)描述的是它的离散程度,也就是该变量离其期望值的距离。

方差:v = (q1+q2+…+qn)/n

样本方差:Sv = (q1+q2+…+qn)/(n-1)
方 差 : V a r = 1 N ∑ i = 1 N ( X i − X ‾ ) 2 样 本 方 差 : S v a r = 1 N − 1 ∑ i = 1 N ( X i − X ‾ ) 2 方差: \quad Var=\frac1N∑^N_{i=1}(X_i−\overline X)^2 \\ 样本方差: \quad Svar=\frac{1}{N-1}∑^N_{i=1}(X_i−\overline X)^2 Var=N1i=1N(XiX)2Svar=N11i=1N(XiX)2
方差公式中分母上是N;样本方差无偏估计公式中分母上是N-1 (N为样本个数)。

求方差
np.var(Data)
3.标准差 (Standard Deviation)

方差的正平方根称为该随机变量的标准差,在概率统计中用来测量一组数值的离散程度。
标 准 差 : S t d = V a r 样 本 标 准 差 : S s t d = S v a r 标准差:\quad Std=\sqrt{Var} \\ 样本标准差:\quad Sstd=\sqrt{Svar} Std=Var Sstd=Svar

求标准差
np.std(Data)
4.变异系数 (Coefficient of Variation)

在概率论和统计学中,变异系数,又称“离散系数”(coefficient of variation),是概率分布离散程度的一个归一化量度,其定义为标准差与平均值之比:
变 异 系 数 = 标 准 差 均 值 × 100 变异系数=\frac{标准差}{均值} \times 100 =×100
变异系数只在平均值不为零时有定义,而且一般适用于平均值大于零的情况。变异系数也被称为标准离差率单位风险

7.分布分析

1.百分位数(Percentile)

百分位数,统计学术语,如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数,是低于某个观察值的观察值数目占全部观察值的百分比。

P k P_k Pk 表示第k百分位数, P k P_k Pk 表示至少有k%的资料小于或等于这个数,而同时也有(100-k)%的资料大于或等于这个数。

求百分位数
np.percentile(Data, 25)
np.percentile(Data, 75)
2.四分位数(Quartile)

四分位数是统计学中分位数的一种,即把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。
Q 1 = 第 一 个 四 分 位 数 , 或 者 第 25 个 百 分 位 数 。 {\displaystyle Q_{1}}=第一个四分位数,或者第25个百分位数。 Q125

Q 2 = 第 二 个 四 分 位 数 , 或 者 第 50 个 百 分 位 数 , 也 就 是 中 位 数 。 {\displaystyle Q_{2}} =第二个四分位数,或者第50个百分位数,也就是中位数。 Q250

Q 3 = 第 三 个 四 分 位 数 , 或 者 第 75 个 百 分 位 数 。 {\displaystyle Q_{3}}= 第三个四分位数,或者第75个百分位数。 Q3=75

四 分 位 距 = Q 3 − Q 1 四分位距 = {\displaystyle Q_{3}}-{\displaystyle Q_{1}} =Q3Q1

求四分位数
np.percentile(Data, (25, 50, 75))

在这里插入图片描述

3.z值(z-score)

z值(z-score),也叫标准分数(standard score)是一个数与平均数的差再除以标准差的过程。

Z值的量代表着原始分数和母体平均值之间的距离,是以标准差为单位计算。在原始分数低于平均值时Z则为负数,反之则为正数。换句话说,Z值是从感兴趣的点到均值之间有多少个标准差。
z = X i − X ‾ S v z= \frac{X_i−\overline X}{Sv} z=SvXiX

8.两个变量之间的关系

1.协方差 (Covariance)

协方差(Covariance)在概率论和统计学中用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。
样 本 协 方 差 : C o v = 1 N − 1 ∑ i = 1 N ( X i − X ‾ ) ( Y i − Y ‾ ) 样本协方差: \quad Cov=\frac{1}{N-1}∑^N_{i=1}(X_i−\overline X)(Y_i-\overline Y) Cov=N11i=1N(XiX)(YiY)

numpy.cov(Data)

如果两个变量的变化趋势一致,那么两个变量之间的协方差就是正值

如果两个变量的变化趋势相反,那么两个变量之间的协方差就是负值

2.相关系数(correlation coefficient)

在统计学中,皮尔逊积矩相关系数用于度量两个变量X和Y之间的相关程度(线性相关),其值介于-1与1之间。在自然科学领域中,该系数广泛用于度量两个变量之间的线性相关程度

两个变量之间的皮尔逊相关系数定义为两个变量之间的协方差和标准差的商:
r ( X , Y ) = C o v ( X , Y ) S t d ( X ) S t d ( Y ) r(X,Y)=\frac{Cov(X,Y)}{Std(X)Std(Y)} r(X,Y)=Std(X)Std(Y)Cov(X,Y)
r 取值范围 [-1,1],如果r为正数,则X,Y为正相关;r为负数,则X,Y为负相关;若r=0,则X,Y不相关。

相关性大小的判断:

在这里插入图片描述

线性回归分析

自变量和因变量、线性回归和多元回归

在回归范畴中,被预测的变量称作因变量,或者响应变量、被解释变量。

用来预测因变星的变量,称作自变量,或者预测变量、解释变量。

包含一个自变量和一个因变量的回归分析,称之为简单回归。

统计学中,一般用 y 表示因变量,x 表示自变量。自变量x任何一个单位的变化,会导致因变量 y 相同变化的回归分析,被称作线性回归。包含两个或两个以上自变量的回归分析,叫作多元回归。

残差 (Residual):

因变量实际值和使用估计得回归方程得到的因变量预测值之间的离差。对于第 i 个观察值,残差可以表示为:
e i = y i − y ^ i e_i=y_i-\hat y_i ei=yiy^i

1.简单线性回归模型

线性回归方程:
y = k x + b + e y=kx+b+e y=kx+b+e
根据线型 y=kx + b +e 方程可得:

kx1 + b + e1 = y1
kx2 + b + e2 = y2
kx3 + b + e3 = y3
...
kxn + b + en = yn

[ x 1 1 x 2 1 x 3 1 x n 1 ] × [ k b ] = [ y 1 y 2 y 3 y n ] \left[ \begin{array}{ccc}x{_1} & 1\\x{_2} & 1\\x{_3} & 1 \\x{_n} & 1 \\\end{array} \right ]\times\left[ \begin{array}{ccc}k\\b\\\end{array} \right ]=\left[ \begin{array}{ccc}y{_1}\\y{_2}\\y{_3}\\y{_n}\\\end{array} \right ] x1x2x3xn1111×[kb]=y1y2y3yn

样本过多,每两组方程即可求得一组k与b的值。np.linalg.lstsq(a, b) 可以通过最小二乘法求出所有结果中拟合误差最小的k与b的值。

案例:

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as mp

Data = np.loadtxt(r'C:\Users\Administrator\Desktop\Tyler.txt')
print(Data)
x1= Data[:,0]
x2 = Data[:,1]
y = Data[:,2]

parameter = np.polyfit(x1, y,1)

mp.figure('scatter', facecolor='lightgray')
mp.title('scatter')
mp.scatter(x1, y,color="r")
x = np.linspace(x1.min(), x1.max(), 1000)
y = np.polyval(parameter, x)
mp.plot(x, y)
mp.show()

在这里插入图片描述
在这里插入图片描述

2.多元回归模型

多项式的一般形式:
y = p 0 x n + p 1 x n − 1 + p 2 x n − 2 + p 3 x n − 3 + . . . + p n y=p_{0}x^n + p_{1}x^{n-1} + p_{2}x^{n-2} + p_{3}x^{n-3} +...+p_{n} y=p0xn+p1xn1+p2xn2+p3xn3+...+pn
多项式拟合的目的是为了找到一组p0-pn,使得拟合方程尽可能的与实际样本数据相符合。

import numpy as np
from sklearn import linear_model
Data = np.loadtxt(r'C:\Users\Administrator\Desktop\Tyler.txt')
print(Data)
x = Data[:,:2]
y = Data[:,2]
print("x:", x)
print("y:", y)
regr = linear_model.LinearRegression()
regr.fit(x,y)
# 查看系数
print('coefficients(p0,p1):',regr.coef_)
# 查看截距
print('intercept(b):',regr.intercept_)

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值