我正在尝试从R过渡到Python以进行时间序列分析-但发现它非常困难。下面的代码是我在R中使用的代码-将正弦曲线回归到具有已知周期的某些数据上。
year <- c(0:100)
lm(data~sin(2*pi*year/15)+cos(2*pi*year/15))
现在,我想在Python中做同样的事情,我遇到了很长的方法,涉及进行初步猜测然后进行优化等。获得可比结果的最简单方法是什么?
我没有完全得到您想要的结果,lm是线性模型,您可以尝试在sklearn中进行线性回归,如下所示:
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
year = np.arange(0, 100, 1)
year = np.reshape(year, (1, -1))
year_predict = np.arange(100, 200, 1)
year_predict = np.reshape(year_predict, (1, -1))
y = np.sin(2*np.pi*year/15)+np.cos(2*np.pi*year/15)
lm = LinearRegression()
lm.fit(year, y)
y_pred = lm.predict(year_predict)
plt.plot(year[0,:], y[0,:])
plt.plot(year_predict[0,:], y_pred[0,:])
plt.ylabel('np.sin(2*pi*year/15)+np.cos(2*pi*year/15)')
plt.show()
更多详细信息,请点击此处:https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html
如果不清楚,请在此处写。我们可以为您提供帮助