用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

本文介绍了如何在Python中利用rpy2库调用R语言的STL函数进行时间序列分析。通过激活pandas2ri并定义相关R函数,将观察值转化为时间序列对象,并进行STL分解,提取季节性、趋势和残差。在使用过程中遇到t_degree参数在Python中报错的问题,最终发现需要按照Python语法调整为d_degree。
最低0.47元/天 解锁文章
1361

被折叠的 条评论
为什么被折叠?



