matlab如何记录时间,求助:在MATLAB里如何输入时间序列中的时间
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
function
[logRS,logERS,V]=RSana(x,n,method,q)
%Syntax:
[logRS,logERS,V]=RSana(x,n,method,q)
%____________________________________________
%
% Performs R/S
analysis on a time series.
%
% logRS is the
log(R/S).
% logERS is the
Expectation of log(R/S).
% V is the V
statistic.
% x is the time
series.
% n is the vector
with the sub-periods.
% method can take
one of the following values
% 'Hurst'
for the Hurst-Mandelbrot variation.
% 'Lo' for the Lo variation.
% 'MW' for the Moody-Wu variation.
% 'Parzen' for the Parzen variation.
% q can be either
% a (non-negative) integer.
% 'auto' for the Lo's suggested value.
%
%
% References:
%
% Peters E (1991):
Chaos and Order in the Capital Markets. Willey
%
% Peters E (1996):
Fractal Market Analysis. Wiley
%
% Lo A (1991): Long
term memory in stock market prices. Econometrica
% 59: 1279-1313
%
% Moody J, Wu L
(1996): Improved estimates for Rescaled Range and Hurst
% exponents. Neural
Networks in Financial Engineering, eds. Refenes A-P
% Abu-Mustafa Y,
Moody J, Weigend A: 537-553, Word Scientific
%
% Hauser M (1997):
Semiparametric and nonparametric testing for long
% memory: A Monte
Carlo study. Empirical Economics 22: 247-271
%
%
% Alexandros
Leontitsis
% Department of
Education
% University of
Ioannina
% 45110 - Dourouti
% Ioannina
% Greece
%
% University
e-mail: me00743@cc.uoi.gr
% Lifetime e-mail:
leoaleq@yahoo.com
% Homepage:
http://www.geocities.com/CapeCanaveral/Lab/1421
%
% 1 Jan 2004.
if nargin<1 |
isempty(x)==1
error('You should provide a time series.');
else
% x must be a vector
if min(size(x))>1
error('Invalid time series.');
end
x=x(:);
% N is the time series length
N=length(x);
end
if nargin<2 |
isempty(n)==1
n=1;
else
% n must be either a scalar or a vector
if
min(size(n))>1
error('n must be either a scalar or a
vector.');
end
% n must be integer
if n-round(n)~=0
error('n must be integer.');
end
% n must be positive
if n<=0
error('n must be positive.');
end
end
if nargin<4 |
isempty(q)==1
q=0;
else
if q=='auto'
t=autocorr(x,1);
t=t(2);
q=((3*N/2)^(1/3))*(2*t/(1-t^2))^(2/3);
else
% q must be a scalar
if sum(size(q))>2
error('q must be scalar.');
end
% q must be integer
if q-round(q)~=0
error('q must be integer.');
end
% q must be positive
if q<0
error('q must be positive.');
end
end
end
for i=1:length(n)
% Calculate the sub-periods
a=floor(N/n(i));
% Make the sub-periods matrix
X=reshape(x(1:a*n(i)),n(i),a);
% Estimate the mean of each sub-period
ave=mean(X);
% Remove the mean from each sub-period
cumdev=X-ones(n(i),1)*ave;
% Estimate the cumulative deviation from
the mean
cumdev=cumsum(cumdev);
% Estimate the standard deviation
switch method
case 'Hurst'
% Hurst-Mandelbrot variation
stdev=std(X);
case 'Lo'
% Lo variation
for j=1:a
sq=0;
for k=0:q
v(k+1)=sum(X(k+1:n(i),j)'*X(1:n(i)-k,j))/(n(i)-1);
if k>0
sq=sq+(1-k/(q+1))*v(k+1);
end
end
stdev(j)=sqrt(v(1)+2*sq);
end
case 'MW'
% Moody-Wu variation
for j=1:a
sq1=0;
sq2=0;
for k=0:q
v(k+1)=sum(X(k+1:n(i),j)'*X(1:n(i)-k,j))/(n(i)-1);
if k>0
sq1=sq1+(1-k/(q+1))*(n(i)-k)/n(i)/n(i);
sq2=sq2+(1-k/(q+1))*v(k+1);
end
end
stdev(j)=sqrt((1+2*sq1)*v(1)+2*sq2);
end
case 'Parzen'
% Parzen variation
if mod(q,2)~=0
error('For the "Parzen"
variation q must be dived by 2.');
end
for j=1:a
sq1=0;
sq2=0;
for k=0:q
v(k+1)=sum(X(k+1:n(i),j)'*X(1:n(i)-k,j))/(n(i)-1);
if k>0 & k<=q/2
sq1=sq1+(1-6*(k/q)^2+6*(k/q)^3)*v(k+1);
elseif k>0 & k>q/2
sq2=sq2+(1-(k/q)^3)*v(k+1);
end
end
stdev(j)=sqrt(v(1)+2*sq1+2*sq2);
end
otherwise
error('You should provide another value for "method".');
end
% Estiamte the rescaled range
rs=(max(cumdev)-min(cumdev))./stdev;
clear stdev
% Take the logarithm of the mean R/S
logRS(i,1)=log10(mean(rs));
if nargout>1
% Initial calculations fro the
log(E(R/S))
j=1:n(i)-1;
s=sqrt((n(i)-j)./j);
s=sum(s);
% The estimation of log(E(R/S))
logERS(i,1)=log10(s/sqrt(n(i)*pi/2));
% Other estimations of log(E(R/S))
%logERS(i,1)=log10((n(i)-0.5)/n(i)*s/sqrt(n(i)*pi/2));
%logERS(i,1)=log10(sqrt(n(i)*pi/2));
end
if nargout>2
% Estimate V
V(i,1)=mean(rs)/sqrt(n(i));
end
end
matlab如何记录时间,求助:在MATLAB里如何输入时间序列中的时间相关推荐
- matlab函数输入顺序,求助:在MATLAB里如何输入时间序列中的时间
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [logRS,logERS,V]=RSana(x,n,method,q) %Syntax: [logRS,logERS,V]=RSana ...
- matlab 时间序列 周期,求助:在MATLAB里如何输入时间序列中的时间
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [logRS,logERS,V]=RSana(x,n,method,q) %Syntax: [logRS,logERS,V]=RSana ...
- 如何生成时间序列matlab,求助:在MATLAB里如何输入时间序列中的时间
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [logRS,logERS,V]=RSana(x,n,method,q) %Syntax: [logRS,logERS,V]=RSana ...
- matlab日期textscan,求助:在MATLAB里如何输入时间序列中的时间
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [logRS,logERS,V]=RSana(x,n,method,q) %Syntax: [logRS,logERS,V]=RSana ...
- 在matlab中输入时间日期,求助:在MATLAB里如何输入时间序列中的时间
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [logRS,logERS,V]=RSana(x,n,method,q) %Syntax: [logRS,logERS,V]=RSana ...
- MATLAB中年份加月份怎么输,求助:在MATLAB里如何输入时间序列中的时间
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 function [logRS,logERS,V]=RSana(x,n,method,q) %Syntax: [logRS,logERS,V]=RSana ...
- linux 命令提示符 时间,在LINUX的命令提示符及CMD命令提示符中显示时间
用途之一是可以查看某个命令或程序的执行时间. 一.CMD中显示时间设置 参数说明: $P:当前路径 $G:>(大于号) $T:当前时间,精确到0.01s 实验如下: C:\Users\g4-10 ...
- cmd怎么进入linux系统时间,在LINUX的命令提示符及CMD命令提示符中显示时间
用途之一是可以查看某个命令或程序的执行时间. 一.CMD中显示时间设置 参数说明: $P:当前路径 $G:>(大于号) $T:当前时间,精确到0.01s 实验如下: C:\Users\g4-10 ...
- oracle时间24小时格式转换,在oracle数据库中查询时间并转为24小时制--------------String转Date类型或者Date转String类型...
1.在Oracle数据库中查询时间的时候,首先就是把日期从date类型的转化为String类型的. 2.将date类型的转成String类型的,直接调用传入date类型的参数,返回String类型的字 ...
最新文章
- 苹果裁员逾200人,拿无人驾驶“开刀”
- oracle时间相减得到天数_【数列】从错位相减到阿贝尔变换
- 戴森最新吸尘器,竟用上了无人车和宇宙飞船黑科技
- jsp九大内置对象和四大作用域_JSP学习3
- android如何引用布局,android 动态布局与引用第三方layout中的布局
- 类与对象和对应方法、封装
- html制作状态栏数字时钟,html5 canvas制作15种数字时钟样式代码
- sci的figure怎么做_如何制作科技论文中的Figure
- 打开文件管理器_会声会影影片配置文件管理器
- poj3660 Cow Contest
- WCF 基础 契约 和 绑定
- Windows解决net Framerwork 3.5无法安装的问题
- ipq4019 识别板卡型号的过程
- 世界多国语言代码及区域代码
- 7款堪称神器的黑科技App,每一款都是黑科技十足!
- html制作dnf,DNF教你如何不花一分钱制作90顶级史诗
- PHPStorm长时间Updating Indices
- 人可以活得更用力一些
- Makefile里的wildcard 理解
- 2010-12-28