问题描述
lomb Scargle 周期图:
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
from scipy import signal
from astropy.time import Time
from astropy.timeseries import LombScargle
m5_data = pd.read_csv('tmp')
m5_data.head()
date sales
0 2011-01-29 32631.0
1 2011-01-30 31749.0
2 2011-01-31 23783.0
3 2011-02-01 25412.0
4 2011-02-02 19146.0
"""Converting dates to MJD """
tmp_str = m5_data.iloc[:,0].astype(pd.StringDtype())
t_date = np.array(tmp_str.values,dtype = 'str')
t_date = Time(t_date,format='isot',scale='utc')
t_date.format = 'mjd'
y = m5_data.iloc[:,1]
m5_ls = LombScargle(t_date,y)
m5_frequency,m5_power = m5_ls.autopower()
plt.plot(m5_frequency,m5_power)
plt.show()
- x 轴代表什么?是以天为单位的频率还是以 1/天为单位的频率?
- 所以 2 处的峰值是否意味着每两天有一个周期,还是意味着有一个 1/2 天的周期,这是一个小数天,我不明白我怎么能得到小数天,当我每天只能观察 1 次。
总体目标是确定数据是否具有周期性。鉴于此数据是商店产品的销售额,我希望如果数据是周期性的,则周期为 7 天(每周)、30 天(每月)、182 天(半年)
所以 2 处的峰值对我来说没有意义。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)