NDVI时间序列线性趋势提取异常及STL参数trend_jump设置咨询
NDVI时间序列趋势提取问题
我需要提取NDVI时间序列的线性趋势,使用Python的以下代码做线性回归:
from sklearn.linear_model import LinearRegression import pandas as pd data_orig = pd.read_csv('NDVI.csv') N_values = data_orig['N'].values.reshape(-1, 1) NDVI_values = data_orig['NDVI'].values model = LinearRegression() model.fit(N_values, NDVI_values) slope = model.coef_[0] intercept = model.intercept_ print("Linear trend equation: NDVI = {:.4f} * N + {:.4f}".format(slope, intercept))
代码输出为:Linear trend equation: NDVI = 0.0000 * N + 0.0485。但从时间序列可视化图中能明显看到植被呈增长趋势,因此认为这个线性趋势结果不正确。
我还尝试了LOESS相关的STL方法,代码如下:
import matplotlib.pyplot as plt import pandas from pandas.plotting import register_matplotlib_converters data_orig = pandas.read_csv('NDVI.csv') from statsmodels.tsa.seasonal import STL res = STL(data_orig['NDVI'], period=46, trend_jump=460).fit()
通过这个方法得到了合理且显著的上升趋势,但不确定将trend_jump参数设置为时间序列的样本数量(460)是否可行。
NDVI时间序列可视化图:
内容的提问来源于stack exchange,提问作者FF123456
相关产品推荐
相关产品推荐

