描述
执行全局“普通最小二乘法 (OLS)”线性回归可生成预测,也可为一个因变量针对它与一组解释变量关系建模。
可从结果窗口获取此工具的结果(包括可选报表文件)。如果禁用了后台处理,结果也将被写入进度对话框。
插图
使用方法
-
此工具的主要输出是一个写入结果窗口的报表文件。右键单击结果窗口中的消息条目,然后选择视图,消息对话框中将会显示探索性回归汇总报表。
-
OLS 工具也可生成一个输出要素类以及含有系数信息和诊断的可选表。所有信息均可在结果窗口中访问。输出要素类会自动添加到内容列表中,并会对模型残差应用热/冷渲染方案。在解释 OLS 结果时提供了有关各输出的完整说明。
-
仅当数据和回归模型满足该方法固有要求的所有假定条件时,OLS 回归得出的结果才可信。可查阅回归分析基础知识中的常见回归问题、后果和解决方案表来确保指定的模型是正确的。
-
因变量和解释变量应该是包含各种值的数值型字段。如果变量值均相等(例如,某字段的所有值均为 9.0),OLS 将无法求解。线性回归方法(如 OLS)不适于预测二进制结果(例如,因变量的所有值不是 1 就是 0)。
-
Unique ID 字段用于将模型预测连接到各个要素。因此,每个要素的 Unique ID 值都必须唯一,而且通常应是与要素类一同保留的永久性字段。如果没有 Unique ID 字段,则可以创建一个,方法是向要素类表添加一个新的整型字段,然后将此字段的值计算为与 FID/OID 字段的值相等。您无法将 FID/OID 字段直接用于唯一 ID 参数。
-
只要回归残差在统计上具有明显的空间自相关,便认为指定的 OLS 模型是错误。因此,OLS 回归的结果不可靠。请确保对回归残差运行空间自相关工具以便对此潜在问题进行评估。统计上明显的回归残差空间自相关性通常表示模型缺少一个或多个关键解释变量。
-
目视检查回归残差中明显的预测过度和预测不足,从而挖掘出回归模型中是否可能发生变量丢失的线索。这可能有助于通过对残差运行热点分析来查看预测过度和预测不足的空间聚类。
-
如果指定错误是设法使用全局模型(OLS 属于一种全局模型)为不稳定变量建模产生的后果,则可使用地理加权回归改进预测并更好地了解解释变量中固有的不稳定性(局部变化)。
-
当计算结果为无限大或未定义时,非 shapefile 的输出将为“空”;而 shapefile 的输出将为 -DBL_MAX (例如,-1.7976931348623158e+308)。
-
模型汇总诊断会写入 OLS 汇总报表和可选的诊断输出表。它们都包括“修正的 Akaike 信息准则 (AICc)”诊断、判决系数诊断、联合 F 统计量诊断、卡方统计量诊断、Koenker 的 Breusch-Pagan 统计量诊断以及 Jarque-Bera 统计量诊断。诊断报表还包括未经修正的 AIC 和 Sigma 平方值。
-
如果已经存在可选系数和/或诊断输出表,则当选中覆盖地理处理操作的输出选项时,将覆盖这些表。
-
此工具将选择性地创建汇总结果的 PDF 报表。PDF 文件不会自动显示在目录窗口中。如果要在“目录”中显示 PDF 文件,可打开 ArcCatalog 应用程序,选择自定义菜单选项,单击 ArcCatalog 选项,然后选择文件类型选项卡。单击新建类型按钮,并指定 PDF 作为文件扩展名,如下图所示。
-
在配置了阿拉伯语或其他从右向左书写语言的 ArcGIS 语言包的计算机上,您可能会发现 PDF 输出报表文件中存在丢失文本或格式化问题。这篇文章会解决这些问题。
-
地图图层可用于定义输入要素类。在使用带有选择内容的图层时,分析只会包括所选的要素。
语法
arcpy.stats.OrdinaryLeastSquares(Input_Feature_Class, Unique_ID_Field, Output_Feature_Class, Dependent_Variable, Explanatory_Variables, {Coefficient_Output_Table}, {Diagnostic_Output_Table}, {Output_Report_File})
参数 | 说明 | 数据类型 |
Input_Feature_Class | 包含用于分析的因变量和自变量的要素类。 | Feature Layer |
Unique_ID_Field | 包含输入要素类中每个要素不同值的整型字段。 | Field |
Output_Feature_Class | 将接收因变量的估计数和残差的输出要素类。 | Feature Class |
Dependent_Variable | 包含要尝试建模的值的数值字段。 | Field |
Explanatory_Variables [Explanatory_Variables,...] | 表示回归模型中解释变量的字段列表。 | Field |
Coefficient_Output_Table (可选) | 可选表的完整路径,该可选表将接收各解释变量的模型系数、标准化系数、标准误差和概率。 | Table |
Diagnostic_Output_Table (可选) | 将接收模型汇总诊断的可选表的完整路径。 | Table |
Output_Report_File (可选) | 工具将创建的可选 PDF 文件的路径。此报表文件包括模型诊断、图表以及有助于您解释 OLS 结果的注释。 | File |
代码示例
OrdinaryLeastSquares 示例 1(Python 窗口)
以下 Python 窗口脚本演示了如何使用 OrdinaryLeastSquares 工具。
import arcpy
arcpy.env.workspace = r"c:\data"
arcpy.OrdinaryLeastSquares_stats("USCounties.shp", "MYID","olsResults.shp",
"GROWTH","LOGPCR69;SOUTH;LPCR_SOUTH;PopDen69",
"olsCoefTab.dbf","olsDiagTab.dbf")
OrdinaryLeastSquare 示例 2(独立 Python 脚本)
以下独立 Python 脚本演示了如何使用 OrdinaryLeastSquares 工具。
# Analyze the growth of regional per capita incomes in US
# Counties from 1969 -- 2002 using Ordinary Least Squares Regression
# Import system modules
import arcpy
# Set property to overwrite existing outputs
arcpy.env.overwriteOutput = True
# Local variables...
workspace = r"C:\Data"
try:
# Set the current workspace (to avoid having to specify the full path to the feature classes each time)
arcpy.env.workspace = workspace
# Growth as a function of {log of starting income, dummy for South
# counties, interaction term for South counties, population density}
# Process: Ordinary Least Squares...
ols = arcpy.OrdinaryLeastSquares_stats("USCounties.shp", "MYID",
"olsResults.shp", "GROWTH",
"LOGPCR69;SOUTH;LPCR_SOUTH;PopDen69",
"olsCoefTab.dbf",
"olsDiagTab.dbf")
# Create Spatial Weights Matrix (Can be based on input or output FC)
# Process: Generate Spatial Weights Matrix...
swm = arcpy.GenerateSpatialWeightsMatrix_stats("USCounties.shp", "MYID",
"euclidean6Neighs.swm",
"K_NEAREST_NEIGHBORS",
"#", "#", "#", 6)
# Calculate Moran's Index of Spatial Autocorrelation for
# OLS Residuals using a SWM File.
# Process: Spatial Autocorrelation (Morans I)...
moransI = arcpy.SpatialAutocorrelation_stats("olsResults.shp", "Residual",
"NO_REPORT", "GET_SPATIAL_WEIGHTS_FROM_FILE",
"EUCLIDEAN_DISTANCE", "NONE", "#",
"euclidean6Neighs.swm")
except:
# If an error occurred when running the tool, print out the error message.
print(arcpy.GetMessages())
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是