MATLAB在时间序列分析中的应用

MATLAB在时间序列分析中的应用
MATLAB在时间序列分析中的应用

《MATLAB语言》课程论文

MATLAB在时间序列分析中的应用

姓名:李伟

学号:12010245258

专业:通信工程

班级:10级通信一班

指导老师:汤全武

学院:物理电气信息学院

完成日期:2011.12.10

MATLAB 在时间序列分析中的应用

(李伟 12010245258 2010级通信1班)

[摘要]Matlab 强大的科学计算和可视化功能使其在各个领域中得到了广泛的应用.采用Maflab 进行时序列分析可以极大地简化编程工作,并具有界面友好、操作方便的特点.介绍了使用Matlab 进行时间序列分析的基本方法和步骤,并通过实例进行了说明.

[关键词]Matlab 时间序列 谱分析

一、问题的提出

1984年美国的MathWorks 公司推出了Mat —lab ,在许多领域得到了充分的利用.其强大的科学计算与可视化功能,开放式的可扩展环境以及其各种功能强大的工具箱(ToolBox),使得它成为计算机辅助设计与分析、算法研究和应用开发的基本工具和首选平台.时间序列分析是采用参数模型对观测得到的有序随机数据进行分析的一种处理方法,通过时间序列可以对系统的动态特性进行分析、对系统的状态进行预测,从而为系统的状态监控和故障诊断提供依据.Matlab 工具箱中包含了许多函数,借助于这些函数可以方便地实现系统的时间序列分析.

二、时间序列分析原理及实现

时间序列分析(autoRegressive movingAverage)是对有序的随机数据(信号)处理的一种方法,它的出发点是承认数据的有序性和相关性,通过数据内部的相互关系来辨识系统的变化规律,它的建模方法是将系统的输出看作是在白噪声输入下的响应.具体地讲,就是针对一组试验数据,建立系统的参数模型,ARMA(m ,n)的参数模型可以表示为:

10()()()m n

x t x t t τλτλ?τ?σλ==+-=-∑∑ (1) 式中:{ (t), (t 一1), (t 一2)? 。 (t —m)}为有序的时间序列,{ (t), (t 一1),? , (t —A)}为有序的白噪声序列,方程的左边为系统的自回归部分,它反映了系统的固有特性,右边表示系统的滑动平均部分,当0τ?=时为MA 模型,当0λ?=时为AR 模型.辨识系统模型参数的方法有很多种,常用的方法主要有最dx-乘法、辅助变量法、Marple 法等.根据不同的需要和研究对象可以采用不同的建模方法.在建立了系统的模型后,可以对系统的状态进行预测、分析预测误差、进行谱分析.关于这些算法的基本原理,可以参考文献[2~4],这些在Matlab 中都提供了相应的函数.

采用Matlab 进行时间序列分析主要包括4步.

1)数据的读人

Matlab 采用类似于C 语言的方式进行数据的读人,可以直接从数据文件中将数据读到一个矩阵中.

fid=fopen(fileName ,,r ,); %打开一个文件进行读写

data=fscanf(fid ,'g'); % 将数据读人到data 中

status=fclose(fid); % 释放文件句柄

2)建立模型

在获得所要分析的数据后可以对数据进行建模,本文主要介绍2个函数: th = ar(y ,n);

h = ivar(y ,n);

ar(y ,n)函数采用最小二乘法进行模型参数的估计,该函数要求输入噪声为白噪声,当输入噪声为色噪声时,不能保证模型参数的估计值的无偏性和一致收敛性.而ivar(y ,n)则采用最优辅助变量的方法进行参数的估计,计算得到的参数模型存放在th 中.th 中的数据采用Matlab 独有的THETA 格式模型进行定义.通过th2arx()函数可以得到模型参数和THETA 格式的转换.

3)模型分析

模型的分析包括模型的仿真、预测及误差分析和谱分析.

e= pe(y ,th);

y1= idsim(y ,th);

y1= predict(y ,th);

y2=th2ff(th);

pe(y ,th)用于计算模型实测值与估计值之间的误差,误差值存放在e 中. idsim (y ,th)对输入的数据进行仿真,并将仿真结果存放在y 中.dict(y ,th)则针对模型的输人数据和模型格式进行预测,并将预测值存放在Y 中,th2f(th)可以实现求数据的频响函数.

4)图形输出

Matlab 提供了强大的数据输入输出的功能.对数据的分析结果,可以采用图形的方式进行直观的表示,常用的针对时间序列分析的绘图函数有: Plot(x,y1,x,y2 ),在同一个图中对分析结果进行表示.

Bodeplot(e),直接画出波德图.

Ffplot(e),画频谱图.

Nyqplot(),画奈氏图.

三、Theta 模型参数

Theta 格式是Matlab 系统辨识工具箱中通用的参数模型格式,Theta 模型的定义可以分为两种,即基于输入输出表示的Theta 模型和基于状态空间表示的Theta 模型.基于输入输出的Theta 模型可以对应各种输入输出参数模型,如AR 、ARX 、ARMA 、BJ 等;基于状态空间表示的Theta 模型则与连续或离散状态空间参数模型对应,它们的信息都以矩阵的形式存储,但模型信息数据的组织结构不同.在时间序列分析中,常用的是第一种数据模型,其结构可以表示为:

1111()()()()()()()()()()()

n nu nu n B q B q C q A q y t u t nk u t nk e t F q F q D q =-+Λ+-+ (2) 公式(2)中,A(q)、B(q)、F(q)( =1,2? .^n)、C(q)、D(q)为平移算子q 的多

项式,其阶次分别为M 、nbi、nfi( =1,2?.,n)、ItC、nd,nix为系统的输入变量个数.设n为所有多项式的阶次之和,令r=max(凡,7,6+3nu),则系统的输入输出The—ta模型格式为如下定义的(3+凡)X r矩阵,矩阵中每行的内容表示为:

1)矩阵的第1行为估计方差,采样时间,输入个数眦,各个多项式的阶次M 、nb、ItC、nd、nf,nk;

2)第2行为最终预测误差FPE,模型生成的13期、时间和命令;

3)第3行为估计参数的向量,即A、、C、D、F 的系数;

4)第4行到第3+凡行为估计的方差矩阵;

5)对于连续系统,该矩阵可能增加到凡+4行,其中包含系统的死区时间.对于时间序列分析而言,在生成Theta模型以后,需要根据不同的需要对该模型进行分析,以便从中提取所需的估计参数以及最终的误差.

四、应用实例

为了对上面的方法进行说明,采用5个问题加以说明,第1个问题利用小波时间序列进行消噪或压缩.第2个问题利用ddencmp和wdencmp函数实现数据降噪.第3个问题利用函数wavedec对时间序列进行一维多分辨分析.第4个问题用wthcoef对时间序列的小波系数进行阈值处理.第5个问题利用wprcoef,由wpdec 得到的t对时间蓄力分解的一位小波包系数重构.5个问题的源程序如下:

问题1

格式:

(1)[xc,cxc,lxc,perf0,petfl2]

=wdencmp('gbl,x,'wname',N,thr,sorh,keepapp)

(2)[xc,cxc,lxc,perf0,perfl2]=wdencmp('lvd',x,'wname',N,thr,sorh) (3)[xc,cxc,lxc,perf0,pefgl2]=wdencmp('lvd',C,L,'wname',N,thr,sorh) 说明:

x:待消噪或压缩的时间序列。

N:小波分解层数。

c,l:由函数wavedec得到的时间序列一维小波变换的分解系数及其维数。

'wname':消噪时选取的小波函数。

thr:阈值。

sorh:软、硬阈值的选择。

keepapp:可选参数,当keepapp=1时表示低频系数不进行量化,反之低频系数要进行量化。

xc:发表会消噪或压缩后的时间序列。

cxc,lxc:xc的小波分解结构。

perf0,perfl2:恢复和压缩L平方的范数百分比。

'gbl':global的缩写,各层用同一个阈值。

'lvd':level-dependent的缩写,没一层用不同的阈值。

[xc,cxc,lxc,perf0,perfl2]=('gbl',X,'wname

',N,thr,sorh,keepapp) %全局正阈值消噪或压缩。

[xc,cxc,lxc,perf0,perfl2]=wdencmp('lvd',x, 'wname',N,thr,SORH)

%利用ddencmp函数返回的thr,sorh消噪或压缩。

[xc,cxc,lxc,perf0,perfl2]=wdencmp('lvd',c,l, 'wname',N,thr,sorh)

%利用wavedec函数返回的c,l消噪或压缩。

例:

load leleccum;

indx=2600:3100;

x=leleccum(indx); %原始信号、

Subplot(221),plot(x);axis([0,500,100,500]);

title('原始信号');

thr=35;

[xd,cxd,lxd,perf0,perfl2]=wdencmp('gbl',x,'db3',3,thr,'h',1);%固定阈值压缩处理

subplot(222),plot(xd);

axis([0,500,100,500]);

title('固定阈值压缩信号');

[thr,sorh,keepapp]=ddencmp('den','wv',x); %缺省值消噪或压缩

xd=wdencmp('gbl',x,'db3',2,thr,sorh,keepapp); %利用ddencmp的返回值进行消噪或压缩

subplot(223),plot(xd);

axis([0,500,100,500]);

title('利用gbl的压缩信号');

xd=wdencmp('lvd',x,'db3',2,thr,sorh); %利用ddencmp函数返回的thr,sorh消噪或压缩

Subplot(224),plot(xd);

axis([0,500,100,500]);

title('利用lvd的压缩信号');

运行结果如图1

图1 原始信号及其不同方式下的消噪或压缩信号

问题2

%由nosimima函数生成一个一维信号,使用小波分析对信号进行降噪处理

load noismima;

indx=1:1000;

x=noismima(indx);

[thr,sorh,keepapp]=ddencmp('den','wv',x); %得到降噪参数

xd=wdencmp('gbl',x,'db3',2,thr,sorh,keepapp);%用全局阈值进行降噪处理subplot(211) %画图

plot(x)

subplot(212)

plot(xd)

运行结果如图2

图2 原始序列及其降噪后的序列

问题3

格式:

(1)[c,1]=wacedec(x,N,’wname ’)

(2) [c,1]=wacedec(x,N,Lo_D,Hi_D)

说明:

x :待分析的时间序列。

N :分解层数。

’wname ’:选取的小波函数。

Lo_D,Hi_D :分别为小波分解滤波器的低频系数和高频系数。

c :时间序列的以为多分辨分解系数11[,,,......,]j j j c cA cD cD cD -=,其中j cA 第j 阶分解的低频系数,11,,......,j j cD cD cD -分别为第j,j-1,……,1阶的高频系数。

L :11,,,......,j j j cA cD cD cD -对应的序列长度组成的序列。

例:

load sumsin;

s=sumsin; %调用数据sumsin

[c,l]=wavedec(s,3,'db1'); %利用db1分解3阶

subplot(211);

plot(s);

title('原始信号');\

subplot(212);

plot(c);

title('小波分解系数');

运行结果如图3

图3 原始信号解气小波分解系数

问题4

格式:

(1)NC=wthcoef('d',c,l,N,P)

(2)NC=wthcoef('d',c,l,N)

(3)NC=wthcoef('a',c,l)

(4)NC=wthcoef('t',c'l'N,T,SORH)

说明:

c,l:由函数wavedec得到的时间序列以为小波变换的分解系数及其维数。 N:包含高频尺度的向量。

P:把较小小波系数置零的百分比信息向量。

sorh:软,硬阈值的选择。

T:小波树结构。

NC:阈值处理后的[NC,l]即为[c,l]经过阈值处理后的结果。

NC=wthcoef('d',c,l,N,P)%对小波分解结构[c,l]进行压缩,把较小小波新书全部置零。

NC=wthcoef('d',c,l)%对小波分解结构[c,l]进行压缩,把高频小波系数全部置零,返回分解结构NC。

NC=wthcoef('a',c,l)%对小波分解结构[c,l]进行压缩,把低频小波系数全部置零,返回分解结构NC。

NC=wthcoef('t',c,l,N,t,sorh)%对小波分解结构[c,l]进行阈值压缩处理,当sorh='s'时进行软阈值处理;当sorh='h'时进行硬阈值处理。

例:

load leleccum;

indx=2600:3100;

x=leleccum(indx);

Subplot(311),plot(x);axis([0,500,100,500]);

title('原始信号');

[c,l]=wavedec(x,3,'db3');

N=[1,2,3];%设置尺度向量

P=[98,99,97];%设置阈值向量

NC=wthcoef('d',c,l,N,P,'s');%对高频小波系数进行软阈处理,把高频小波系数全部置零

x1=waverec(NC,l,'db3'); %重构

subplot(312),plot(x1);axis([0,500,100,500]);title('软阈值重构信号'); NC=wthcoef('t',c,l,N,P,'h');%对高频小波系数进行硬阈值处理,把高频小波系数全部置零

x2=waverec(NC,l,'db3'); %重构

subplot(313),plot(x1);axis([0,500,100,500]);title('硬阈值重构信号'); 运行结果如图4:

图4 原始信号及其不同方式下阈值处理后的重构信号

问题5

格式:

(1)x=wprcoef(t,N)

(2)x=wprcoef(t)

说明:

t:分解后的小波树结构。

N:小波树的节点。

x:时间序列的一维小波包系数重构。

例:

load noisdopp;

x=noisdopp; %调用信号

subplot(121);

plot(x);title('原始信号');

t=wpdec(x,3,'db3','shannon');

rcfs=wprcoef(t,[2,1]); %重构(2,1)上信号

Subplot(122);

plot(rcfs);

title('小波包节点(2,1)处重构信号');

运行结果如图5

图5 原始信号及其节点(2,1)上的重构信号

五、结论

通过上面的实例可以看出,利用Madab工具,可以很方便地实现数据的时间序列建模,建模精度高、分析结果可靠,同时利用它强大的图形界面功能可以很直观地进行数据的分析与比较.当然,并不是所有时间序列的问题都可以用Madab 内带的函数实现,有些需要用户自己编制响应的程序.但是,借助于它的强大的计算功能,可以很方便地实现这些功能.

六、课程体会

通过一学期对Matlab语言的学习,我收获甚多.在相较别的计算机语言,我

深刻体会到Matlab语言简单易懂,对我们各门课程有非常大的帮助.Matlab是一个高级矩阵/阵列预言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程的特点。用可以在命令窗口中将输入语句与执行命令同步,也可以先编好一个较大的复杂的应用程(M文件)后再一起欲行。新版本的MATLAB预言师基于最为流行的C++预言基础上的,因此语法特征与C++预言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于计算机专业的科技人员使用。而且这种语言的可移植性好、课拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。

在科学研究和工程应用中,为了客服一般预言对大量数学运算,尤其当涉及矩阵运算时编制程序麻烦等困难,应运而生了MATLAB编程运算的软件,在自动控制、图像处理、语言处理、信号分析、振动理论、优化设计、时序分析和系统建模等领域都能得到很好的处理效果。而且在MATLAB中,可以直接在Simulink环境中运作的工具包很多,已覆盖通信、控制、信号出题、DSP、电力系统等诸多领域,所涉及的内容专业性极强。

参考文献:

[1] 徐听.Matlab工具箱应用指南——控制工程篇[M].北京:人民邮电出版社,2000.

[2] 黄世霖.工程信号处理[M].北京:人民交通出版社,1986.

[3] 温熙森.机械系统动态分析理论与应用[M].长沙:国防科技大学出版社,1998.

[4] 黄仁.机械设备工况监测与故障诊断[M].南京:东南大学出版社,1990.

时间序列分析方法及应用7

青海民族大学 毕业论文 论文题目:时间序列分析方法及应用—以青海省GDP 增长为例研究 学生姓名:学号: 指导教师:职称: 院系:数学与统计学院 专业班级:统计学 二○一五年月日

时间序列分析方法及应用——以青海省GDP增长为例研究 摘要: 人们的一切活动,其根本目的无不在于认识和改造世界,让自己的生活过得更理想。时间序列是指同一空间、不同时间点上某一现象的相同统计指标的不同数值,按时间先后顺序形成的一组动态序列。时间序列分析则是指通过时间序列的历史数据,揭示现象随时间变化的规律,并基于这种规律,对未来此现象做较为有效的延伸及预测。时间序列分析不仅可以从数量上揭示某一现象的发展变化规律或从动态的角度刻画某一现象与其他现象之间的内在数量关系及其变化规律性,达到认识客观世界的目的。而且运用时间序列模型还可以预测和控制现象的未来行为,由于时间序列数据之间的相关关系(即历史数据对未来的发展有一定的影响),修正或重新设计系统以达到利用和改造客观的目的。从统计学的内容来看,统计所研究和处理的是一批有“实际背景”的数据,尽管数据的背景和类型各不相同,但从数据的形成来看,无非是横截面数据和纵截面数据两类。本论文主要研究纵截面数据,它反映的是现象以及现象之间的关系发展变化规律性。在取得一组观测数据之后,首先要判断它的平稳性,通过平稳性检验,可以把时间序列分为平稳序列和非平稳序列两大类。主要采用的统计方法是时间序列分析,主要运用的数学软件为Eviews软件。大学四年在青海省上学,基于此,对青海省的GDP十分关注。本论文关于对1978年到2014年以来的中国的青海省GDP(总共37个数据)进行时间序列分析,并且对未来的三年中国的青海省GDP进行较为有效的预测。希望对青海省的发展有所贡献。 关键词: 青海省GDP 时间序列白噪声预测

应用时间序列分析第4章答案

河南大学: 姓名:汪宝班级:七班学号:1122314451 班级序号:68 5:我国1949年-2008年年末人口总数(单位:万人)序列如表4-8所示(行数据).选择适当的模型拟合该序列的长期数据,并作5期预测。 解:具体解题过程如下:(本题代码我是做一问写一问的) 1:观察时序图: data wangbao4_5; input x@@; time=1949+_n_-1; cards; 54167 55196 56300 57482 58796 60266 61465 62828 64653 65994 67207 66207 65859 67295 69172 70499 72538 74542 76368 78534 80671 82992 85229 87177 89211 90859 92420 93717 94974 96259 97542 98705 100072 101654 103008 104357 105851 107507 109300 111026 112704 114333 115823 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130756 131448 132129 132802 ; proc gplot data=wangbao4_5; plot x*time=1; symbol1c=black v=star i=join; run; 分析:通过时序图,我可以发现我国1949年-2008年年末人口总数(随时间的变化呈现出线性变化.故此时我可以用线性模型拟合序列的发展. X t=a+b t+I t t=1,2,3,…,60 E(I t)=0,var(I t)=σ2 其中,I t为随机波动;X t=a+b就是消除随机波动的影响之后该序列的长期趋势。

时间序列ARIMA模型的SAS程序编写

goptions vsize=7cm hsize=10cm; data b; format time monyy5.; input monyy7. asr; dif=dif(asr) ; keep time asr dif; cards; Jan1999 50 Feb1999 54.5 Mar1999 51 Apr1999 49 May1999 50 Jun1999 52 Jul1999 49 Aug1999 49 Sep1999 55 Oct1999 58 Nov1999 60 Dec1999 67.6 Jan2000 62 Feb2000 58.4 Mar2000 55 Apr2000 52.7 May2000 54.4 Jun2000 55.9 Jul2000 53.6 Aug2000 53.4 Sep2000 58.7 Oct2000 62.8 Nov2000 64.2 Dec2000 73.9 Jan2001 66.9 Feb2001 61.7 Mar2001 58.5 Apr2001 56.3 May2001 60.1 Jun2001 60.3 Jul2001 58 Aug2001 58.5 Sep2001 64.3 Oct2001 68.5 Nov2001 70.6 Dec2001 79.2 Jan2002 72.4

Feb2002 67.3 Mar2002 62.9 Apr2002 60.7 May2002 65.9 Jun2002 65.8 Jul2002 62.9 Aug2002 63.6 Sep2002 70.5 Oct2002 76 Nov2002 79 Dec2002 85.1 Jan2003 79.9 Feb2003 73.5 Mar2003 69.5 Apr2003 64.8 May2003 67.6 Jun2003 73.4 Jul2003 70.2 Aug2003 71.6 Sep2003 79.3 Oct2003 85.5 Nov2003 88.5 Dec2003 98.4 Jan2004 90.8 Feb2004 81.8 Mar2004 78.8 Apr2004 75 May2004 81 Jun2004 83.9 Jul2004 80.1 Aug2004 81.1 Sep2004 89.7 Oct2004 98.7 Nov2004 101.7 Dec2004 116.3 Jan2005 103.7 Feb2005 94.2 Mar2005 89.1 Apr2005 86.2 May2005 91.9 Jun2005 98.6 Jul2005 92.2 Aug2005 96.1 Sep2005 103.5

matlab与多元统计分析

Matlab 与多元统计分析 胡云峰 安庆师范学院 第三章习题 3.1对某地区的6名2周岁男婴的身高、胸围、上半臂进行测量。得样本数据如表3.1所示。 假设男婴的测量数据X (a )(a=1,…,6)来自正态总体N 3(μ,∑) 的随机样本。根据以往的资料,该地区城市2周岁男婴的这三项的均值向量μ0=(90,58,16)’,试检验该地区农村男婴与城市男婴是否有相同的均值向量。 表3.1 某地区农村2周岁男婴的体格测量数据 1.预备知识 ∑未知时均值向量的检验: H 0:μ=μ0 H 1:μ≠μ0 H 0成立时 122)(0,)(1)(1,) ()'((1)))()'()(,1)(1)1(,) (1)P P X N n S W n n X n S X n X S X T p n n p T F P n p n p μμμμμ---∑--∑??∴----=-----+∴-- 当 2 (,)(1) n p T F p n p p n α-≥--或者22T T α≥拒绝0H 当 2 (,)(1) n p T F p n p p n α-<--或者22T T α<接受0H 这里2 (1) (, )p n T F p n p n p αα-= -- 2.根据预备知识用matlab 实现本例题 算样本协方差和均值 程序x=[78 60.6 16.5;76 58.1 12.5;92 63.2 14.5;81 59.0 14.0;81 60.8 15.5;84 59.5 14.0]; [n,p]=size(x); i=1:1:n; xjunzhi=(1/n)*sum(x(i,:));

时间序列分析试卷及答案3套

时间序列分析试卷1 一、 填空题(每小题2分,共计20分) 1. ARMA(p, q)模型_________________________________,其中模型参数为 ____________________。 2. 设时间序列{}t X ,则其一阶差分为_________________________。 3. 设ARMA (2, 1): 1210.50.40.3t t t t t X X X εε---=++- 则所对应的特征方程为_______________________。 4. 对于一阶自回归模型AR(1): 110t t t X X φε-=++,其特征根为_________,平稳域是 _______________________。 5. 设ARMA(2, 1):1210.50.1t t t t t X X aX εε---=++-,当a 满足_________时,模型平稳。 6. 对于一阶自回归模型MA(1): 10.3t t t X εε-=-,其自相关函数为 ______________________。 7. 对于二阶自回归模型AR(2): 120.50.2t t t t X X X ε--=++ 则模型所满足的Yule-Walker 方程是______________________。 8. 设时间序列{}t X 为来自ARMA(p,q)模型: 1111t t p t p t t q t q X X X φφεθεθε----=++++++L L 则预测方差为___________________。 9. 对于时间序列{}t X ,如果___________________,则()~t X I d 。 10. 设时间序列{}t X 为来自GARCH(p ,q)模型,则其模型结构可写为_____________。 二、(10分)设时间序列{}t X 来自()2,1ARMA 过程,满足 ()()2 10.510.4t t B B X B ε -+=+, 其中{}t ε是白噪声序列,并且()()2 t t 0,E Var εεσ==。

基于MATLAB的太阳黑子时间序列与仿真

2012.3 26 基于MATLAB 的太阳黑子时间序列 分析与仿真 周园 肖洪祥 董俊飞 桂林理工大学信息科学与工程学院 广西 541004 摘要:本文研究了时间序列的分析方法,具体分析了基于最大Lyapunov 指数的方法在太阳黑子时间序列分析中的应用。介绍利用MATLAB 对太阳黑子时间序列进行分析与仿真的方法,并给出相关的流程、程序和相应的仿真结果。最终证明太阳黑子时间序列是一个混沌时间序列。 关键词:混沌时间序列;最大Lyapunov 指数;太阳黑子数;仿真 0 引言 在非线性系统中,初始条件的微小变化,往往会导致结果以指数级的大小发生分离,这时我们称这个系统存在混沌。时间序列是非线性动力系统的一种模型。如果时间序列对初始条件敏感,采用传统线性时间序列分析方法将很难予以分析,因此传统时间序列预测模型对混沌时间序列的拟合和预测准确度都很差。经过混沌学的发展,可以使用序列本身的规律对其进行预测。Lyapunov 指数法即是其中之一。通过最大Lyapunov 指数的数值,可以判断一个时间序列是否是混沌时间序列,亦即该非线性系统中是否存在着混沌。本文对太阳黑子序列进行分析,证明其是一个混沌时间序列。 1 基于Lyapunov 指数的时间序列分析方法 对时间序列进行分析,首先必须进行相空间重构。根据有限的数据重构吸引子以研究系统动力行为的方法即是相空间重构。主要思想为:系统中每个分量的演化皆是由与之联系的其他分量所决定的,相关分量的信息隐含在任意其他分量的变化过程中,即是运用系统的任何一个观察量可以重构出整个系统的模型。 设时间序列为{}t x ,其中1,2,...,t N =。重构相空间m R 的元素组为: (1)(,,)(,,...,),T=1,2,3,...,T T T T m X m N X X X p τττ++-= (1) 其中,N 为重构相空间维数;τ为延迟时间间隔数,且为正整数;(1)p N m τ=--为时间序列嵌入相空间的向量数,N 为时间序列的数据点数。 由Tokens 定理,在理论条件下可任选τ。但在现实条件下时间序列都是有限长且有噪声的。因而在重构相空间时, τ的选取至关重要。目前所采用的方法大多是通过经验来选 择τ, 从而使得T X 和T X τ+相互独立并不完全相关。 Lyapunov 指数是描述奇异吸引子性质的数据量。在m 维离散系统中存在m 个Lyapunov 指数,即Lyapunov 指数族。正的Lyapunov 指数意为在此维度方向,系统以指数级速度分离。1983年,G.Grebogi 证明了若最大Lyapunov 指数 max 0λ>,则系统一定存在着混沌。因此要判断一个时间序 列是否为混沌时间序列,必须求出其最大Lyapunov 指数。为了保证领域点沿着不同的轨道运动,最近邻域点间必须有分离间隔。此处取分离间隔为/w T t =?,其中T 为用FFT 计算出的序列平均周期;t ?为序列的采样周期。 2 计算机仿真步骤 仿真步骤如图1所示。输入太阳黑子年平均序列,通过 FFT 算法计算得到其平均周期T 。计算分离间隔作为时间窗 ωτ。由公式得到嵌入维数m 。运用所得的参数使用Wolf 法 算出最大Lyapunov 指数。进而判断该序列是否是混沌序列。

时间序列分析考试卷及答案

考核课程 时间序列分析(B 卷) 考核方式 闭卷 考核时间 120 分钟 注:B 为延迟算子,使得1 -=t t Y BY ;?为差分算子,1--=?t t t Y Y Y 。 一、单项选择题(每小题3 分,共24 分。) 1. 若零均值平稳序列{}t X ,其样本ACF 和样本PACF 都呈现拖尾性,则对{}t X 可能建立( B )模型。 A. MA(2) B.ARMA(1,1) C.AR(2) D.MA(1) 2.下图是某时间序列的样本偏自相关函数图,则恰当的模型是( B )。 A. )1(MA B.)1(AR C.)1,1(ARMA D.)2(MA 3. 考虑MA(2)模型212.09.0--+-=t t t t e e e Y ,则其MA 特征方程的根是( C )。 (A )5.0,4.021==λλ (B )5.0,4.021-=-=λλ (C )5.2221==λλ, (D ) 5.2221=-=λλ, 4. 设有模型112111)1(----=++-t t t t t e e X X X θφφ,其中11<φ,则该模型属于( B )。 A.ARMA(2,1) B.ARIMA(1,1,1) C.ARIMA(0,1,1) D.ARIMA(1,2,1) 5. AR(2)模型t t t t e Y Y Y +-=--215.04.0,其中64.0)(=t e Var ,则=)(t t e Y E ( B )。 A.0 B.64.0 C. 1 6.0 D. 2.0 6.对于一阶滑动平均模型MA(1): 15.0--=t t t e e Y ,则其一阶自相关函数为( C )。 A.5.0- B. 25.0 C. 4.0- D. 8.0 7. 若零均值平稳序列{}t X ?,其样本ACF 呈现二阶截尾性,其样本PACF 呈现拖尾性,则可初步认为对{}t X 应该建立( B )模型。 A. MA(2) B.)2,1(IMA C.)1,2(ARI D.ARIMA(2,1,2) 8. 记?为差分算子,则下列不正确的是( C )。 A. 12-?-?=?t t t Y Y Y B. 212 2--+-=?t t t t Y Y Y Y C. k t t t k Y Y Y --=? D. t t t t Y X Y X ?+?=+?) ( 二、填空题(每题3分,共24分); 1. 若{}t Y 满足: 1312112---Θ-Θ--=??t t t t t e e e e Y θθ, 则该模型为一个季节周期为

利用SPSS和Matlab进行时间序列预测

§7.利用SPSS 和Matlab 进行时间序列预测 1.移动平均和滑动平均计算 例1:下表给出了某地区1990~2004年粮食产量数据(表1)。试分别用Matlab 和SPSS 软件,对该地区的粮食产量进行移动平均和和滑动平均计算。 表1 某地区1990~2004年粮食产量及其平滑结果 移动平均 滑动平均 年份 自然序号 粮食产量y (单位:104 t )三点移动 五点移动 三点滑动 五点滑动 1990 1 3149.44 1991 2 3303.66 3154.47 1992 3 3010.30 3010.30 3141.19 3242.44 1993 4 3109.61 3154.47 3253.04 3263.32 1994 5 3639.21 3141.19 3334.21 3295.88 1995 6 3253.80 3253.04 3242.44 3453.17 3461.80 1996 7 3466.50 3334.21 3263.32 3520.07 3618.81 1997 8 3839.90 3453.17 3295.88 3733.69 3692.89 1998 9 3894.66 3520.07 3461.80 3914.72 3892.78 1999 10 4009.61 3733.69 3618.81 4052.51 4019.78 2000 11 4253.25 3914.72 3692.89 4121.45 4075.78 2001 12 4101.50 4052.51 3892.78 4158.21 4148.58 2002 13 4119.88 4121.45 4019.78 4160.01 4227.01 2003 14 4258.65 4158.21 4075.78 4260.11 2004 15 4401.79 4160.01 4148.58 利用spss 进行移动平均计算主要有以下步骤: (1) 在菜单中依次选择transform->Create time series…,在弹出的对话框中 的单击function 下面的下拉条,选择Prior moving average 方法,span 框中输入数值为3(表示进行三点滑动平均)。

matlab与应用多元统计分析

多元统计分析中的应用研究 , 摘要:许多实际问题往往需要对数据进行统计分析,建立合适的统计模型,过去一般采用SAS 、SPSS软件分析,本文给出 Matlab软件在多元统计分析上的应用, 主要介绍Matlab 在聚类分析、判别分析、主成份分析上的应用,文中均给以实例, 结果令人满意。 关键词:Matlab软件;聚类分析;主成份分析 Research for application of Multivariate Statistical Analysis Abstract:Many practice question sometimes need Statistical Analysis to data.,and establish appropriate Statistical model SAS and SPSS software were commonly used in foretime ,this paper give the application of Matlab software in Multivariate Statistical Analysis,mostly introduce the application of Matlab software in priciple component analysis and cluster analysis and differentiate analysis.The example are given in writing and the result are satisfaction. Key words: Matlab software; cluster analysis; priciple component analysis 0 引言 许多实际问题往往需要对数据进行多元统计分析, 建立合适的模型, 在多元统计分析方面, 常用的软件有SAS 、SPSS 、S-PLUS等。我们在这里给出Matlab在多元统计分析上的应用, 在较早的版本中, 统计功能不那么强大, 而在Matlab6.x版本中, 仅在统计工具中的功能函数就达200多个, 功能已足以赶超任何其他专用的统计软件,在应用上Matlab具有其他软件不可比拟的操作简单,接口方便, 扩充能力强等优势, 再加上Matlab的应用范围广泛, 因此可以预见其在统计应用上越来越占有极其重要的地位,下面用实例给出Matlab 在聚类分析、主成份分析上的应用。 1 聚类分析 聚类分析法是一门多元统计分类法,其目的是把分类对象按一定规则分成若干类,所分成的类是根据数据本身的特征确定的。聚类分析法根据变量(或样品或指标)的属性或特征的相似性,用数学方法把他们逐步地划类,最后得到一个能反映样品之间或指标之间亲疏关系的客观分类系统图,称为谱系聚类图。 聚类分析的步骤有:数据变换,计算n个样品的两两间的距离,先分为一类,在剩下的n-1个样品计算距离,按照不同距离最小的原则,增加分类的个数,减少所需要分类的样品的个数,循环进行下去,直到类的总个数为1时止。根

《时间序列分析及应用:R语言》读书笔记

《时间序列分析及应用:R语言》读书笔记 姓名:石晓雨学号:1613152019 (一)、时间序列研究目的主要有两个:认识产生观测序列的随机机制,即建立数据生成模型;基于序列的历史数据,也许还要考虑其他相关序列或者因素,对序列未来的可能取值给出预测或者预报。通常我们不能假定观测值独立取自同一总体,时间序列分析的要点是研究具有相关性质的模型。 (二)、下面是书上的几个例子 1、洛杉矶年降水量 问题:用前一年的降水量预测下一年的降水量。 第一幅图是降水量随时间的变化图;第二幅图是当年降水量与去年降水量散点图。 win.graph(width=4.875, height=2.5,pointsize=8) #这里可以独立弹出窗口 data(larain) #TSA包中的数据集,洛杉矶年降水量 plot(larain,ylab='Inches',xlab='Year',type = 'o') #type规定了在每个点处标记一下 win.graph(width = 3,height = 3,pointsize = 8) plot(y = larain,x = zlag(larain),ylab = 'Inches',xlab = 'Previous Year Inches')#zlag 函数(TSA包)用来计算一个向量的延迟,默认为1,首项为NA

从第二幅图看出,前一年的降水量与下一年并没有什么特殊关系。 2、化工过程 win.graph(width = 4.875,height = 2.5,pointsize = 8) data(color) plot(color,ylab = 'Color Property',xlab = 'Batch',type = 'o') win.graph(width = 3,height = 3,pointsize = 8) plot(y = color,x = zlag(color),ylab = 'Color Property',xlab = 'Previous Batch Color Property') len <- length(color) cor(color[2:len],zlag(color)[2:len])#相关系数>0.5549 第一幅图是颜色属性随着批次的变化情况。

时间序列MATLAB程序

时间序列MATLAB程序

时间序列 移动平均法 clc,clear y=[533.8 574.6 606.9 649.8 705.1 772.0 816.4 892.7 963.9 1015.1 1102.7]; m=length(y); n=[4,5];%n为移动平均的项数 for i=1:length(n) %由于n的取值不同,下面使用了细胞数组 for j=1:m-n(i)+1

yhat{i}(j)=sum(y(j:j+n(i)-1))/n(i); end y12(i)=yhat{i}(end);%提出第12月份的预测值 s(i)=sqrt(mean((y(n(i)+1:end)-yhat{i}(1:end-1)).^2));%求预测的标准误差end y12, s %分别显示两种方法的预测值和预测的标准误差 指数平滑 一次指数平滑 程序: clc,clear yt=load('dianqi.txt'); %读取dianqi.txt的数据, n=length(yt); %求yt的长度 alpha=[0.2 0.5 0.8]; %输入a的值 m=length(alpha) yhat(1,[1:m])=(yt(1)+yt(2))/2; %求第一个预测值索引

for i=2:n yhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:); end yhat %求预测值 err=sqrt(mean((repmat(yt,1,m)-yhat).^2)) %求预测的标准误差 xlswrite('dianqi.xls',yhat) %把预测数据写到Excel文件,准备在word表格中使用yhat1988=alpha*yt(n)+(1-alpha).*yhat(n,:) %求1988的预测值 二次指数平滑

matlab时间序列的多时间尺度小波分析

小波分析—时间序列的多时间尺度分析 一、问题引入 1.时间序列(Time Series ) 时间序列是指将某种现象某一个统计指标在不同时间上的各个数值,按时间先后顺序排列而形成的序列。在时间序列研究中,时域和频域是常用的两种基本形式。其中: 时域分析具有时间定位能力,但无法得到关于时间序列变化的更多信息; 频域分析(如Fourier 变换)虽具有准确的频率定位功能,但仅适合平稳时间序列分析。 然而,许多现象(如河川径流、地震波、暴雨、洪水等)随时间的变化往往受到多种因素的综合影响,大都属于非平稳序列,它们不但具有趋势性、周期性等特征,还存在随机性、突变性以及“多时间尺度”结构,具有多层次演变规律。对于这类非平稳时间序列的研究,通常需要某一频段对应的时间信息,或某一时段的频域信息。显然,时域分析和频域分析对此均无能为力。 2.多时间尺度 河流因受季节气候和流域地下地质因素的综合作用的影响,就会呈现出时间尺度从日、月到年,甚至到千万年的多时间尺度径流变化特征。推而广之,这个尺度分析,可以运用到对人文历史的认识,以及我们个人生活及人生的思考。 3.小波分析 产生:基于以往对于时间序列分析的各种缺点,融合多时间尺度的理念,小波分析在上世纪80年代应运而生,为更好的研究时间序列问题提供了可能,它能清晰的揭示出隐藏在时间序列中的多种变化周期,充分反映系统在不同时间尺度中的变化趋势,并能对系统未来发展趋势进行定性估计。 优点: 相对于Fourier 分析:Fourier 分析只考虑时域和频域之间的一对一的映射,它以单个变量(时间或频率)的函数标示信号;小波分析则利用联合时间-尺度函数分析非平稳信号。 相对于时域分析:时域分析在时域平面上标示非平稳信号,小波分析描述非平稳信号虽然也在二维平面上,但不是在时域平面上,而是在所谓的时间尺度平面上,在小波分析中,人们可以在不同尺度上来观测信号这种对信号分析的多尺度观点是小波分析的基本特征。 应用范围: 目前,小波分析理论已在信号处理、图像压缩、模式识别、数值分析和大气科学等众多的非线性科学领域内得到了广泛的应用。在时间序列研究中,小波分析主要用于时间序列的消噪和滤波,突变点的监测和周期成分的识别以及多时间尺度的分析等。 二、小波分析基本原理 1. 小波函数 小波分析的基本思想是用一簇小波函数系来表示或逼近某一信号或函数。因此,小波函数是小波分析的关键,它是指具有震荡性、能够迅速衰减到零的一类函数,即小波函数)R (L )t (2 ∈ψ(有限能量空间)且满足: ?+∞ ∞-=0dt )t (ψ (1) 式中,)t (ψ为基小波函数,它可通过尺度的伸缩和时间轴上的平移构成一簇函数系: )a b t (a )t (2/1b ,a -=-ψψ 其中,0a R,b a,≠∈ (2)

Matlab多元统计分析程序

Matlab多元统计分析程序 1. 主成分分析M程序 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 主成分分析 % % 设对变量x1,x2,...,xp进行n次观测,得到n×p数据矩阵x=x(i,j), % 本程序对初始数据进行主成分分析,要求先请将观测矩阵输入到变 % 量x,再运行本程序。 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 确定观测矩阵x 的尺寸,以便数据标准化. % [n,p]=size(x); % % 数据处理方式设置,即是否先将数据标准化. % fprintf('\n 1---使用原始数据直接计算距离') fprintf('\n 2---使用标准化后的数据计算距离') k=input('请输入你的选择(1~2)'); % % 数据标准化 % switch k case 1 xs=x; case 2 mx=mean(x);

xs=(x-repmat(mx,n,1))./repmat(stdr,n,1); end % % 主成分分析,返回各主成分pc,所谓的z-得分score,x的协方差 % 矩阵的特征值latent和每个数据点的Hotelling统计量tsquare. % [pc score latent tsquare]=princomp(xs) 2. 典型相关分析M程序 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 在运行本程序之前,请先把数据输入/导入到MATLAB 的 % 内存空间,并存放在变量x 中,每行存放一个样本。 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % 确定观测矩阵x 的尺寸 % [n,h]=size(x); % % 输入基本参数 % p=input('\n第一组变量的个数p = ? '); fprintf('\n1--使用样本协方差矩阵计算典型相关变量') fprintf('\n2--使用样本相关矩阵计算典型相关变量') ctl=input('\n请输入你的选择'); % % 默认的显著性水平为alpha=0.05,可以改变下面语句中的alpha值。 % alpha=0.05; % % 按要求计算样本协方差矩阵或样本相关矩阵 % switch ctl case 1 st=cov(x); case 2

时间序列习题(含答案)

一、单项选择题 1.时间数列与变量数列() A都是根据时间顺序排列的B都是根据变量值大小排列的 C前者是根据时间顺序排列的,后者是根据变量值大小排列的 D前者是根据变量值大小排列的,后者是根据时间顺序排列的 2.时间数列中,数值大小与时间长短有直接关系的是() A平均数时间数列B时期数列C时点数列D相对数时间数列 3.发展速度属于() A比例相对数B比较相对数C动态相对数D强度相对数 4.计算发展速度的分母是() A报告期水平B基期水平C实际水平D计划水平5.某车间月初工人人数资料如下: 则该车间上半年的平均人数约为() A 296人 B 292人 C 295 人 D 300人 6.某地区某年9月末的人口数为150万人,10月末的人口数为150.2万人,该地区10月的人口平均数为() A150万人B150.2万人C150.1万人D无法确定 7.由一个9项的时间数列可以计算的环比发展速度( )

A 有8个 B 有9个 C 有10个 D 有7个 8.采用几何平均法计算平均发展速度的依据是( ) A 各年环比发展速度之积等于总速度 B 各年环比发展速度之和等于总速度 C 各年环比增长速度之积等于总速度 D 各年环比增长速度之和等于总速度 9.某企业的产值2005年比2000年增长了58.6%,则该企业2001—2005年间产值的平均发展速度为( ) A 5 %6.58 B 5%6.158 C 6 %6.58 D 6%6.158 10.根据牧区每个月初的牲畜存栏数计算全牧区半年的牲畜平均存栏数,采用的公式是( ) A 简单平均法 B 几何平均法 C 加权序时平均法 D 首末折半法 11、时间序列在一年内重复出现的周期性波动称为( ) A 、长期趋势 B 、季节变动 C 、循环变动 D 、随机变动 1.C 2.B 3.C 4.B 5.C 6.C 7.A 8.A 9.B 10.D 11、B 二、多项选择题 1.对于时间数列,下列说法正确的有( ) A 数列是按数值大小顺序排列的 B 数列是按时间顺序排列的 C 数列中的数值都有可加性 D 数列是进行动态分析的基础

时间序列MATLAB程序

时间序列 移动平均法 clc,clear y=[533.8 574.6 606.9 649.8 705.1 772.0 816.4 892.7 963.9 1015.1 1102.7]; m=length(y); n=[4,5];%n为移动平均的项数 for i=1:length(n) %由于n的取值不同,下面使用了细胞数组 for j=1:m-n(i)+1

yhat{i}(j)=sum(y(j:j+n(i)-1))/n(i); end y12(i)=yhat{i}(end);%提出第12月份的预测值 s(i)=sqrt(mean((y(n(i)+1:end)-yhat{i}(1:end-1)).^2));%求预测的标准误差end y12, s %分别显示两种方法的预测值和预测的标准误差 指数平滑 一次指数平滑 程序: clc,clear yt=load('dianqi.txt'); %读取dianqi.txt的数据, n=length(yt); %求yt的长度 alpha=[0.2 0.5 0.8]; %输入a的值 m=length(alpha) yhat(1,[1:m])=(yt(1)+yt(2))/2; %求第一个预测值索引 for i=2:n yhat(i,:)=alpha*yt(i-1)+(1-alpha).*yhat(i-1,:);

end yhat %求预测值 err=sqrt(mean((repmat(yt,1,m)-yhat).^2)) %求预测的标准误差 xlswrite('dianqi.xls',yhat) %把预测数据写到Excel文件,准备在word表格中使用yhat1988=alpha*yt(n)+(1-alpha).*yhat(n,:) %求1988的预测值 二次指数平滑

多元统计分析

作业一

1.2 分析2016年经济发展情况 排名省gdp 占比累计占比 1 广东79512.05 10.30 10.30 2 江苏76086.2 9.86 20.17 3 山东67008.2 8.68 28.85 4 浙江4648 5 6.02 34.87 5 河南40160.01 5.20 40.08 6 四川32680.5 4.24 44.31 7 湖北32297.9 4.19 48.50 8 河北31827.9 4.12 52.62 9 湖南31244.7 4.05 56.67 10 福建28519.2 3.70 60.37 11 上海27466.2 3.56 63.93 12 北京24899.3 3.23 67.16 13 安徽24117.9 3.13 70.28 14 辽宁22037.88 2.86 73.14 15 陕西19165.39 2.48 75.62 16 内蒙古18632.6 2.41 78.04 17 江西18364.4 2.38 80.42 18 广西18245.07 2.36 82.78 19 天津17885.4 2.32 85.10 20 重庆17558.8 2.28 87.37 21 黑龙江15386.09 1.99 89.37 22 吉林14886.23 1.93 91.30 23 云南14869.95 1.93 93.22 24 山西12928.3 1.68 94.90 25 贵州11734.43 1.52 96.42 26 新疆9550 1.24 97.66 27 甘肃7152.04 0.93 98.59 28 海南4044.51 0.52 99.11 29 宁夏3150.06 0.41 99.52 30 青海2572.49 0.33 99.85 31 西藏1150.07 0.15 100.00 将2016各省的GDP进行排名,可以发现,经济发达的的地区主要集中在东部地区。西部gdp的占比较小。作出2016各省的gdp直方图如下:

应用时间序列分析 -

姓名:葛国峰学号:1122307851 编号:33 习题2.3 2.解: data b; input y@@; time=intnx('month','1jan1975'd,_n_-1); format time data; cards; 330.45 330.97 331.64 332.87 333.61 333.55 331.90 330.05 328.58 328.31 329.41 330.63 331.63 332.46 333.36 334.45 334.82 334.32 333.05 330.87 329.24 328.87 330.18 331.50 332.81 333.23 334.55 335.82 336.44 335.99 334.65 332.41 331.32 330.73 332.05 333.53 334.66 335.07 336.33 337.39 337.65 337.57 336.25 334.39 332.44 332.25 333.59 334.76 335.89 336.44 337.63 338.54 339.06 338.95 337.41 335.71 333.68 333.69 335.05 336.53 337.81 338.16 339.88 340.57 341.19 340.87 339.25 337.19 335.49 336.63 337.74 338.36 ; run; proc gplot; plot y*time; symbol1v=dot i=join c=black w=3; proc arima data=b; identify var=y nlag=24; run; (1)序列图:

MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法

MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法: 1.层次聚类hierarchical clustering 2.k-means聚类 这里用最简单的实例说明以下层次聚类原理和应用发法。 层次聚类是基于距离的聚类方法,MATLAB中通过pdist、linkage、dendrogram、cluster等函数来完成。层次聚类的过程可以分这么几步: (1) 确定对象(实际上就是数据集中的每个数据点)之间的相似性,实际上就是定义一个表征对象之间差异的距离,例如最简单的平面上点的聚类中,最经常使用的就是欧几里得距离。 这在MATLAB中可以通过Y=pdist(X)实现,例如 >> X=randn(6,2) X = -0.4326 1.1892 -1.6656 -0.0376 0.1253 0.3273 0.2877 0.1746 -1.1465 -0.1867 1.1909 0.7258 >> plot(X(:,1),X(:,2),'bo') %给个图,将来对照聚类结果把 >> Y=pdist(X) Y = Columns 1 through 14 1.7394 1.0267 1.2442 1.5501 1.6883 1.8277 1.9648 0.5401 2.9568 0.2228 1.3717 1.1377 1.4790 1.0581 Column 15

2.5092 例子中X数据集可以看作包含6个平面数据点,pdist之后的Y是一个行向量,15个元素分别代表X 的第1点与2-6点、第2点与3-6点,......这样的距离。那么对于M个点的数据集X,pdist之后的Y 将是具有M*(M-1)/2个元素的行向量。Y这样的显示虽然节省了内存空间,但对用户来说不是很易懂,如果需要对这些距离进行特定操作的话,也不太好索引。MATLAB中可以用squareform把Y转换成方阵形式,方阵中位置的数值就是X中第i和第j点之间的距离,显然这个方阵应该是 个对角元素为0的对称阵。 >> squareform(Y) ans = 0 1.7394 1.0267 1.2442 1.5501 1.6883 1.7394 0 1.8277 1.9648 0.5401 2.9568 1.0267 1.8277 0 0.2228 1.3717 1.1377 1.2442 1.9648 0.2228 0 1.4790 1.0581 1.5501 0.5401 1.3717 1.4790 0 2.5092 1.6883 2.9568 1.1377 1.0581 2.5092 0 这里需要注意的是,pdist可以使用多种参数,指定不同的距离算法。help pdist把。 另外,当数据规模很大时,可以想象pdist产生的Y占用内存将是很吓人的,比如X有10k个数据点,那么X占10k*8*2Bytes=160K,这看起来不算啥,但是pdist后的Y会有10k*10k/2*8Bytes=400M 。怕了把,所以,废话说在前面,用MATLAB的层次聚类来处理大规模数据,大概是很不合适的。 (2) 确定好了对象间的差异度(距离)后,就可以用Z=linkage(Y)来产生层次聚类树了。 >> Z=linkage(Y) Z = 3.0000 4.0000 0.2228 2.0000 5.0000 0.5401 1.0000 7.0000 1.0267

matlab与多元统计分析

m a t l a b与多元统计分 析 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

Matlab 与多元统计分析 胡云峰 安庆师范学院 第三章习题 对某地区的6名2周岁男婴的身高、胸围、上半臂进行测量。得样本数据如表所示。假设男婴的测量数据X (a )(a=1,…,6)来自正态总体N 3(,∑) 的 随机样本。根据以往的资料,该地区城市2周岁男婴的这三项的均值向量0= (90,58,16)’,试检验该地区农村男婴与城市男婴是否有相同的均值向量。 表 某地区农村2周岁男婴的体格测量数据 解 1.预备知识 ∑未知时均值向量的检验: H 0:=0 H 1:≠0 H 0成立时 122)(0,)(1)(1,) ()'((1)))()'()(,1)(1)1(,) (1)P P X N n S W n n X n S X n X S X T p n n p T F P n p n p μμμμμ---∑--∑??∴----=-----+∴-- 当 2 (,)(1) n p T F p n p p n α-≥--或者22T T α≥拒绝0H 当 2 (,)(1) n p T F p n p p n α-<--或者22T T α<接受0H

这里2(1) (, )p n T F p n p n p αα-= -- 2.根据预备知识用matlab 实现本例题 算样本协方差和均值 程序x=[78 ;76 ;92 ;81 ;81 ;84 ]; [n,p]=size(x); i=1:1:n; xjunzhi=(1/n)*sum(x(i,:)); y=rand(p,n); for j=1:1:n y(:,j)= x(j,:)'-xjunzhi'; y=y; end A=zeros(p,p); for k=1:1:n; A=A+(y(:,k)*y(:,k)'); end xjunzhi=xjunzhi' S=((n-1)^(-1))*A 输出结果xjunzhi = S = 然后u=[90;58;16]; t2=n*(xjunzhi-u)'*(S^(-1))*(xjunzhi-u) f=((n-p)/(p*(n-1)))*t2 输出结果t2 = f = 所以21()'()T n X S X μμ-=--=

相关文档
最新文档