时间序列互相关 (时空模式挖掘)

摘要

用于计算存储在时空立方体中的两个时间序列之间不同时间滞后的互相关性。

通过将每个时间序列的对应值配对并计算皮尔逊相关系数来计算互相关性。 然后将第二个时间序列移动一个时间步长,并计算新的相关性。 这种转变会重复指定的最大时间步数。 相关性最强的时间滞后(偏移)是对一个时间序列的变化与另一个时间序列的响应之间的延迟的估计(例如,广告支出和销售收入之间的延迟)。 您可以过滤并删除时间序列中的趋势,以测试变量之间统计上显着的相关性。 您还可以在计算中包含空间相邻要素,以合并两个时间序列之间的空间关系。

详细了解时间序列互相关的工作原理

插图

时间序列互相关工具图
互相关是在时空立方体的所有位置跨越不同时间滞后的两个时间序列之间计算的。

使用情况

  • 时滞值的符号(正或负)被解释为次要分析变量相对于主要分析变量的偏移。 例如,时间滞后值为 5 表示在计算互相关之前,辅助变量向前移动五个时间步长(时间轴右侧)。 如果相关性最强的时间滞后为正,则意味着次要分析变量值的变化发生在主要分析变量的变化之前。 同样,时间滞后值 -3 表示辅助时间序列向后移动三个时间步长(在时间轴上向左)。 如果相关性最强的时间滞后为负,则意味着主要分析变量的变化发生在次要分析变量的变化之前。

    了解有关时间滞后的更多信息

  • 该工具的主要输出是一个要素类,其中包含所有时间滞后的每个位置的互相关结果。 在地图中,将添加包含来自输出要素的不同领域的六个图层的组图层:强相关性的三个图层(正性最强、负性最强、绝对值最强)以及每个最强相关性的相关时间滞后的三个图层。 您可以使用这些图层快速识别哪些位置具有最强的相关性以及哪些时间滞后产生了相关性。

    或者,您可以在输出要素上创建弹出图表,总结并可视化每个位置所有滞后的相关性。 您还可以创建包含每个时间间隔位置之间的所有单独相关性的输出表。

    了解有关工具输出的详细信息

  • 使用要包含在计算中的空间相邻要素参数可使用每个位置周围的相邻要素来计算互相关性。 当附近位置的时间序列往往比较远位置的时间序列更相似时,这是合适的。 如果使用相邻要素,则位置的互相关性是焦点位置的主要变量与其每个相邻要素(包括其自身)的次要变量之间的相关性的加权平均值。 例如,如果一个位置有 5 个相邻要素,则该位置的互相关性是 6 个相关性的加权平均值:焦点位置的主变量与焦点位置的次要变量之间的相关性、焦点位置的主变量与焦点位置的次要变量之间的相关性。焦点位置和第一个相邻要素的次要变量,焦点位置的主要变量和第二个相邻要素的次要变量之间的相关性,等等。 空间邻近加权方法参数指定将在加权平均中使用的权重。

  • 要测试每个滞后处互相关的统计显着性,必须检查过滤和删除趋势参数。 选中后,将为所有位置的所有滞后计算 p 值和 95% 置信区间。 此外,显着性测试只能对两个时间序列之间的成对相关性(而不是多重相关性的加权平均值)进行,因此,如果在计算中包括空间相邻要素,则只有输出成对相关性表将包含 p 值和置信区间。 如果不包括相邻要素,则输出要素和输出滞后相关表将包含 p 值和置信区间字段。

    警告:

    统计显着性检验是对每个位置的每个时间滞后独立进行的,并且没有对多重假设检验进行校正。 在解释任何特定 p 值或置信区间的显着性时要小心。

    了解有关消除趋势和过滤自相关的更多信息

  • 可以为主要分析变量和次要分析变量输入相同的分析变量(称为自相关分析)。 然而,结果可能难以解释,因为当时间滞后值为零(未平移)时,时间序列始终与其自身完全相关。 输出要素和相关表将包含所有时滞的相关结果,时滞为零时的结果可以被过滤或取消选择。

参数

标注说明数据类型
输入时空立方体

包含要分析的变量的时空立方体。 时空立方体具有 .nc 文件扩展名,是使用时空模式挖掘工具箱中的各种工具创建的。

File
主要分析变量

时空立方体的数值变量,包含主变量的时间序列值。

String
次要分析变量

包含辅助分析变量的时空立方体的数值变量。 当使用时间滞后时,次要分析变量相对于主要分析变量会发生偏移。

String
输出要素

输出要素包含所有时间滞后的所有位置的互相关性。 输出还将具有最强相关性(正、负和绝对)的字段以及所有时间滞后的相关性字段。 如果您过滤并删除趋势,并且不使用相邻要素,则输出将包含 p 值字段和所有互相关的 95% 置信区间。

Feature Class
启用时间序列弹出窗口
(可选)

指定是否在每个输出要素的弹出窗口中创建显示互相关结果的时间序列图表。 Shapefile 输出不支持时间序列弹出窗口。

  • 选中 - 将为输出要素创建时间序列图表。
  • 未选中 - 不会创建时间序列图表。 这是默认设置。
Boolean
最大时间延迟
(可选)

将用于移动辅助分析变量的最大时间滞后数。 将为每个时滞值计算互相关性,直至最大值。 即使对于负时滞也提供正值;例如,如果为此参数提供 10,并且时滞方向将次要变量向两个方向移动,则将为 -10 到 10 之间的所有时滞计算互相关。 如果未提供值,则将根据时间序列的长度确定一个值。 提供值 0 以仅计算时间序列之间的原始相关性,没有任何时间滞后。

Long
次要可变滞后方向
(可选)

指定时间延迟的方向。 次要变量可以在时间上向前移动(相对于主要变量)、在时间上向后移动或在两个方向上移动。

  • 双向移动辅助变量次要分析变量将在两个方向上移动。 例如,如果最大时间滞后为 5,则将计算 -5 到 5 之间所有时间滞后的相关性。 这是默认设置。
  • 将次要变量在时间上向前移动次要分析变量将在时间上向前移动(在时间轴的右侧)。 例如,如果最大时间滞后为 5,则将计算 0 到 5 之间所有时间滞后的相关性。 当次要分析变量的变化发生在主要分析变量的变化之前时,此选项适用。
  • 将辅助变量在时间上向后移动次要分析变量将在时间上向后移动(在时间轴上向左)。 例如,如果最大时间滞后为 5,则将计算 -5 到 0 之间所有时间滞后的相关性。 当主要分析变量的变化发生在次要分析变量的变化之前时,此选项适用。
String
要包含在计算中的空间相邻要素
(可选)

指定将在计算中使用的每个位置周围的相邻要素。 如果使用相邻要素,则位置的互相关性是焦点位置的主要变量与其每个相邻要素(包括其自身)的次要变量之间的相关性的加权平均值。

  • 无相邻要素计算中不会包含任何空间相邻要素。
  • 距离范围每个位置指定距离内的位置将作为相邻要素包含在计算中。
  • K - 最近邻给定数量的最近位置将作为相邻要素包含在计算中。
  • 仅邻接边共享边的面将作为相邻要素包含在内(车邻接)。
  • 邻接边拐角共享边或角的面将作为相邻要素(皇后邻接)包含在内。
String
空间邻域数
(可选)

数量的最近位置将作为相邻要素包含在计算中。

Long
距离范围
(可选)

此距离内的所有位置都将作为相邻要素包含在内。 如果未提供任何值,则将在处理过程中估算一个值,并将其作为地理处理消息包含在内。 如果指定距离导致相邻要素的数目超过 1,000,则将仅包含最近的 1,000 个位置作为相邻要素。 对于面,质心之间的距离用于确定相邻要素。

Linear Unit
空间邻近加权法
(可选)

指定计算相关性时将应用于空间相邻要素的加权方案。 在计算焦点要素与每个相邻要素之间的相关性的加权平均值时使用权重。

  • 同等重量每个相邻要素将获得相同的权重(未加权)。 这是默认设置。
  • 双平方核将使用双平方核对相邻要素进行加权。
  • 高斯核将使用高斯核对相邻要素进行加权。
String
过滤并删除趋势
(可选)

指定是否将从主要分析变量中删除趋势、季节性和自相关并用于过滤次要分析变量。

  • 选中 — 趋势、季节性和自相关将被删除。
  • 未选中 - 时间序列值不会更改。 这是默认设置。
Boolean
输出滞后相关表
(可选)

包含每个位置的每个时间滞后的相关性的表。

Table
输出成对相关表
(可选)

包含所有时间滞后的每个位置和每个相邻要素之间的成对相关性的表。

Table

派生输出

标注说明数据类型
输出图层组

输出图层的图层组。

Group Layer

arcpy.stpm.TimeSeriesCrossCorrelation(in_cube, analysis_variable_1, analysis_variable_2, output_features, {enable_pop_ups}, {max_lag}, {lag_direction}, {neighborhood_type}, {num_nbrs}, {distance_band}, {spatial_weights}, {filter_option}, {out_corr_table}, {out_pair_table})
名称说明数据类型
in_cube

包含要分析的变量的时空立方体。 时空立方体具有 .nc 文件扩展名,是使用时空模式挖掘工具箱中的各种工具创建的。

File
analysis_variable_1

时空立方体的数值变量,包含主变量的时间序列值。

String
analysis_variable_2

包含辅助分析变量的时空立方体的数值变量。 当使用时间滞后时,次要分析变量相对于主要分析变量会发生偏移。

String
output_features

输出要素包含所有时间滞后的所有位置的互相关性。 输出还将具有最强相关性(正、负和绝对)的字段以及所有时间滞后的相关性字段。 如果您过滤并删除趋势,并且不使用相邻要素,则输出将包含 p 值字段和所有互相关的 95% 置信区间。

Feature Class
enable_pop_ups
(可选)

指定是否在每个输出要素的弹出窗口中创建显示互相关结果的时间序列图表。 Shapefile 输出不支持时间序列弹出窗口。

  • CREATE_POPUP将为输出要素创建时间序列图表。
  • NO_POPUP不会创建时间序列图表。 这是默认设置。
Boolean
max_lag
(可选)

将用于移动辅助分析变量的最大时间滞后数。 将为每个时滞值计算互相关性,直至最大值。 即使对于负时滞也提供正值;例如,如果为此参数提供 10,并且时滞方向将次要变量向两个方向移动,则将为 -10 到 10 之间的所有时滞计算互相关。 如果未提供值,则将根据时间序列的长度确定一个值。 提供值 0 以仅计算时间序列之间的原始相关性,没有任何时间滞后。

Long
lag_direction
(可选)

指定时间延迟的方向。 次要变量可以在时间上向前移动(相对于主要变量)、在时间上向后移动或在两个方向上移动。

  • BOTH次要分析变量将在两个方向上移动。 例如,如果最大时间滞后为 5,则将计算 -5 到 5 之间所有时间滞后的相关性。 这是默认设置。
  • FORWARD次要分析变量将在时间上向前移动(在时间轴的右侧)。 例如,如果最大时间滞后为 5,则将计算 0 到 5 之间所有时间滞后的相关性。 当次要分析变量的变化发生在主要分析变量的变化之前时,此选项适用。
  • BACKWARD次要分析变量将在时间上向后移动(在时间轴上向左)。 例如,如果最大时间滞后为 5,则将计算 -5 到 0 之间所有时间滞后的相关性。 当主要分析变量的变化发生在次要分析变量的变化之前时,此选项适用。
String
neighborhood_type
(可选)

指定将在计算中使用的每个位置周围的相邻要素。 如果使用相邻要素,则位置的互相关性是焦点位置的主要变量与其每个相邻要素(包括其自身)的次要变量之间的相关性的加权平均值。

  • NO_NBRS计算中不会包含任何空间相邻要素。
  • FIXED_DISTANCE每个位置指定距离内的位置将作为相邻要素包含在计算中。
  • K_NEAREST_NEIGHBORS给定数量的最近位置将作为相邻要素包含在计算中。
  • CONTIGUITY_EDGES_ONLY共享边的面将作为相邻要素包含在内(车邻接)。
  • CONTIGUITY_EDGES_CORNERS共享边或角的面将作为相邻要素(皇后邻接)包含在内。
String
num_nbrs
(可选)

数量的最近位置将作为相邻要素包含在计算中。

Long
distance_band
(可选)

此距离内的所有位置都将作为相邻要素包含在内。 如果未提供任何值,则将在处理过程中估算一个值,并将其作为地理处理消息包含在内。 如果指定距离导致相邻要素的数目超过 1,000,则将仅包含最近的 1,000 个位置作为相邻要素。 对于面,质心之间的距离用于确定相邻要素。

Linear Unit
spatial_weights
(可选)

指定计算相关性时将应用于空间相邻要素的加权方案。 在计算焦点要素与每个相邻要素之间的相关性的加权平均值时使用权重。

  • EQUAL每个相邻要素将获得相同的权重(未加权)。 这是默认设置。
  • BISQUARE将使用双平方核对相邻要素进行加权。
  • GAUSSIAN将使用高斯核对相邻要素进行加权。
String
filter_option
(可选)

指定是否将从主要分析变量中删除趋势、季节性和自相关并用于过滤次要分析变量。

  • FILTER趋势、季节性和自相关将被删除。
  • NO_FILTER时间序列值不会更改。 这是默认设置。
Boolean
out_corr_table
(可选)

包含每个位置的每个时间滞后的相关性的表。

Table
out_pair_table
(可选)

包含所有时间滞后的每个位置和每个相邻要素之间的成对相关性的表。

Table

派生输出

名称说明数据类型
output_layer_group

输出图层的图层组。

Group Layer

代码示例

TimeSeriesCrossCorrelation 示例 1(Python 窗口)

以下 Python 脚本演示了如何使用 TimeSeriesCrossCorrelation 函数。

import arcpy
arcpy.stpm.TimeSeriesCrossCorrelation(
    in_cube=r"c:\data\Sales.nc",
    analysis_variable_1="MARKETING",
    analysis_variable_2="REVENUE",
    output_features=r"CrossCorrResults",
    enable_pop_ups="NO_POPUP",
    max_lag=10,
    lag_direction="BOTH",
    neighborhood_type="K_NEAREST_NEIGHBORS",
    num_nbrs=8,
    distance_band=None,
    spatial_weights="EQUAL",
    filter_option="FILTER",
    out_corr_table=r"LagCorrTable",
    out_pair_table=r"PairCorrTable"
)
TimeSeriesCrossCorrelation 示例 2(独立脚本)

以下 Python 脚本演示了如何使用 TimeSeriesCrossCorrelation 函数。

# Estimate the time lag between infection and 
# hospitalization for seasonal influenza.

# Import required modules.
import arcpy

# Set the workspace.
arcpy.env.workspace = "c:/data/data.gdb"

# Run Time Series Cross Correlation
# Use neighbors and calculate p-values
try:
    arcpy.stats.CausalInferenceAnalysis(
        in_cube=r"c:\data\FluData.nc",
        analysis_variable_1="FLU_CASES",
        analysis_variable_2="HOSPITALIZATIONS",
        output_features=r"CrossCorrResults",
        enable_pop_ups="POPUP",
        max_lag=10,
        lag_direction="BOTH",
        neighborhood_type="K_NEAREST_NEIGHBORS",
        num_nbrs=8,
        distance_band=None,
        spatial_weights="BISQUARE",
        filter_option="FILTER",
        out_corr_table=r"LagCorrTable",
        out_pair_table=r"PairCorrTable"
    )
except arcpy.ExecuteError:
    # If an error occurred when running the tool, print the error message.
    print(arcpy.GetMessages())

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题