普通最小二乘法 (OLS) (空间统计)
摘要
执行全局“普通最小二乘法 (OLS)”线性回归可生成预测,也可为一个因变量针对它与一组解释变量关系建模。
You can access the results of this tool (including the optional report file) from the Results window. If you disable background processing, results will also be written to the Progress dialog box.
插图
用法
-
仅当数据和回归模型满足该方法固有要求的所有假定条件时,OLS 回归得出的结果才可信。查阅回归分析基础知识中的常见回归问题、后果和解决方案表可确保指定的模型准确无误。
-
因变量和解释变量应该是包含各种值的数值型字段。如果变量值均相等(例如,某字段的所有值均为 9.0),OLS 将无法求解。线性回归方法(如 OLS)不适于预测二进制结果(例如,因变量的所有值不是 1 就是 0)。
-
唯一 ID 字段用于将模型预测连接到各个要素。因此,每个要素的唯一 ID 值都必须唯一,而且通常应是与要素类一同保留的永久性字段。如果没有唯一 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 平方值。
-
如果已经存在可选系数和/或者诊断输出表,则当地理处理选项覆盖地理处理操作的输出选中启用时,这些表将被覆盖。
This tool will optionally create a PDF report summarizing results. PDF files do not automatically appear in the Catalog window. If you want PDF files to be displayed in Catalog, open the ArcCatalog application, select the Customize menu option, click ArcCatalog Options, and select the File Types tab. Click on the New Type button and specify PDF, as show below, for File Extension.
-
地图图层可用于定义输入要素类。在使用带有选择内容的图层时,分析只会包括所选的要素。
OLS 工具也可生成一个输出要素类以及含有系数信息和诊断的可选表。所有信息均可在结果 窗口中访问。输出要素类会自动添加到具有热/冷渲染方案(适用于构建残差的模型)的内容列表中。在解释 GWR 结果中提供了有关各输出的完整说明。
当此工具是自定义模型工具的一部分时,如果在运行工具之前将可选表设置为模型参数,则它将仅在结果 窗口中显示。
在使用 shapefile 时,请注意 shapefile 无法存储空值。根据非 shapefile 输入创建 shapefile 的工具或其他过程可能会将空值存储(或解析)为零。这会产生意外的结果。另请参阅 shapefile 输出的地理处理注意事项。
语法
参数 | 说明 | 数据类型 |
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 |
代码示例
以下 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")
以下独立 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 the geoprocessor object property to overwrite existing outputs arcpy.gp.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.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 off 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()