我的时间序列包含8年以上的每月数据。这是file,下面是数据示例。
Timestamp data
2011-02-28 0.899749
2011-03-31 0.900395
2011-04-30 0.901033
2011-05-31 0.901663
2011-06-30 0.902283
2011-07-31 0.902895
2011-08-31 0.903497
2011-09-30 0.904089
2011-10-31 0.904670
2011-11-30 0.905240
2011-12-31 0.905798
2012-01-31 0.906344
2012-02-29 0.906876
2012-03-31 0.907396
2012-04-30 0.907903
2012-05-31 0.908397
2012-06-30 0.908878
2012-07-31 0.909348
2012-08-31 0.909808
2012-09-30 0.910258
绘制出全部数据的线性拟合后,显示下降。请看图表。
现在,我要以百分比计算年度下降率。
这些是我的尝试,全部基于文献:
# 1st method
y = ax + b
where a is slope and b is intercept.
annual_relative_change = (12*slope)/intercept
# 2nd method using Logarithmic Transformation in Linear Regression Models
percent_change = np.log(y) - np.log(y.iloc[0])
# 3rd method (pythonic one)
percent_change = df['data'].pct_change()
方法2和3产生完全相同的结果,这与方法1的结果完全不同。我不知道哪个是正确的(如果是其中之一)。任何帮助都会很棒。