如何在SPSS中绘制回归线?

作者:Ruben Geert van den Berg,发表于回归分析

  • 方法 A - 传统对话框 (Legacy Dialogs)
  • 方法 B - 图表构建器 (Chart Builder)
  • 方法 C - CURVEFIT
  • 方法 D - 回归变量图 (Regression Variable Plots)
  • 方法 E - 所有散点图工具 (All Scatterplots Tool)

摘要 & 示例数据

本教程将引导您了解绘制(非)线性回归线的不同选项,适用于所有案例或子组。所有示例都使用 bank-clean.sav 数据集,部分数据如下所示。

SPSS Bank Clean 变量视图

方法 A - 传统对话框 (Legacy Dialogs)

绘制线性回归线的一个简单选项位于“图形 (Graphs)” SPSS Menu Arrow “旧对话框 (Legacy Dialogs)” SPSS Menu Arrow “散点图/点图 (Scatter/Dot)”下,如下图所示。

SPSS 散点图对话框

完成这些步骤将生成以下 SPSS 语法 (SPSS syntax)。运行它会创建一个散点图,我们可以在下一步中轻松地向其添加回归线。

***SCATTERPLOT FROM GRAPHS - LEGACY DIALOGS - SCATTER/DOT.
**
GRAPH
/SCATTERPLOT(BIVAR)=whours WITH salary
/MISSING=LISTWISE.

要添加回归线,首先双击图表以在图表编辑器 (Chart Editor) 窗口中打开它。接下来,单击“在总计处添加拟合线 (Add Fit Line at Total)”图标,如下所示。

SPSS 向散点图添加回归线

现在,您可以简单地关闭拟合线对话框和图表编辑器 (Chart Editor)。

结果

SPSS 散点图中的线性回归线

线性回归方程显示在回归线的标签上:y = 9.31E3 + 4.49E2*x,这意味着

\[Salary' = 9,310 + 449 \cdot Hours\]

请注意,9.31E3 是 9.31 · 103 = 9,310 的 科学计数法 (scientific notation) (经过四舍五入)。

您可以通过运行以下语法的简单线性回归来验证此结果并获得更详细的输出。

***SIMPLE LINEAR REGRESSION - ALL CASES.
**
regression
/dependent salary
/method enter whours.

这样做时,您还将拥有 显著性水平 (significance levels) 和/或 置信区间 (confidence intervals)。最后,请注意,线性关系似乎不太适合这些变量。因此,让我们探索一些更有趣的选项。

方法 B - 图表构建器 (Chart Builder)

对于 SPSS 25 及更高版本,您可以从图表构建器 (Chart Builder) 获取带有拟合线的散点图。让我们分别为工作类型组执行此操作:只需导航到“图形 (Graphs)” SPSS Menu Arrow “图表构建器 (Chart Builder)”,然后填写如下所示的对话框。

SPSS 从图表构建器绘制单独的回归线

这将产生以下语法。 让我们运行它。

***SCATTERPLOT WITH LINEAR FIT LINES FOR SEPARATE GROUPS.
**
GGRAPH
/GRAPHDATASET NAME="graphdataset" VARIABLES=whours salary jtype
MISSING=LISTWISE REPORTMISSING=NO
/GRAPHSPEC SOURCE=INLINE
/FITLINE TOTAL=NO SUBGROUP=YES.
BEGIN GPL
SOURCE: s=userSource(id("graphdataset"))
DATA: whours=col(source(s), name("whours"))
DATA: salary=col(source(s), name("salary"))
DATA: jtype=col(source(s), name("jtype"), unit.category())
GUIDE: axis(dim(1), label("On average, how many hours do you work per week?"))
GUIDE: axis(dim(2), label("Gross monthly salary"))
GUIDE: legend(aesthetic(aesthetic.color.interior), label("Current job type"))
GUIDE: text.title(label("Scatter Plot of Gross monthly salary by On average,
how many hours do ",
"you work per week? by Current job type"))
SCALE: cat(aesthetic(aesthetic.color.interior), include(
"1", "2", "3", "4", "5"))
ELEMENT: point(position(whours*salary), color.interior(jtype))
END GPL.

结果

SPSS 回归线 - 单独的组

首先,此图表主要用于:

遗憾的是,此图表的样式很糟糕,但如果我们不是这么懒,我们可以使用图表模板来修复它。

无论如何,请注意,R 平方 (R-square) -回归的常见 效应量度量 (effect size measure)- 对于除高层管理人员之外的所有组来说都介于良好和优秀之间。 如果我们忽略子组的存在,这少数案例可能是我们看到的曲线关系的主要原因。

运行以下语法可以验证此图表中显示的结果,并产生更详细的输出。

***SORT AND SPLIT FILE.
**
sort cases by jtype.
split file layered by jtype.

***SIMPLE LINEAR REGRESSION.
**
regression
/dependent salary
/method enter whours.

***END SPLIT FILE.
**
split file off.

方法 C - CURVEFIT

使用 CURVEFIT 可以非常轻松地获得带有(非)线性拟合线和基本回归表的散点图。 只需导航到“分析 (Analyze)” SPSS Menu Arrow “回归 (Regression)” SPSS Menu Arrow “曲线估计 (Curve Estimation)”,然后填写如下所示的对话框。

SPSS 曲线估计对话框

如果您想查看所有模型,请在粘贴语法后将 /MODEL=LINEAR 更改为 /MODEL=ALL。

***CURVEFIT - ALL MODELS.
**
TSET NEWVAR=NONE.
CURVEFIT
/VARIABLES=salary WITH whours
/CONSTANT
/MODEL=ALL /* **CHANGE THIS LINE MANUALLY** */
/PLOT FIT.

结果

Ss SPSS 散点图中的线性非线性回归线

尽管此图表的样式很差,但大多数曲线似乎比线性关系更适合这些数据。这可以在下面显示的基本回归表中得到某种程度的验证。

SPSS Curvefit 系数输出

特别是三次模型似乎非常适合。它的方程是

\[Salary' = -13114 + 1883 \cdot hours - 80 \cdot hours^2 + 1.17 \cdot hours^3\]

遗憾的是,此输出相当有限:三次模型中的所有预测变量 真的 对 r 平方都有贡献吗?以下语法会产生更详细的输出,并验证我们的初始结果。

***QUICK REPLICATION CUBIC MODEL.
**
compute whours2 = whours**2.
compute whours3 = whours**3.

regression
/dependent salary
/method forward whours whours2 whours3.

方法 D - 回归变量图 (Regression Variable Plots)

回归变量图 (Regression Variable Plots) 是一个 SPSS 扩展,它主要用于

  • 一次性创建多个散点图和/或拟合线;
  • 绘制单独组的非线性拟合线;
  • 向这些图表添加元素并自定义这些图表。

我相信此扩展程序已预装在 SPSS 26 及更高版本中。如果不是,则应该可以从 STATS_REGRESS_PLOT 获得,但我过去在旧版 SPSS 上安装它时遇到了一些麻烦。

无论如何:如果已安装,导航到“图形 (Graphs)” SPSS Menu Arrow “回归变量图 (Regression Variable Plots)”应打开如下所示的对话框。

SPSS 回归变量图对话框

完成这些步骤将生成以下语法。 让我们运行它。

***FIT CUBIC MODELS FOR SEPARATE GROUPS (BAD IDEA).
**
STATS REGRESS PLOT YVARS=salary XVARS=whours COLOR=jtype
/OPTIONS CATEGORICAL=BARS GROUP=1 INDENT=15 YSCALE=75
/FITLINES CUBIC APPLYTO=GROUP.

结果

SPSS 非线性回归线 - 单独的组

大多数组未显示与线性的强烈偏差。 主要例外是高层管理人员,他们显示出相当奇怪的曲线。

但是,请记住,这些只是一些观察结果; 该曲线是过度拟合 (overfitting) 的结果。 它(可能)不会在其他样本中复制,因此不能认真对待。

方法 E - 所有散点图工具 (All Scatterplots Tool)

到目前为止,我们讨论的大多数方法对于创建带有拟合线的单个散点图都非常有用。 但是,我们经常需要检查 多个 这样的图,以查找诸如 离群值 (outliers)、同方差性和线性之类的内容。 这对于

尤其相关。

一个非常简单的工具,专门用于这些目的,可以从 SPSS - 创建所有散点图工具 (SPSS - Create All Scatterplots Tool) 下载和讨论。

SPSS 创建所有散点图工具对话框 2

总结

好了,这些就是在 SPSS 中获取带有拟合线的散点图的主要选项。