注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

foundryts.functions.integral

foundryts.functions.integral(method='LINEAR')

返回一个计算单个时间序列每秒积分的函数。

对于时间序列中的每个点 (t_i, v_i),输出一个数值等于该点(包含)之前所有点的积分。

积分通过↗ Reimann sums估算。积分使用参数中的method,支持的选项如下:

方法描述
LHS左端和法(LHS)通过在每个区间开始时对值求和来近似积分。它在上升趋势时往往低估,在下降趋势时往往高估。假设初始值代表整个区间,当历史值对总数有强烈影响时很有用。
RHS右端和法(RHS)通过在每个区间结束时对值求和来近似积分。它在上升趋势时往往高估,在下降趋势时往往低估。假设最终值反映了趋势,当最近的值更能反映累计趋势时很有用。
> LINEAR

(默认)
梯形法则在每个区间的开始和结束时对值进行平均。它提供了一个平衡的近似,减少高估或低估的情况。对波动趋势有用,因为它同时考虑了早期和最近的值。
  • 参数: method (str , 非必填) – 用于估算给定点积分值的方法,有效选项列在上表中(默认是 LINEAR)。
  • 返回: 一个接受单个时间序列作为输入并返回具有每秒积分值的时间序列的函数。
  • 返回类型: (FunctionNode) -> FunctionNode

数据框架架构

列名类型描述
timestamppandas.Timestamp点的时间戳
valuefloat点的值
注意

此函数仅适用于数值序列。

示例

Copied!
1 2 3 4 5 6 7 8 9 10 11 >>> series = F.points( ... (1000, 1.0), (3000, 3.0), (5000, 0.0), (6000, 5.0), (8000, -7.0), ... name="series" ... ) >>> series.to_pandas() timestamp value 0 1970-01-01 00:00:00.000001 1.0 1 1970-01-01 00:00:00.000003 3.0 2 1970-01-01 00:00:00.000005 0.0 3 1970-01-01 00:00:00.000006 5.0 4 1970-01-01 00:00:00.000008 -7.0

这个代码段展示了如何使用 F.points() 函数创建一个时间序列数据。这里的每个数据点由一个时间戳(以微秒为单位)和一个对应的值组成。然后,通过 series.to_pandas() 方法将这个时间序列数据转换成 Pandas DataFrame 格式,从而方便进行进一步的数据处理和分析。

Copied!
1 2 3 4 5 6 7 8 9 10 11 >>> linear_integral = F.integral(method="LINEAR")(series) # 使用线性方法计算积分 >>> linear_integral.to_pandas() # 将积分结果转换为 pandas 数据框 timestamp value 0 1970-01-01 00:00:00.000001 0.000000 1 1970-01-01 00:00:00.000003 0.000004 2 1970-01-01 00:00:00.000005 0.000007 3 1970-01-01 00:00:00.000006 0.000009 4 1970-01-01 00:00:00.000008 0.000007

上述代码通过使用线性方法计算给定 series 的积分,然后将计算结果转换为 pandas 数据框格式。timestamp 表示时间戳,value 列表示对应的积分值。

Copied!
1 2 3 4 5 6 7 8 9 10 11 >>> lhs_integral = F.integral(method="LHS")(series) # 使用左矩形法(LHS)计算积分 >>> lhs_integral.to_pandas() # 将积分结果转换为 Pandas DataFrame 格式以便查看 timestamp value 0 1970-01-01 00:00:00.000001 0.000000 1 1970-01-01 00:00:00.000003 0.000002 2 1970-01-01 00:00:00.000005 0.000008 3 1970-01-01 00:00:00.000006 0.000008 4 1970-01-01 00:00:00.000008 0.000018

这个代码片段中,F.integral(method="LHS")(series) 计算了一个时间序列数据的积分,使用的方法是左矩形法(Left Hand Sum)。to_pandas() 方法将结果转化为 Pandas DataFrame 格式,以便于查看和处理。表格中包含每个时间戳对应的积分值。

Copied!
1 2 3 4 5 6 7 8 9 10 11 >>> rhs_integral = F.integral(method="RHS")(series) # 使用右端点法(RHS)计算给定时间序列的积分 >>> rhs_integral.to_pandas() # 将积分结果转换为Pandas DataFrame格式以便查看 timestamp value 0 1970-01-01 00:00:00.000001 0.000000 1 1970-01-01 00:00:00.000003 0.000006 2 1970-01-01 00:00:00.000005 0.000006 3 1970-01-01 00:00:00.000006 0.000011 4 1970-01-01 00:00:00.000008 -0.000003