通过检测数据集的数据质量、绘制图表、计算某些特征量等手段,对样本数据集的结构和规律进行分析的过程就是数据探索。数据探索有助于选择合适的数据预处理和建模方法,甚至可以完成一些由数据挖掘解决的问题。主要从数据质量分析和数据特征分析两个角度对数据进行探索。
主要任务 检测原始数据是否存在脏数据,脏数据一般是指不符合要求,以及不能直接进行相应分析的数据
常见的脏数据
缺失值主要包括记录的缺失和记录中某个字段信息的缺失,一般有删除、插值、忽视等三种方法。异常值分析是检验数据是否有录入错误以及有不合常理的数据,其数值明显偏离其余的观测值。也称离群点分析。有简单统计量分析、 3 σ 3\sigma 3σ原则、箱型图分析。一致性分析是指数据的矛盾性或者不相容性,发生在数据集成中,可能数据来自不同数据源、对于重复存放的数据未能进行一致性更新造成的。
分布分析能揭示数据的分布和分布类型。对于分析定量数据,欲了解其分布形式是对称的还是非对称的,发现某些特大或者特小的可疑值,可通过绘制频率分布表、绘制频率分布直方图、绘制茎叶图进行直观分析;对于分析定性数据,可以绘制饼图或者条形图直观的显示分布情况。
定量数据分布分析
选择组数和组宽是做频率分布分析时最主要的问题。绘制频率分布按照下列顺序进行。
定性数据分析
常使用变量的分类类型分组,可以采用饼图或者条形图描述定性变量的分布。
对比分析
将两个相互联系的指标进行比较,从数量上展示和说明研究对象规模的大小,水平的高低,速度的快慢,以及各种关系是否协调。适用于指标间的横纵比较、时间序列的比较分析。
统计量分析
用统计指标对定量数据进行统计描述,常从集中趋势和离中趋势两方面进行分析。平均水平的指标是指对个体集中趋势的度量,使用最广泛的是均值和中位数。反应变异程度的指标是对个体离开平均水平的度量,使用较广泛的是极差、标准差、四分位间距。
极差=最大值-最小值
标准差 s = ∑ ( x i − x ‾ ) 2 n \displaystyle s=\sqrt{\frac{\sum{(x_i-\overline x)^2}}{n}} s=n∑(xi−x)2
变异系数 C V = s x ‾ × 100 % CV=\displaystyle \frac{s}{\overline x}\times 100\% CV=xs×100%。
四分位间距 上四分位-下四分位
info = df.describe()
max_min_sale = info.loc['max','销售额']-info.loc['min','销售额']
std_sale = info.loc['std','销售额']
cv_sale = std_sale/info.loc['mean','销售额']
distance_4_sale = info.loc['75%','销售额']-info.loc['25%','销售额']
周期性分析
探索某个变量是否随时间变化而呈现出某种周期变化的趋势,时间序列。
贡献度分析
贡献度分析又称帕累托分析,原理是帕累托法则,对于一个公司来讲,80%的利润来自20%最畅销的产品,其他80%的产品只产生了20%的利润。例子产生80%利润的产品优先增加成本投入,减少其他产品的投入。
相关性分析
分析连续变量之间线性关系程度的强弱,并用适当统计指标表示出来的过程称为相关分析。
直接绘制散点图,判断两个变量之间是否有相关关系
绘制散点图矩阵,考察多个变量之间的相关关系
计算相关系数
pearson
相关系数,一般用于分析两个连续变量之间的线性关系,要求连续变量的取值服从正态分布
spearman
秩相关系数。
不服从正态分布的变量、分类或者等级变量之间的关联性可采用Spearman
秩相关系数,也称等级相关系数描述。
r s = 1 − ∑ i = 1 n ( R i − Q ) 2 n ( n 2 − 1 ) r_s=1-\frac{\sum_{i=1}^n(R_i-Q)^2}{n(n^2-1)} rs=1−n(n2−1)∑i=1n(Ri−Q)2
R i R_i Ri表示 x i x_i xi的秩次, Q i Q_i Qi表示 y i y_i yi的秩次, R i − Q i R_i-Q_i Ri−Qi为 x i 、 y i x_i、y_i xi、yi的秩次之差。只要两个变量之间具有严格单调的函数关系,那么他们就是完全Spearman
相关的。
判定系数。即使pearson
相关系数的平方。
数据预处理的内容包括数据清洗、数据集成、数据变换和数据规约。数据预处理一方面要提高数据的质量,另一方面就是让数据更加适应特定的挖掘技术或工具。统计发现数据预处理工作占到整个过程的60%。
数据清洗的任务主要是删除原始数据集中无关数据、重复数据、平滑噪声数据、筛选掉与挖掘主题无关的数据,处理缺失值、异常值。
缺失值处理
常见的数据插补方法
均数、中位数、众数插补
使用固定值。将缺失的属性用一个常量替换,如广州某工厂外来务工人员基本工资属性的缺失值可以使用广州市的外来务工人员工资标准。
最近邻插补。在记录中找到与缺失样本最接近的样本的属性值插补
回归方法。对有缺失值的变量,根据已有数据和与其他有关的变量数据建立拟合模型预测缺失度额属性值
插值法。利用已知点建立合适的差值函数 f ( x ) f(x) f(x),未知点由对应的 x i x_i xi求出的函数值 f ( x i ) f(x_i) f(xi)替代
拉格朗日插值法
from scipy.interpolate import lagrange
#s为原始序列,原始序列的第n个值为null
#Lagrange(x,y)函数将(y.index,list(y))当做(x,y)传入返回一个ploy1d(x),然后传入x获取拟合值
def ployinterp_column(s,n,k=5):
#利用第n个值的前k个数和后k个数进行插值
y = s[list(range(n-k,n))+list(range(n+1,n+1+k))]
y = y[y.notnull()]
return lagrange(y.index,list(y))(n)
牛顿插值法
异常值处理
大多数情况下需要分析异常值出现可能原因,再判断异常值是否应该舍弃,如果是正常的数据,可以直接在含有异常值的数据集上进行建模。
数据集成就是将多个数据源合并且存放到一个一致的数据存储中的过程。要考虑实体识别和属性冗余的问题,将源数据在最底层上进行转换、提炼、集成。
实体识别
检测和解决这些冲突就是实体识别的任务。
冗余属性识别
对数据进行规范会处理,使数据转换为适当的形式。
简单的函数变换
简单的函数变换是对原始数据进行某些数学变换,常用的变换包括平方、开方、取对数、差分运算等。即
x ′ = x 2 x ′ = x x ′ = l o g ( x ) ∇ f ( x k ) = f ( x k + 1 ) − f ( x k ) x\prime=x^2\\ x\prime=\sqrt{x}\\ x\prime=log(x)\\ \nabla f(x_k)=f(x_{k+1})-f(x_k) x′=x2x′=xx′=log(x)∇f(xk)=f(xk+1)−f(xk)
简单的函数变换常用将不具有正态分布的数据变换成具有正态分布的数据。在时间序列分析中,简单的对数变换或者差分运算可将非平稳序列转换为平稳序列。又比如个人年收入取值范围在10000元到1亿元,使用对数变换对数据进行压缩是一种常用的变换处理方法。
规范化
为了消除指标之间的量纲和取值范围差异的影响,需要进行标准化处理,将数据按照比例进行缩放,是指落在一个特定的区域,便于进行综合分析。
离差规范化
x ∗ = x − x m i n x m a x − x m i n \displaystyle x^*=\frac{x-x_{min}}{x_{max}-x_{min}} x∗=xmax−xminx−xmin
零-均值规范化
x ∗ = x − x ‾ σ \displaystyle x^*=\frac{x-\overline x}{\sigma} x∗=σx−x
经过处理的数据均值为0,标准差为1
#离差标准化
(df-df.min())/(df.max()-df.min())
#0均值标准化
(df-df.mean())/df.std()
连续属性离散化
在某些分类算法中ID3或者Apriori算法,要求数据是分类属性形式。常常需将连续属性变换为分类属性,即连续属性离散化。
连续属性的离散化也就是在数据的取值范围内设定若干个离散的划分点,将取值返回划分为一些离散化的区间,最后用不同的符号或者整数值代表落在整个子区间中的数据值。
常用的离散化方法
等宽法
将属性的值分成具有相同长度的区间,区间的个数有数据本身的特点决定,或者用户指定,类似于制作频率分布表。
#pd.cut(data,number or list,labels)
#第二个参数为number时等宽离散化,如果是list默认是区间划分,和plt.hist()类似
#等宽离散化
k = 4
d1 = pd.cut(data,4,labels=range(k))
等频法
将相同数量的记录放进不同的区间
# 等频离散化 w首先化为频率分布
w = [1.0*i/k for i in range(k+1)]
# 然后获取对应的百分比的数据
w = data.describe(percentiles=w)[4:4+k+1]
w[0] = w[0]*(1-1e-10)
d2 = pd.cut(data,w,labels=range(k))
基于聚类分析的方法
直接将连续属性值进行聚类算法进行聚类,然后将聚类得到的簇进行处理。
# kmeans聚类离散化
from sklearn.cluster import KMeans
clf = KMeans(n_clusters=k,n_jobs=4)
clf.fit(data.values.reshape((len(data),1)))
#记录聚类中心
c = pd.DataFrame(clf.cluster_centers_).sort_values(0)
#求取前两个均值作为边界点
w = c.rolling(2).mean().iloc[1:]
#获取分类边界
w = [0] + list(w[0]) + [data.max()]
d3 = pd.cut(data,w,labels=range(k))
属性构造
为了提取有用的信息,需要利用已有的属性集构造新的属性,并加入到现有的属性集合中。
例如在防窃电诊断建模时利用已有的供入电量、供出电量,构造出 线 损 率 = 供 入 电 量 − 供 出 电 量 供 入 电 量 \displaystyle 线损率=\frac{供入电量-供出电量}{供入电量} 线损率=供入电量供入电量−供出电量。
小波变换
进行信号处理、图像处理、语音处理、模式识别、量子物理等领域
数据规约产生更小但保持原数据完整性的新数据集,数据规约的意义
属性规约
通过属性合并创建新属性维数,或者直接通过删除不相关属性来减少数据维数,从而提高数据挖掘的效率、降低计算成本。属性规约的目标是寻找最小属性子集并确保新数据子集的概率分布尽可能地接近原来数据集的概率分布。
常用方法
```
sklearn.decomposition.PCA(n_components=None,copy=True,whiten=False)
n_components 要保留的主成分个数
copy 是否在原数据上运算
whiten 是否白化
```
from sklearn.decomposition import PCA
pca = PCA(3)
pca.fit(df)
#降维操作low_d降维之后的数据
low_d = pca.transform(df)
#输出各成分的贡献率
print(pca.explained_variance_ratio_)
数据规约
通过选择替代的、较小的数据减少数据量。有参数的方法是指使用一个模型来评估数据,只需存放参数,不存放实际数据。无参数方法需要存放实际数据,例如直方图、聚类、抽样。
直方图的将每个桶换成一个价格的等宽直方图
聚类
抽样。使用比原始数据小的多的随机样本表示原始数据。
参数回归
对数线性模型。 l n m = β 0 + β 1 x 1 + ⋯ + β k x k ln m =\beta_0+\beta_1 x_1+\cdots+\beta_kx_k lnm=β0+β1x1+⋯+βkxk。
根据挖掘目标和数据形式可以建立分类与预测、聚类分析、关联规则、时序模式、偏差检测等模型,挖掘数据中蕴含的商业价值。
分类主要是预测分类标号,离散属性,预测主要是建立连续值函数模型,预测给定自变量对应的因变量的值。
主要的分类和预测算法
主要回归模型分类
线性回归
非线性回归,通过简单的函数变换
参与建模的自变量之间具有多重共线性
岭回归
主成分回归
logistics回归模型
在n个独立变量 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1,x2,⋯,xn作用下,记取一的概率 p = P ( y = 1 ∣ X ) p=P(y=1|X) p=P(y=1∣X),取0的概率是1-p,取1和取0的概率之比为 p 1 − p \displaystyle \frac{p}{1-p} 1−pp,称为事件的优势比odds。对优势比取对数即可得到logistics变换, l o g i t ( p ) = l n ( p 1 − p ) = z logit(p)=ln(\frac{p}{1-p})=z logit(p)=ln(1−pp)=z,则 p = 1 1 + e − z \displaystyle p=\frac{1}{1+e^{-z}} p=1+e−z1。logistics回归模型是建立 l n ( p 1 − p ) ln(\frac{p}{1-p}) ln(1−pp)与自变量的线性回归模型。logistics回归模型为 l n ( p 1 − p ) = β 0 + β 1 x 1 + ⋯ + β n x n + ϵ ln(\frac{p}{1-p})=\beta_0+\beta_1x_1+\cdots+\beta_nx_n+\epsilon ln(1−pp)=β0+β1x1+⋯+βnxn+ϵ。则 p = 1 1 + e − ( β 0 + β 1 x 1 + ⋯ + β n x n + ϵ ) \displaystyle p=\frac{1}{1+e^{-(\beta_0+\beta_1x_1+\cdots+\beta_nx_n+\epsilon)}} p=1+e−(β0+β1x1+⋯+βnxn+ϵ)1。
采用划分后样本集的不确定性作为衡量划分好坏的标准,用信息增益值度量不确定性,信息增益值越大,不确定性越小。ID3在每个非叶结点选择信息增益最大的属性作为测试属性,可得到当前情况下最纯划分,得到较小的决策树。
设S为s个数据样本的集合,假定有m个集合,为 C i ( i = 1 , 2 , ⋯ , m ) C_i(i=1,2,\cdots,m) Ci(i=1,2,⋯,m),设 s i s_i si为类 C i C_i Ci中的样本数。对于一个给定的样本,总信息熵为 I ( s 1 , s 2 , ⋯ , s m ) = − ∑ i = 1 m P i l o g 2 ( P i ) I(s_1,s_2,\cdots,s_m)=-\sum_{i=1}^m P_ilog_2(P_i) I(s1,s2,⋯,sm)=−∑i=1mPilog2(Pi)。
设一个属性A具有k个不同的值 { a 1 , a 2 , ⋯ , a k } \{a_1,a_2,\cdots,a_k\} { a1,a2,⋯,ak},利用属性A将集合S划分为k个子集 { S 1 , S 2 , ⋯ , S k } \{S_1,S_2,\cdots,S_k\} { S1,S2,⋯,Sk}。如果选择A作为测试属性,那么这些子集就是从A生长出去的新的叶结点。设 s i j s_{ij} sij为子集 S j S_j Sj中类别为 C i C_i Ci的样本数,则根据属性A划分样本的期望信息熵值为 E ( A ) = ∑ i = 1 k s 1 j + s 2 j + ⋯ + s k j s I ( s 1 j , s 2 j , ⋯ , s m j ) \displaystyle E(A)=\sum_{i=1}^k\frac{s_{1j}+s_{2j}+\cdots+s_{kj}}{s}I(s_{1j},s_{2j},\cdots,s_{mj}) E(A)=i=1∑kss1j+s2j+⋯+skjI(s1j,s2j,⋯,smj)。其中 I ( s 1 j , s 2 j , ⋯ , s m j ) I(s_{1j},s_{2j},\cdots,s_{mj}) I(s1j,s2j,⋯,smj)为子集 S j S_j Sj的信息熵, s 1 j + s 2 j + ⋯ + s k j s \displaystyle \frac{s_{1j}+s_{2j}+\cdots+s_{kj}}{s} ss1j+s2j+⋯+skj为子集 S j S_j Sj个数占S个数比例。
最终用属性A划分样本集S后所得信息增益就是 G a i n ( A ) = I ( s 1 j , s 2 j , ⋯ , s m j ) − E ( A ) Gain(A)=I(s_{1j},s_{2j},\cdots,s_{mj})-E(A) Gain(A)=I(s1j,s2j,⋯,smj)−E(A)。因此信息增益越大,则选择A之后对分类的不确定性越小。然后通过递归就可以直接建成决策树。
具体流程
分类和预测算法评价
为了有效判断一个预测或者分类模型的性能表现,需要一组没有参与预测模型建立的数据集,并在该数据集上评价预测模型的准确率,这组独立的数据集叫测试集。模型预测效果通常使用相对、绝对误差,平均绝对误差、均方误差、均方根误差等指标衡量。
数据类型相似度的度量
对于连续属性,首先对各个属性值进行零均值规范,再进行距离的计算。样本和簇之前的距离可以使用样本到簇中心的距离 d ( e i , x ) d(e_i,x) d(ei,x);簇与簇之间的距离可以用簇中心的距离 d ( e i , e j ) d(e_i,e_j) d(ei,ej)。
聚类分析的算法评价,聚类算法的目标是实现组内对象之间的相似,不同组之间的对象是不同的。组内的相似性越大,组件差别越大,聚类效果越好。
purity评价法,只需计算正确聚类数占总数的比例, ( x 1 , x 2 , ⋯ , x k ) (x_1,x_2,\cdots,x_k) (x1,x2,⋯,xk)为聚类的集合, ( y 1 , y 2 , ⋯ , y k ) (y_1,y_2,\cdots,y_k) (y1,y2,⋯,yk)表示需要被聚类的集合,n表示被聚类集合对象的总数。
p u r i t y = 1 n ∑ k m a x ∣ x k ∩ y i ∣ \displaystyle purity=\frac{1}{n}\sum_k max\vert x_k\cap y_i\vert purity=n1k∑max∣xk∩yi∣
RI评价法
R I = R + W R + M + D + W RI=\frac{R+W}{R+M+D+W} RI=R+M+D+WR+W
F值评价法
F α = ( 1 + α 2 p r ) α 2 p + r p = R R + M r = R R + D F_{\alpha}=\frac{(1+\alpha^2pr)}{\alpha^2p+r}\\ p=\frac{R}{R+M}\\ r=\frac{R}{R+D}\\ Fα=α2p+r(1+α2pr)p=R+MRr=R+DR
改进的RI评价法,将p和r视为不同的重要性
关联规则分析目的是在一个数据集中找出各项之间的关联关系。
项集A、B同时发生的概率称为关联规则的支持度,也称为相对支持度。 S u p p o r t ( A ⇒ B ) = P ( A ∪ B ) Support(A\Rightarrow B)=P(A\cup B) Support(A⇒B)=P(A∪B)
项集A发生,则项集B发生的概率为关联规则的置信度。 C o n f i d e n c e ( A ⇒ B ) = P ( B ∣ A ) Confidence(A\Rightarrow B)=P(B|A) Confidence(A⇒B)=P(B∣A)
最小支持度是用户或专家定义的衡量支持度的一个阈值,表示项目集在统计意义上最低可能性;最小置信度是用户或专家定义的衡量置信度的一个阈值,表示关联规则的最低可能性。同时满足最小支持度阈值和最小置信度阈值的规则称为强规则。
项集 项的集合。包含k项的项集称为k项集,比如集合 { 牛 奶 , 麦 片 , 糖 } \{牛奶,麦片,糖\} { 牛奶,麦片,糖}是一个三项集。项集的出现频率为所有包含项集的事务计数,又称为绝对支持度或支持度计数。如果项集I的相对支持度满足预定义的最小支持度阈值,则I是频繁项集。频繁k项集通常记作k。
项集A的支持度计数是事务数据集中包含项集A的事务个数,简称为项集的频率或计数。
S u p p o r t ( A ⇒ B ) = A , B 同 时 发 生 的 事 务 的 个 数 所 有 事 务 个 数 = S u p p o r t _ c o u n t ( A ∩ B ) T o t a l _ c o u n t C o n f i d e n c e ( A ⇒ B ) = P ( B ∣ A ) = S u p p o r t ( A ∩ B ) S u p p o r t ( A ) = S u p p o r t _ c o u n t ( A ∩ B ) S u p p o r t _ c o u n t ( A ) Support(A\Rightarrow B)=\frac{A,B同时发生的事务的个数}{所有事务个数}=\frac{Support\_count(A\cap B)}{Total\_count}\\ Confidence(A\Rightarrow B)=P(B|A)=\frac{Support(A\cap B)}{Support(A)}=\frac{Support\_count(A\cap B)}{Support\_count(A)} Support(A⇒B)=所有事务个数A,B同时发生的事务的个数=Total_countSupport_count(A∩B)Confidence(A⇒B)=P(B∣A)=Support(A)Support(A∩B)=Support_count(A)Support_count(A∩B)
几种常见的关联规则算法
Apriori
算法基本原理
性质
频繁项集的所有非空子集必须是频繁项集。向不是频繁项集的项集中添加事务A,新的事物 I ∪ A I\cup A I∪A一定也不是频繁项集。
实现
Apriori
的性质频繁项集的所有非空子集也必须是频繁项集,所有不满足该性质的项集不会出现在 C k C_k Ck中,该过程就是剪枝。#搜索频繁项集的例子
from apriori import *
data = pd.read_excel(PATH+"menu_orders.xls",header=None)
ct = lambda x:pd.Series(1,index=x[pd.notnull(x)])
b = map(ct,data.values)
data = pd.DataFrame(list(b)).fillna(0)
print("转换完毕")
del b
support = 0.2
confidence = 0.5
ms = '----'
find_rule(data,support,confidence,ms)
常用按时间顺序排列的一组随机变量 X 1 , X 2 , ⋯ , X t X_1,X_2,\cdots,X_t X1,X2,⋯,Xt来表示一个随机事件的时间序列,简记 { X t } \{X_t\} { Xt}。用 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1,x2,⋯,xn表示该随机序列的n个有序观察值,称之为序列长度为n的观察值序列。时间序列的目的就是给定了一个已被观测了的时间序列,预测该序列的未来值。
常用的时间序列模型
ARMA
模型ARIMA
模型GARCH
模型及其衍生模型时间序列的预处理
拿到一个观察值序列首先对其纯随机性和平稳性进行检验,根据检验结果可将序列划分为不同类型,对不同类型序列使用不同分析方法。
对于纯随机序列,又称为白噪声序列,序列的各项之间没有任何相关关系,序列在进行完全无序的随机波动,可终止对该序列的分析,白噪声序列是没有信息可提取的平稳序列。
对于平稳非白噪声序列,其均值和方差为常数,ARMA模型是常用的平稳序列拟合模型。
对于非平稳序列,由于其均值和方差不稳定,处理方法一般是将其转化为平稳序列,就可应用有关平稳时间序列的分析方法。如果一个时间序列经差分运算之后有平稳性,则该序列为差分平稳序列,可使用ARIMA
模型进行分析。
平稳性检验
时序图检验
自相关图检验
单位根检验
纯随机性检验
平稳时间序列分析
AR模型
具有如下结构的模型称为p阶自回归模型,简称为 A R ( p ) AR(p) AR(p)。
x t = ϕ 0 + ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ϵ t x_t=\phi_0+\phi_1 x_{t-1}+\phi_2x_{t-2}+\cdots+\phi_px_{t-p}+\epsilon_t xt=ϕ0+ϕ1xt−1+ϕ2xt−2+⋯+ϕpxt−p+ϵt
即在t时刻的随机变量 X t X_t Xt的取值 x t x_t xt是前p期 x t − 1 , x t − 2 , ⋯ , x t − p x_{t-1},x_{t-2},\cdots,x_{t-p} xt−1,xt−2,⋯,xt−p的多元线性回归,认为 x t x_t xt主要是受过去p期序列值的影响,误差项 ϵ t \epsilon_t ϵt是当前的随机干扰,为零均值白噪声序列。
统计量 | 性质 | 统计量 | 性质 |
---|---|---|---|
均值 | 常数均值 | 自相关系数acf | 拖尾 |
方差 | 常数均值 | 偏自相关系数pacf | p阶拖尾 |
均值 μ = ϕ 0 1 − ϕ 1 − ϕ 2 − ⋯ − ϕ p \displaystyle \mu=\frac{\phi_0}{1-\phi_1-\phi_2-\cdots-\phi_p} μ=1−ϕ1−ϕ2−⋯−ϕpϕ0
方差 平稳 A R ( p ) AR(p) AR(p)模型的方差有界,等于常数。
自相关系数 ρ k = ρ ( t , t − k ) = c o v ( X t , X t − k ) ρ t ρ t − k \displaystyle \rho_k=\rho(t,t-k)=\frac{cov(X_t,X_{t-k})}{\rho_t\rho_{t-k}} ρk=ρ(t,t−k)=ρtρt−kcov(Xt,Xt−k)
偏自相关系数 P A C F PACF PACF 具有p阶截尾性
MA模型
具有如下结构的q阶自回归模型,简记为MA(q)。
x t = μ + ϵ t − θ 1 ϵ t − 1 − ⋯ − θ q ϵ t − q \displaystyle x_t=\mu+\epsilon_t-\theta_1\epsilon_{t-1}-\cdots-\theta_q\epsilon_{t-q} xt=μ+ϵt−θ1ϵt−1−⋯−θqϵt−q
即在t时刻的随机变量 X t X_t Xt的取值 x t x_t xt是前q期的随机扰动 ϵ t − 1 , ϵ t − 2 , ⋯ , ϵ t − q \epsilon_{t-1},\epsilon_{t-2},\cdots,\epsilon_{t-q} ϵt−1,ϵt−2,⋯,ϵt−q的多元线性函数,误差项是当期的随机干扰 ϵ t \epsilon_t ϵt,为零均值白噪声均值序列,认为 x t x_t xt主要是受过去q期误差项的影响。
统计量 | 性质 | 统计量 | 性质 |
---|---|---|---|
均值 | 常数均值 | 自相关系数ACF | q阶截尾 |
方差 | 常数方差 | 偏自相关系数PACF | 拖尾 |
ARMA
模型
具有如下结构的模型称为自回归移动平均模型,简记为 A R M A ( p , q ) ARMA(p,q) ARMA(p,q)。
x t = ϕ 0 + ϕ 1 x t − 1 + ϕ 2 x t − 2 + ⋯ + ϕ p x t − p + ϵ t + ϵ t − θ 1 ϵ t − 1 − ⋯ − θ q ϵ t − q x_t=\phi_0+\phi_1 x_{t-1}+\phi_2x_{t-2}+\cdots+\phi_px_{t-p}+\epsilon_t+\epsilon_t-\theta_1\epsilon_{t-1}-\cdots-\theta_q\epsilon_{t-q} xt=ϕ0+ϕ1xt−1+ϕ2xt−2+⋯+ϕpxt−p+ϵt+ϵt−θ1ϵt−1−⋯−θqϵt−q
即在t时刻的随机变量 X t X_t Xt的取值 x t x_t xt是前p期 x t − 1 , x t − 2 , ⋯ , x t − p x_{t-1},x_{t-2},\cdots,x_{t-p} xt−1,xt−2,⋯,xt−p和前q期 ϵ t − 1 , ϵ t − 2 , ⋯ , ϵ t − q \epsilon_{t-1},\epsilon_{t-2},\cdots,\epsilon_{t-q} ϵt−1,ϵt−2,⋯,ϵt−q的多元线性函数,误差项是当前的随机干扰项 ϵ t \epsilon_t ϵt,为零均值白噪声序列。认为 x t x_t xt主要受过去p期序列值和过去q期的误差项的共同影响。
特别的,当q=0是,ARMA模型为AR(p)模型;当p=0时,是MA(q)模型。
统计量 | 性质 | 统计量 | 性质 |
---|---|---|---|
均值 | 常数均值 | 自相关系数ACF | p阶拖尾 |
方差 | 常数方差 | 偏自相关系数PACF | q阶拖尾 |
平稳时间序列建模
非平稳时间序列分析
对非平稳时间序列分析可以分为确定性因素分解的时序分析和随机时序分析两大类。
确定性因素分解方法把所有序列的变化都归结为4个因素,长期趋势,季节变动,循环变动,随机波动的综合影响,其中长期趋势和季节变动的规律性信息通常比较容易提取,而由随机因素导致的波动难以确定和分析,对随机信息浪费严重,会导致模型拟合精度不够理想。
随机时序分析法就是为了弥补确定性因素分解方法的不足,根据时间序列的不同特点,有ARIMA
模型、残差自回归模型、季节模型、异方差模型。
差分运算。
ARIMA
模型
差分运算具有强大的确定性信息提取能力,许多非平稳序列差分之后会显示出平稳序列的性质,称该非平稳序列为差分平稳序列。对差分平稳序列可以使用ARMA
模型进行拟合。
任务是发现与大部分其他对象显著不同的对象,大部分数据挖掘方法将差异信息视为噪声丢弃,然而在一些应用中,罕见的数据可能蕴含极大的研究价值。
离群点检测被广泛应用于电信和信用卡的诈骗检测,贷款审批,电子商务,网络入侵和天气预报等领域。比如可以使用离群点检测分析运动员的统计数据,以发现异常的运动员。
离群点的成因 数据来源不同的类,自然变异,数据测量,收集误差
离群点的类型
常用的离群点检测方法
一元正态分布中的离群点检测
将 x x x进行0-1标准化,然后根据 3 σ 3\sigma 3σ原则在 ( − ∞ , − 3 ) ∪ ( 3 , ∞ ) (-\infty,-3)\cup(3,\infty) (−∞,−3)∪(3,∞)范围之内的被称为离群点。
基于KMeans
或者DBSCAN
聚类找出离群点。