插图
使用方法
此工具的主要输出形式为报表文件,在工具执行期间,该输出以消息形式写到地理处理窗格底部。您可以将鼠标悬停在进度条上来访问该消息,单击弹出按钮或展开地理处理窗格中的消息部分。您还可以通过地理处理历史访问之前运行探索性回归的消息。
此工具将会选择性地创建一个用于汇总结果的文本文件报表。此报表文件将被添加到内容列表 (TOC) 中,并且可以通过右键单击并选择打开在 ArcMap 中进行查看。
此工具还会生成一个可选表,该表包括所有满足最大系数 p 值边界和方差膨胀因子 (VIF) 值条件的模型。解释探索性回归结果中提供了报表元素和表的完整解释。
此工具使用的是普通最小二乘法 (OLS) 和空间自相关 (Global Moran's I)。可选的空间权重矩阵文件用于空间自相关 (Global Moran's I) 工具,从而对模型残差进行评估;OLS 工具则根本不会使用此文件。
此工具将尝试输入候选解释变量的每一种组合,以寻找正确指定的 OLS 模型。仅当找到一个满足可接受的最小校正 R 平方、最大系数 p 值边界、最大 VIF 值边界和可接受的最小 Jarque Bera p 值阈值条件的模型时,此工具才会对模型残差运行空间自相关 (Global Moran's I) 工具,以了解偏低/偏高预计值是否会产生聚集。为了在全部模型均为通过所有这些条件的情况下至少提供一些有关残差聚类方面的信息,还会向具有最高校正 R2 值的三个模型和具有最大 Jarque-Bera p 值的三个模型的残差应用空间自相关 (Global Moran's I) 测试。
特别是当因变量中存在一个强大的空间结构时,您将希望尝试尽可能多的候选空间解释变量。这些空间变量可以是与主干道的距离、工作机会的可达性、本地购物场所的数量、连接测量值或密度。在找到能够捕获因变量中空间结构的解释变量之前,模型残值可能无法通过空间自相关检验。空间自相关 (Global Moran's I) 工具中所确定的回归残差的显著性聚类可指示出模型中的错误。您所不了解的回归分析内容 中概括介绍了处理指定错误的策略。
由于并不会对被检验的所有模型运行空间自相关 (Global Moran's I)(参阅上一使用提示),因此可选项输出结果表中将包含 SA(空间自相关)字段的缺失数据。由于 DBF (.dbf) 文件中并不存储空值,这些数据将显示为非常小的(负)数(比如 -1.797693e+308)。对于地理数据库表,这些缺失值将显示为空值。缺失值表明,由于模型未通过所有其他的模型搜索指标,因此未对关联模型的残差进行空间自相关检验。
用于运行空间自相关 (Global Moran's I) 工具的默认空间权重矩阵文件是基于 8 个最邻近要素空间关系的概念化。选择此默认文件的原因主要是因为它的执行速度相当快。但是,要定义不同的邻域关系,您只需使用生成空间权重矩阵文件工具创建自己的空间权重矩阵文件,然后为输入空间权重矩阵文件参数指定该文件的名称即可。“反距离”、“面邻接”或“K 最近邻”都是用于检验回归残差的合适的空间关系概念化。
注:
空间权重矩阵文件只用于测试空间结构的模型残差。正确指定了模型之后,残差将在空间上随机分布(较大的残差与较小的残差混在一起;较大的残值在空间上不会聚集在一起)。
注:
如果输入要素中的要素不超过 8 个,则用于运行空间自相关 (Global Moran's I) 工具的默认空间权重矩阵文件会以 K 最近邻域(K 代表要素数减 2)为基础。通常,使用此工具时最少需要 30 个要素。
语法
arcpy.stats.ExploratoryRegression(Input_Features, Dependent_Variable, Candidate_Explanatory_Variables, {Weights_Matrix_File}, {Output_Report_File}, {Output_Results_Table}, {Maximum_Number_of_Explanatory_Variables}, {Minimum_Number_of_Explanatory_Variables}, {Minimum_Acceptable_Adj_R_Squared}, {Maximum_Coefficient_p_value_Cutoff}, {Maximum_VIF_Value_Cutoff}, {Minimum_Acceptable_Jarque_Bera_p_value}, {Minimum_Acceptable_Spatial_Autocorrelation_p_value})
参数 | 说明 | 数据类型 |
Input_Features | 包含要分析的因变量和候选解释变量的要素类或要素图层。 | Feature Layer |
Dependent_Variable | 包含要使用 OLS 进行建模的观测值的数值型字段。 | Field |
Candidate_Explanatory_Variables [Candidate_Explanatory_Variables,...] | 尝试作为 OLS 模型解释变量的字段列表。 | Field |
Weights_Matrix_File (可选) | 包含用于定义输入要素之间空间关系的空间权重的文件。此文件用于评估回归残差之间的空间自相关。您可以使用生成空间权重矩阵文件工具来创建此文件。尚未提供空间权重矩阵文件的情况下,将根据每个要素的 8 个最相邻像元对残差的空间自相关进行评估。 注意:空间权重矩阵文件仅用于分析模型残差中的空间结构;不用于构建或校准任何 OLS 模型。 | File |
Output_Report_File (可选) | 报表文件包含工具结果,包括已通过您所输入的所有搜索条件的任何模型的相关详细信息。此输出文件还包含诊断信息,以帮助您在没有找到任何合格模型的情况下修复常见的回归问题。 | File |
Output_Results_Table (可选) | 创建的可选输出表,包含系数 p 值和 VIF 值边界内所有模型的解释变量和诊断信息。 | Table |
Maximum_Number_of_Explanatory_Variables (可选) | 将对解释变量数不超过此处输入值的所有模型进行评估。例如,如果 Minimum_Number_of_Explanatory_Variables 是 2,Maximum_Number_of_Explanatory_Variables 是 3,则探索性回归工具会对包含两个解释变量的任一组合的所有模型进行评估,还会对包含三个解释变量的任一组合的所有模型进行评估。 | Long |
Minimum_Number_of_Explanatory_Variables (可选) | 此值表示所评估模型的解释变量的最小数量。例如,如果 Minimum_Number_of_Explanatory_Variables 是 2,Maximum_Number_of_Explanatory_Variables 是 3,则探索性回归工具会对包含两个解释变量的任一组合的所有模型进行评估,还会对包含三个解释变量的任一组合的所有模型进行评估。 | Long |
Minimum_Acceptable_Adj_R_Squared (可选) | 这是您视为合格模型的最小校正可决系数值。如果模型已通过所有其他搜索条件,但“校正可决系数”值小于此处输入的值,则不会在 Output_Report_File 中将其显示为“合格模型”。此参数的有效值范围是 0.0 至 1.0。默认值为 0.5,表示合格模型将解释因变量中至少 50% 的变化。 | Double |
Maximum_Coefficient_p_value_Cutoff (可选) | 对于所评估的每个模型,OLS 会计算解释变量系数 p 值。此处输入的边界 p 值表示模型中所有系数所需的置信度,需要达到此置信度才能认为模型满足条件。p 值较小表示置信度较强。此参数有效值的范围是 1.0 至 0.0,但很可能是 0.1、0.05、0.01、0.001 等等。默认值是 0.05,表示合格模型只包含其系数在统计学上处于 95% 置信度(p 值小于 0.05)的解释变量。要放宽此默认值,则应输入较大的 p 值边界,例如 0.1。如果得到的合格模型较多,则您可能希望使此搜索条件更为严格,那么可以将默认 p 值边界从 0.05 减小为 0.01 或者更小的值。 | Double |
Maximum_VIF_Value_Cutoff (可选) | 此值表示您可接受的模型解释变量之间的冗余(多重共线性)。当 VIF(方差膨胀因子)值高于 7.5 时,多重共线性会使模型变得不稳定;因此,此处的默认值是 7.5。如果您想让合格模型具有更少的冗余,则应为此参数输入较小的值,如 5.0。 | Double |
Minimum_Acceptable_Jarque_Bera_p_value (可选) | Jarque-Bera 诊断检验所返回的 p 值将表示模型残差是否呈正态分布。如果 p 值在统计学上具有显著性(小),则模型残差不呈现正态分布,模型有偏差。合格模型应具有较大的 Jarque-Bera p 值。默认可接受的最小 p 值是 0.1。只有返回的 p 值大于此最小值的模型才被认为是合格的。如果查找无偏合格模型很困难,并决定放宽此条件,则可以输入更小的最小 p 值,如 0.05。 | Double |
Minimum_Acceptable_Spatial_Autocorrelation_p_value (可选) | 对于通过所有其他搜索条件的模型,探索性回归工具将使用 Global Moran's I 对模型残差进行空间聚类检查。当此诊断检验的 p 值在统计学上具有显著性(小)时,表示该模型很可能缺少关键的解释变量(不能说明整个情况)。遗憾的是,如果回归残差中存在空间自相关,则模型将被错误指定,因此您的结果是无法信任的。对于此诊断检验,合格模型应具有较大的 p 值。默认的最小 p 值是 0.1。只有返回的 p 值大于此最小值的模型才被认为是合格的。如果对于此诊断检验,查找正确指定的模型很困难,并决定放宽此搜索条件,则可以输入更小的最小值,如 0.05。 | Double |
代码示例
以下 Python 窗口脚本演示了如何使用 ExploratoryRegression 工具。
import arcpy
arcpy.env.workspace = r"C:\ER"
arcpy.ExploratoryRegression_stats("911CallsER.shp",
"Calls",
"Pop;Jobs;LowEduc;Dst2UrbCen;Renters;Unemployed;Businesses;NotInLF; \
ForgnBorn;AlcoholX;PopDensity;MedIncome;CollGrads;PerCollGrd; \
PopFY;JobsFY;LowEducFY",
"BG_911Calls.swm", "BG_911Calls.txt", "",
"MAX_NUMBER_ONLY", "5", "1", "0.5", "0.05", "7.5", "0.1", "0.1")
以下独立 Python 脚本演示了如何使用 ExploratoryRegression 工具。
# Exploratory Regression of 911 calls in a metropolitan area
# using the Exploratory Regression Tool
# Import system modules
import arcpy
# Set property to overwrite existing output, by default
arcpy.env.overwriteOutput = True
try:
# Set the current workspace (to avoid having to specify the full path to
# the feature classes each time)
arcpy.env.workspace = r"C:\ER"
# Join the 911 Call Point feature class to the Block Group Polygon feature class
# Process: Spatial Join
fieldMappings = arcpy.FieldMappings()
fieldMappings.addTable("BlockGroups.shp")
fieldMappings.addTable("911Calls.shp")
sj = arcpy.SpatialJoin_analysis("BlockGroups.shp", "911Calls.shp", "BG_911Calls.shp",
"JOIN_ONE_TO_ONE",
"KEEP_ALL",
fieldMappings,
"COMPLETELY_CONTAINS", "", "")
# Delete extra fieldsto clean up the data
# Process: Delete Field
arcpy.DeleteField_management("BG_911Calls.shp", "OBJECTID;INC_NO;DATE_;MONTH_;STIME; \
SD_T;DISP_REC;NFPA_TYP;CALL_TYPE;RESP_COD;NFPA_SF; \
SIT_FND;FMZ_Q;FMZ;RD;JURIS;COMPANY;COMP_COD;RESP_YN; \
DISP_DT;DAY_;D1_N2;RESP_DT;ARR_DT;TURNOUT;TRAVEL; \
RESP_INT;ADDRESS_ID;CITY;CO;AV_STATUS;AV_SCORE; \
AV_SIDE;Season;DayNight")
# Create Spatial Weights Matrix for Calculations
# Process: Generate Spatial Weights Matrix
swm = arcpy.GenerateSpatialWeightsMatrix_stats("BG_911Calls.shp", "TARGET_FID", "BG_911Calls.swm",
"CONTIGUITY_EDGES_CORNERS",
"EUCLIDEAN", "1", "", "", "ROW_STANDARDIZATION", "", "", "", "")
# Exploratory Regression Analysis for 911 Calls
# Process: Exploratory Regression
er = arcpy.ExploratoryRegression_stats("BG_911Calls.shp",
"Calls",
"Pop;Jobs;LowEduc;Dst2UrbCen;Renters;Unemployed;Businesses;NotInLF; \
ForgnBorn;AlcoholX;PopDensity;MedIncome;CollGrads;PerCollGrd; \
PopFY;JobsFY;LowEducFY",
"BG_911Calls.swm", "BG_911Calls.txt", "",
"MAX_NUMBER_ONLY", "5", "1", "0.5", "0.05", "7.5", "0.1", "0.1")
except:
# If an error occurred when running the tool, print out the error message.
print(arcpy.GetMessages())
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是