Я хочу извлечь линейный тренд из моего временного ряда 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))
И я не думаю, что это уравнение правильное, потому что растительность время, когда serird явно увеличивается со временем
Я также пробовал LOESS с этим кодом:
Код: Выделить всё
from statsmodels.datasets import co2
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()
This is my time series:

Источник: https://stackoverflow.com/questions/781 ... ime-series