时间序列分析/趋势线/检测趋势/ matlab

时间:2016-07-19 23:12:55

标签: matlab time-series regression linear trend

我已经绘制了一个时间序列图,其中x轴为年,y轴为概率。这些年是1979年至2100年。我想要做的是找到概率增加的地方(在这种情况下,更强大的风暴的概率)在95%的水平上变得具有统计显着性。

我想通过计算每年5年最佳拟合线(使用fitlm或regstats)来计算,并计算其t检验/ p值。所以从1979年开始,将有一个5年的最佳拟合线,贯穿1983年,下一次运行从1980年到1984年,然后是1981年至1985年,依此类推,直到2100年。从那里,我将看到该线的斜率在95%的水平上是否在统计上与零不同(即,其p值低于0.05)。

我知道如何在时间序列图上创建和叠加趋势线,但这很令人烦恼。在这一点上我真的很茫然,可以使用你能提供的任何帮助来创建这些运行趋势线,并自动跟踪一个统计上与零不同的时间。

使用样本数据集的一些示例代码:

% filename = sample_running_trendlines.m
% Purpose: to figure out how to do running trend lines, ultimate aim is to use with binned timeseries to find out when increase becomes statistically significant

% create sample data

% years
X = [1979:1:2100];

% probability density
Y = random('Normal',0.5,0.1,1,122); % mean of 0.5, standard dev of 0.1, ...
% match dimensions of X

% build best fit model/trend line for each year
for i = 3:120;
    data = Y(i-2:i+2);
    mdl = regstats(data,X,'linear');%,{'tstat' 'yhat' 'fstat' 'beta'});
end

0 个答案:

没有答案
相关问题