如何从时间序列中找到线性趋势?

时间:2015-05-23 22:15:44

标签: matlab linear

我如何从时间序列中找到线性趋势?

我知道时间序列为y = {y1,...yn}或第一个案例{1.000000000000000 0.917457418407746 0.683456229182811}。我们假设每个元素yi都是在ti = i时采样的。

需要拟合的多项式为1度。

我尝试过的是下面的内容。

function [ linCoeffs ] = getLinearTrend(y)

   y = [1.000000000000000,0.917457418407746,0.683456229182811];
   x = ;
   linCoeffs = polyfit(y,x,1);

end

我不知道如何为x值做些什么。通常情况下,y将是一个输入值,但对于测试,我只是把它留在了。

1 个答案:

答案 0 :(得分:2)

您似乎以错误的顺序向polyfit提供了参数。第一个参数采用 x 轴的值,在这种情况下,它对应于 i 给出的采样时间。 第二个参数采用 y 值。所以你想要的东西是:

function linCoeffs = getLinearTrend(y)

   linCoeffs = polyfit(1:size(y,2), y, 1);

end

,根据您的示例 y ,结果为:

y = [1.000000000000000,0.917457418407746,0.683456229182811];

getLinearTrend(y)
ans =

  -0.15827   1.18351