图表变量关系

在运行统计模型之前,您将创建图表以探索房屋销售价格与房屋其他方面(例如其面积和房龄)之间的关系。 您的目的是识别具有较强关系的变量,您将使用这些变量创建专用模型。

浏览数据

首先,您将下载 ArcGIS Pro 工程包,其中包含华盛顿金县的房屋销售数据。 然后,您将浏览数据并熟悉其属性表中的变量。

  1. 下载 Home Valuation 1 工程包。
  2. 浏览至下载的文件并双击 Home_Valuation_1.ppkxArcGIS Pro 中打开该工程。 如有必要,请使用您获得许可的 ArcGIS 账户进行登录。
    注:

    如果您没有 ArcGIS Pro 的访问权限或者 ArcGIS 组织账户,请参阅软件访问权限选项

    该工程包含华盛顿州金县地图。 地图上的每个点表示在 2014 年 5 月和 2015 年 5 月之间发生的房屋销售。

    默认工程

  3. 在地图上,单击任意点。

    随即显示点的弹出窗口,其中列出与其关联的属性信息。

    包含属性信息的弹出窗口

    数据包含以下属性:

    名称描述

    Date

    销售日期,以 YYYYMMDDT000000 格式表示。

    Price

    最终交易金额,以美元为单位。

    Bedrooms

    卧室数量。

    Bathrooms

    卫生间数量

    Square Feet (Living)

    内部居住空间大小,以平方英尺为单位。

    Square Feet (Lot)

    地块大小,以平方英尺为单位。

    Floors

    房屋的楼层数。

    Waterfront

    房屋是否位于海滨,由以下值表示:

    • 0:否
    • 1:否,但在距离海岸 0.25 英里范围内
    • 2:是

    Condition

    房屋状况,由以下值表示:

    • 1(不佳):多处需要修缮。 房屋出现严重的恶化迹象。
    • 2(一般):需要立即进行一些修缮。 需要进行多处延期维护修缮。
    • 3(中等):需要根据房龄进行相应程度的正常保养。
    • 4(良好):房屋状况高于其当前房龄对应的平均水平,表示已进行额外的关注和保养维护。
    • 5(非常好):房屋一直得到精心维护与适时更新;但并非全面翻新。

    Grade

    基于金县分级系统的整体房屋等级,由以下值表示:

    • 1 至 3:达不到最低建筑物标准(小房间或劣质结构)。
    • 4:通常为较旧的低质量建筑物。 房屋不符合建筑规范。
    • 5:较低的建造成本和工艺。 房屋面积小,设计简单。
    • 6:目前符合建筑规范的最低等级;低质量材料,设计简单。
    • 7:建造和设计的平均等级,常用于较早的住宅分区。
    • 8:在建筑和设计方面略高于平均水平。 这种质量的房屋通常在外部和内部装饰中都使用较好的材料。
    • 9:建筑设计更好,具有额外的外部和内部设计及质量。
    • 10:房屋通常具有高质量特征。 装修工程更好,并且可以在楼层平面图中看到更多设计质量。 更大的建筑面积。
    • 11:定制设计和更高质量的装修工程,包括增加了实木设施、浴室固定装置。 更多豪华选择。
    • 12:定制设计和优秀的建筑商。 所有材料均具有最高质量,并提供所有便利。
    • 13:通常定制设计和建造。 豪宅水平。 大量最高质量的橱柜、木质装饰、大理石、门厅等。

    Square Feet (Above)

    房屋面积,不含地下室,以平方英尺为单位。

    Square Feet (Basement)

    地下室面积,以平方英尺为单位。

    Year Built

    房屋的建造年份。

    Year Renovated

    房屋的翻新年份。

    ZIP Code

    房屋的邮政编码。

  4. 关闭弹出窗口。

    您将使用数据工程计算数据集的统计数据,以识别是否有数据缺失或看起来异常。

  5. 内容窗格中,右键单击 King County Housing Data,然后选择数据工程

    “数据工程”选项

    随即显示一个窗格,其中列出数据中的字段。

  6. 单击 Price 字段将其选中。 按住 Shift 键同时单击 Year Renovated 字段。
    提示:

    拖动窗格边调整其大小,以同时查看更多字段。

    将选中两次单击之间的所有字段。

    价格和翻新年份之间的选定字段。

  7. 将选定字段拖动到包含添加所有字段并计算按钮的窗格部分。
  8. 单击计算

    计算按钮

    将为每个字段计算最小值、最大值和平均值等统计数据。

  9. 在字段表中滚动浏览统计数据。

    所有字段的所有统计数据值均不为空,这意味着不缺少数据。 统计数据还提供有关数据整体分布的洞察。 例如,最小值最大值字段指示房屋销售价格介于 75,000 美元到 7,700,000 美元之间。

    “价格”字段的“最小值”和“最大值”

    表中的一个统计数据看起来有些奇怪。 Year Renovated 字段的最小值为 0。 不可能所有房屋实际上均在此年份翻新。 您将通过查看其值图表,更仔细地检查该字段。

  10. 对于 Year Renovated 字段,右键单击图表预览单元格,然后选择打开直方图

    “图表预览”菜单中的“打开直方图”选项

    随即出现一个直方图图表,其中按年份显示数据集中的值分布。

    “翻新年份”字段的直方图

    该直方图指示超过 20,000 条记录的值为 0,而相对较小的数量的值为最近的年份。 对于此字段,值 0 表示房屋根本没有翻新,而不是在年份 0 期间翻新。

    此数据分布可能影响使用该数据执行的所有分析的准确性。 由于只有少量房屋经过翻新,因此不会在分析中使用此变量。

  11. 依次关闭直方图、数据工程窗格以及图表属性窗格。

创建散点图矩阵

在您熟悉数据后,您将通过创建散点图矩阵检查变量之间的关系。 散点图矩阵是一个图表格网,其中显示两个变量的每种可能组合。 图表还以统计的方式量化一个变量根据另一个变量预测的准确性。

您将使用散点图矩阵识别与价格存在较强关系的变量。 稍后,您将使用这些变量创建用于预测房屋价格的线性回归模型。

  1. 内容窗格中,右键单击 King County Housing Data。 指向创建图表,然后选择散点图矩阵

    创建图表菜单中的散点图矩阵选项

    随即显示散点图矩阵窗格。 还会出现图表属性窗格,其中显示用于配置散点图矩阵的选项。 首先,您将选择要在矩阵中绘制的变量。

  2. 图表属性窗格中,对于数值字段,单击选择

    数值字段参数的“选择”按钮

  3. 选中从 PriceYear Built 之间的所有字段。 单击应用

    散点图矩阵基于选定字段进行创建。

  4. 选中显示趋势线

    显示趋势线

    即会向矩阵中的每个图表添加一条线,用于概化变量之间的关系。

  5. 根据需要,调整散点图矩阵窗格的大小,以查看所有图表。

    散点图矩阵图表

    矩阵的行和列对应选定字段。 每张图表显示两个变量之间的关系。 选定图表默认比较 PriceYear Built 字段,它在右上角以较大比例显示。

    较大版本的选项图表包含 R2(亦称为 R2 或 R 平方)值。 该值为判决系数,用于衡量通过两个变量的关系解释的数据变化量。 接近于 1 的值表示较强的正线性关系,这意味着一个变量增加,另一个变量也随之增加。

    PriceYear Built 图表中的 R2 值为 0,这意味着变量之间不存在关系。 这一缺少关系在图表本身中较为明显,其中价格在底端聚集(无论年份为何),并且点在视觉上没有很好地跟随趋势线。

  6. 单击 PriceSquare Feet (Basement)(从底部开始的第 1 列,第 2 行)对应的散点图。

    比较价格和地下室面积的图表

    位于右上角的大图表将更改为选定图表。

    比较价格和地下室面积的较大图表

    这两个变量之间的关系也较弱,R2 值为 0.09。 关系弱可能是因为许多房屋没有地下室。 在图表底部,许多点的地下室面积为 0 平方英尺,点分布于价格无关。

    您可以单独检查每个散点图,但是在本示例中,您将更改矩阵以显示每个散点图的 R2 值。

  7. 图表属性窗格的矩阵布局部分中,对于左下角,选择 R 平方

    矩阵布局部分中的左下角参数

    散点图矩阵将发生变化。 R2 值较高的散点图将以深蓝色显示。

    显示每张图表的 R2 值的散点图矩阵

    与价格关系最强的变量包括 Square Feet (Living) (0.48)、Grade (0.44) 和 Square Feet (Above) (0.36)。

    通常,您想要在创建线性回归模型以预测房价时使用这些变量。 但是,您需要先确保所有变量都不是冗余变量。

  8. 单击 Square Feet (Living)Square Feet (Above)(从底部开始的第 4 列,第 3 行)对应的散点图。

    比较平方英尺变量的图表

    与数据集中的任意两个变量相比,这两个变量之间的关系最强,R2 值为 0.77。 但是,根据您第一次查看数据时看到的每个变量的说明,这种关系是因为这两个变量包含的信息相似。 一个包含房屋居住空间(以平方英尺为单位),另一个包含房屋地上空间(以平方英尺为单位)。

    您已看到许多房屋没有地下室,因此对于这些房屋,两个值将相同。 即使是带地下室的房屋,这两个值也相似。 这些变量大多数冗余。

    冗余变量会导致多重共线性,这会让线性回归模型不稳定。 为了避免冗余,您将仅在模型中使用 Square Feet (Living),而不是 Square Feet (Above)

    最后,您将查看识别为与价格之间存在较强关系的另一个变量:Grade

  9. 单击 PriceGrade(从底部开始的第 1 列,第 4 行)对应的散点图。

    尽管此散点图具有最高 R2 值之一,但是这种关系相较于线性关系,更呈曲线形或凸形。 价格不会随着等级的增加而增加,但是较高等级往往具有非常高的价格。

    比较价格和分级的图表

    要让关系更强并且更具线性,您需要转换 Grade 变量。

  10. 关闭散点图矩阵窗格和图表属性窗格。

转换变量

PriceGrade 变量之间的关系明确,但是这种关系相较于线性关系,更呈凸形。 在对房屋价格进行建模时,您打算执行线性回归,该方法最适合线性关系。 为了提高模型性能,您将转换 Grade 变量让关系变为线性。

如果关系呈现凹形,通常会对数据进行求平方或立方,以有效地提高关系的线性度。 在此情况下,求立方生成的结果最佳。 您将添加并计算表示立方分级的新字段。

  1. 内容窗格中,右键单击 King County Housing Data,然后选择属性表。
  2. 在表中,单击计算

    表格中的“计算”按钮

    计算字段窗口随即显示。 可使用此工具计算新字段或现有字段。 您不希望覆盖现有数据,因此您将创建新字段。

  3. 对于字段名称(现有或新建),输入 Grade_Cubed

    由于此名称不是现有字段,因此该工具将自动创建新字段。 默认情况下,新字段为文本字段,但是您希望该字段包含数字,因此您将更改字段类型。

  4. 对于字段类型,选择浮点型(32 位浮点型)

    “计算字段”工具的参数

    接下来,您将创建用于计算该字段的表达式。 您的表达式会将 Grade 字段多次乘以其本身以求立方。

  5. 对于表达式,在字段框中,向下滚动并双击 Grade

    字段列表中的“分级”字段

    该字段即会添加至表达式,通过注记 !grade! 表示。

  6. 使用字段和数学符号创建以下表达式:

    !grade! * !grade! * !grade!

    完整的表达式

    注:

    或者,您可以将表达式复制并粘贴到框中。

    此表达式将对 Grade 字段求立方。

  7. 单击确定

    随即计算该字段。

  8. 滚动到表末尾并确认该字段已添加。

    Grade_Cubed 字段

    您将创建散点图矩阵以查看对变量求立方是否会生成线性关系并且 R2 值较高。

  9. 关闭属性表。 在内容窗格中,右键单击 King County Housing Data,指向创建图表,然后选择散点图矩阵
  10. 图表属性窗格中,对于数值字段,单击选择。 选中 PriceGradeGrade_Cubed,然后单击应用
  11. 选中显示趋势线

    已转换 Grace_Cubed 变量与 Price 变量之间的关系更加线性,R2 值为 0.5。

    显示价格和 Grade_Cubed 之间关系的图表

    此结果与原始 Grade 变量相比有所改进,其 R2 值为 0.44。 在执行线性回归时,您将使用 Square Feet (Living)Grade_Cubed 变量预测价格。

  12. 关闭散点图矩阵窗格和图表属性窗格。
  13. 快速访问工具栏中,单击保存工程按钮。

    快速访问工具栏上的“保存工程”按钮

您已识别与因变量之间的关系最强的变量。 您可以随时使用线性回归构建房屋评估模型。


执行线性回归

在确定将 Square Feet (Living)Grade_Cubed 用作预测价格的解释变量后,您将执行线性回归对金县的房屋销售价格进行建模。 您将专门执行广义线性回归 (GLR),可将其作为地理处理工具进行访问。

第一次执行 GLR 时,您将使用确定的两个变量。 在评估该模型的结果后,您将使用同样用于预测房价的新空间变量运行 GLR 对其进行改进。

对房价进行建模

首先,您将访问 GLR 工具并运行该工具以根据确定为与价格存在较强关系的变量对房价进行建模。

  1. 在功能区上,单击分析选项卡。 在地理处理组中,单击工具

    “工具”按钮

  2. 地理处理窗格的搜索框中,输入广义线性回归

    共有两个 GLR 工具,每个工具在不同的工具箱中。 您将使用位于空间统计工具箱中的工具。

  3. 在结果列表中,单击广义线性回归(空间统计工具)
    注:

    不要选择 GeoAnalytics Desktop 工具箱中的工具版本。

    “空间统计”工具箱中的“广义线性回归”工具

    GLR 使用两种变量:因变量以及一个或多个解释变量。 因变量为要预测的变量(在本例中,为价格)。 解释变量为将用于进行预测的变量(在本例中,为居住空间的建筑面积和房屋等级的立方)。

  4. 对于输入要素,选择 King County Housing Data。 对于因变量,选择 Price

    “广义线性回归”工具的参数

    您还可以更改模型类型。 GLR 可以根据模型类型预测不同类型的因变量。 您要预测价格,价格是一个连续变量(这意味着价格可以是较宽的值范围)。 默认模型类型连续(高斯)适用于此类因变量。

    如果您要预测的因变量具有是或否答案,例如房屋售价是否超过 500,000 美元,您将改用二进制(逻辑)模型类型。 如果因变量为计数,例如竞标房屋的人数,则您将使用计数(泊松)模型类型。

    接下来,您将选择模型的解释变量。 在您先前对数据的探索后,您已经了解要使用的变量。

  5. 对于解释变量,选中 Square Feet (Living)Grade_Cubed
  6. 对于输出要素,删除现有文本并输入 Valuation_GLR_1

    解释变量和输出要素参数

    目前,您不会定义任何其他输入。 稍后,您将再次运行 GLR,从而利用一些其他可选参数。

  7. 单击运行

    该工具随即运行。 在运行完成后,将向地图和内容窗格添加一个结果图层。

    显示第一个 GLR 模型的结果的地图

    结果图层的符号系统指示模型的预测价格高于和低于房屋现有销售价格的位置。 绿点为实际销售价格高于预测价格的位置,而紫点为实际销售价格低于预测价格的位置。 颜色越深,预测价格和实际价格之间的差异越大。

    颜色最深的绿点往往在水体附近聚集。 似乎线性回归模型系统地低估了海滨附近的房屋销售价格。 与内陆房屋相比,居住空间大小的微小变化可能导致水体附近的房屋价格产生较大变化。

评估结果

您将通过查看工具结果的详细信息评估 GLR 模型的结果。

  1. 地理处理窗格的底部,单击查看详细信息

    “查看详细信息”选项

    随即显示工具结果详细信息窗口。

  2. 如有必要,单击消息选项卡。 (可选)拖动窗口边扩展窗口以更好地读取数据。

    GLR 结果汇总表中,ProbabilityRobust_Pr 列指示模型中使用的变量是否具有统计显著性(通过星号标记)。 Square Feet (Living)Grade_Cubed 变量具有星号,因此这两个变量是具有统计显著性的房屋销售价格预测因子。

    概率和 Robust_Pr 列

    注:

    有关解释结果表中的特定值的详细信息,滚动到消息选项卡底部的有关解释的注释部分。

    此外,方差膨胀因子 (VIF) 值还小于 7.5,这表示变量不是冗余变量。

    GLR 诊断表中,校正 R 平方值为 0.552952。 此值指示这两个变量解释大约 55% 的房屋销售价格变化。

    校正 R 平方值

    Akaike 信息准则 (AICc) 值为 584688。 该值是一个相对值,用于反映因建模过程丢失的信息。 AICc 越小,模型越好。 可使用此值将模型相互比较。

    Joint-F 统计数据Joint Wald 统计数据的值均为 0,这表示整个模型具有统计显著性。

    总之,您更希望校正 R2 更大,AICc 更小,但是建议基于此模型预测房价。

  3. 关闭详细信息窗口。

    如何改进模型? 目视解释结果表明模型预测的水体附近房价通常过低。 尽管在创建散点图矩阵时海滨变量与价格之间的相关性不强,但是您将使用该变量再次运行 GLR,以查看生成的结果是否有所改进。

  4. 地理处理窗格中,对于解释变量,选中 Waterfront。 确保保持选中 Square Feet (Living)Grade_Cubed,并保持其他参数不变。
    提示:

    如果您关闭了地理处理窗格或更改了其他参数,您可以使用与首次运行该工具时使用的相同参数重新打开工具。 在功能区分析选项卡的地理处理组中,单击历史记录。 在历史记录窗格中,右键单击广义线性回归,然后单击打开

  5. 单击运行

    该工具随即运行。 由于您未更改输出要素参数,结果将覆盖 Valuation_GLR_1 图层。

  6. 地理处理窗格的底部,单击查看详细信息

    使用 Waterfront 变量运行 GLR 后,生成的校正 R2 提高到 0.606370(这意味着模型现在解释超过 60% 的房屋销售价格值),AICc 降低至 581993。 添加此变量改进了模型。

  7. 关闭详细信息窗口。

添加空间变量

地图上仍有一些区域模型未正确预测房价,出现深绿点和深紫点聚类。 许多深绿点位于西雅图附近。 大城市与其周围的郊区相比,房价可能更高。

您的房屋销售数据不包含测量距西雅图的距离的变量,像之前距海滨的距离那样。 您将添加解释距离变量,而不是解释变量,以基于距另一个要素图层的距离预测因变量。

  1. 内容窗格中,打开 Seattle 图层。 将图层拖动到 Valuation_GLR_1 上方。

    该图层包含单个要素,表示西雅图中心。

    地图上的 Seattle 要素

  2. 地理处理窗格中,确保参数与上次运行 GLR 工具时相同。
  3. 对于解释距离要素,选择 Seattle。 对于输出要素,将输出名称更改为 Valuation_GLR_2

    包含 Seattle 图层的“解释距离要素”参数

  4. 单击运行

    该工具随即运行。 新图层即会被添加到地图中。

  5. 地理处理窗格的底部,单击查看详细信息

    校正 R2 值增加到 0.678208,AICc 值降低至 577725,这表示 Seattle 解释距离要素改进了模型。

  6. 关闭详细信息窗口。

    您最后将通过在区域中将经济支柱添加为解释距离要素改进模型。 同时,您不再需要查看 Valuation_GLR_1 图层,因此您将其关闭。

  7. 内容窗格中,关闭 Valuation_GLR_1。 折叠 Valuation_GLR_1 以隐藏其图例。
  8. 打开 Microsoft 图层。 将图层拖动到 Valuation_GLR_2 上方。

    地图中的 Microsoft 要素

    此要素位于一些过低预测的价格聚类附近,尽管没有与这些价格紧邻。 您将确定该要素是否改进模型。

  9. 地理处理窗格中,对于解释距离要素,添加 Microsoft

    包含 Seattle 和 Microsoft 图层的“解释距离要素”参数

  10. 确认其他参数与您上次运行该工具时相同。 单击运行

    该工具将运行并覆盖 Valuation_GLR_2 图层。

  11. 地理处理窗格的底部,单击查看详细信息

    模型的校正 R2 值为 0.691140,AICc 值为 576857。 尽管这些不是主要改进,但是这两个要素确实改进了模型。

    您的最终 GLR 模型解释了超过 69% 的金县房屋销售价格变化。

    提示:

    如果您稍后想要共享模型或执行预测,可以将输出训练模型文件参数设置为创建模型输出文件。

  12. 关闭详细信息窗口。 保存工程。

通过添加海滨变量以包含 SeattleMicrosoft 图层对初始 GLR 模型进行的优化产生了明显的改进效果。 您的模型现在可以合理地预测房价。

GLR 是一个全局回归模型,这意味着它假设因变量(价格)和所有解释变量之间的关系在整个数据集中的所有位置相同。 例如,它假设西雅图附近的海滨位置与塔科马郊区附近的海滨位置相同。 如果这些全局假设错误,则可以解释即使使用最佳 GLR 模型,水体附近仍存在过高预测和过低预测聚类的原因。

还可通过其他类型的方法预测房价,例如空间回归和机器学习。 有关这些方法的详细信息,请尝试教程 使用机器学习预测房价。 有关本系列中的其他教程,请参阅使用回归分析和机器学习预测房价

您可以在教程库中找到更多教程。