用python做时间序列分析时,调用了R语言中的stl函数。共享脚本和踩过的坑:
import pandas as pd
from pandas import DataFrame
import numpy as np
import time
import datetime
import rpy2.robjects as robjects
from rpy2.robjects import pandas2ri
def abnormal_detection(observed):
pandas2ri.activate()
stl=robjects.r['stl']
ts=robjects.r['ts']
c=robjects.r['c']
read_csv=robjects.r['read.csv']
observed_periodic=ts(observed,frequency=7,start=c(1,1))
decompose=stl(observed_periodic,"per",robust="TRUE",t_degree=1)
#分解出decompose结果中,seasonal, trend,residual。
lenth = len(decompose[0])
seasonal=decompose[0][0:int(lenth/3)]
trend=decompose[0][int(lenth/3):int(2*lenth/3)]
residual = decompose[0][int(2*lenth/3):]
其中一个坑是在d