当我将分类和连续预测变量混合使用时,可以使用多元回归吗?


12

看起来您可以对一个分类变量使用编码,但是我有两个分类变量和一个连续的预测变量。我可以在SPSS中为此使用多元回归吗?谢谢!


我相信你可以,但是恐怕我不知道怎么做
一站式

我建议在SPSS随附的帮助文档中输入诸如回归之类的内容。对于任何统计数据包来说,都应该是面包和黄油之类的东西
概率

我不知道通过编码一个类别变量是什么意思。您可以举一个语法示例吗?您的因变量是连续的还是分类的?
安迪W

Answers:


8
  1. 如果这是一个SPSS语法问题,答案只是将经过适当编码的分类变量与连续变量一起放入“独立变量”的变量列表中。
  2. 关于统计信息:您的分类变量是二进制的吗?如果是这样,则需要使用虚拟或其他有效的对比代码。如果不是二进制,则分类变量是序数还是名义变量?如果是名义上的,则必须再次使用某种对比代码策略-实际上是模拟变量的每个级别对结果或“因变量”的影响。如果分类变量为序数,则最有可能明智的做法是像使用连续预测变量(即“独立”)一样将其按原样输入模型。在那种情况下,您将假设类别预测变量(“独立”)变量的级别之间的增量;这很少会是一个错误,但是如果是这样,您应该再次使用对比代码并为每个级别的影响建模。这个论坛上经常出现这个问题-这是一个很好的分析
  3. 在我看来,如何处理丢失的数据是完全独立的事情。我的理解是,成对删除不被视为多元回归的有效方法。Listwise很常见,但也会使结果产生偏差,这无疑是一种耻辱。多重插补是一件美事。

我有一个关于DMK38的问题。上面您写道,可以将分类变量按序添加到模型中。我很高兴阅读此书;-)您是否也有提及这方面的好资料,以便我可以将其添加到我的论文中?非常感谢您的回答!莉莲(Lilian)
莉莲(Lilian Jans-Beken)'16

1
@ LilianJans-Beken:请参阅具有序数自变量Logistic回归以及序数自变量的连续因变量。您可能不希望采用更复杂的方法,但要注意,即使您乐于将预测变量视为区间标度,也没有必要将其约束为与响应具有线性关系。如果别的事情看起来更明智,也不要认为必须在连续的级别之间采用相等的间隔。
Scortchi-恢复莫妮卡

1
@ LilianJans-Beken:还介绍了如何将有序分类变量作为自变量具有序数自变量的Logit 进行处理。哦,欢迎您通过Cross Validated!
Scortchi-恢复莫妮卡

2

通过使用与第一个类别预测变量相同的方法,您绝对可以。与第一个此类变量一样,创建虚拟变量。但是使用SPSS的Unianova命令通常更容易。您可以在任何印刷版或pdf版的《语法指南》中查找此内容,也可以通过Analyze ... General Linear Model ... Univariate访问它。

尽管稍微复杂一点,但是与Unianova相比,Regression命令具有许多优势。最主要的是您可以选择“成对丢失”(您不必因为丢失一个或两个预测变量的值而丢失案例)。您还可以获得许多有价值的诊断信息,例如局部图和影响统计信息。


1
@ rolando-好答案。就是说,缺少成对的方法往往会混淆效果比较,因为它们基于不同数量的观察结果。可能要记住一些事情。
richiemorrisroe 2011年

我认为,仅当您运行完全独立的模型(例如,使用逐步模型选择过程)时,才有可能引起您的困惑,成对丢失。如果将所有变量输入到模型中,它仍会逐列表丢失缺失值。
Andy W

@ richiemorrisroe-我同意,值得牢记。@ Andy W-刚刚在SPSS中确认,仅使用强制输入,成对丢失和按列表丢失在各个方面都会产生不同的结果,包括不同的df。
rolando2 2011年

我仍然认为您感到困惑,SPSS如何通过成对声明缺失来返回不同的结果集,除非它弥补缺失数据的值?这是使用我发布在文本文件dl.dropbox.com/u/3385251/SPSS_missing_Listwise_vs_Pairwise.txt中的模拟数据的示例。我目前对您的答案不满意,因为所有有关回归命令如何处理缺失数据的讨论都令人困惑,与OP的原始问题无关,并且可能会产生误导。
安迪W

1

将分类变量转换为一组虚拟变量以在SPSS中的模型中使用的简单方法是使用重复执行语法。如果您的分类变量按数字顺序使用,这是最简单的方法。

*making vector of dummy variables.
vector dummy(3,F1.0).
*looping through dummy variables using do repeat, in this example category would be the categorical variable to recode. 
do repeat dummy = dummy1 to dummy3 /#i = 1 to 3.
compute dummy = 0.
if category = #i dummy = 1.
end repeat.
execute. 

否则,您可以简单地运行一组if语句来创建您的虚拟变量。我当前的版本(16)没有在回归命令中自动指定一组伪变量的本机能力(就像您可以使用xi命令在Stata中那样),但是如果在某些较新版本中可用,我不会感到惊讶。还请注意dmk38的要点#2,此编码方案采用的是名义类别。如果您的变量是序数,则可以使用更多的判断力。

我也同意dmk38,关于回归更好的说法是因为它有能力以特定方式指定丢失的数据,这是一个完全独立的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.