R语言-如何处理违背回归假设的问题
我们已经花费了不少篇幅来学习回归诊断,你可能会问:“如果发现了问题,那么能做些什么呢?”有四种方法可以处理违背回归假设的问题:
删除观测点;
变量变换;
添加或删除变量;
使用其他回归方法。
下面让我们依次学习。
8.5.1 删除观测点
删除离群点通常可以提高数据集对于正态假设的拟合度,而强影响点会干扰结果,通常也会被删除。删除最大的离群点或者强影响点后,模型需要重新拟合。若离群点或强影响点仍然存在,重复以上过程直至获得比较满意的拟合。
不过,我对删除观测点持谨慎态度。若是因为数据记录错误,或是没有遵守规程,或是受试对象误解了指导说明,这种情况下的点可以判断为离群点,删除它们是十分合理的。
不过在其他情况下,所收集数据中的异常点可能是最有趣的东西。发掘为何该观测点不同于其他点,有助于你更深刻地理解研究的主题,或者发现其他你可能没有想过的问题。我们一些最伟大的进步正是源自于意外地发现了那些不符合我们先验认知的东西(抱歉,我说得夸张了)。
8.5.2 变量变换
当模型不符合正态性、线性或者同方差性假设时,一个或多个变量的变换通常可以改善或调整模型效果。变换多用Y λ 替代Y, λ 的常见值和解释见表8-5。
若Y是比例数,通常使用logit变换[ln (Y/1-Y )]。
当模型违反了正态假设时,通常可以对响应变量尝试某种变换。 car包中的powerTransform()函数通过λ 的最大似然估计来正态化变量X λ。代码清单8-10是对数据states的应用。
结果表明,你可以用Murder0.6来正态化变量Murder。由于0.6很接近0.5,你可以尝试用平方根变换来提高模型正态性的符合程度。但在本例中, λ= 1的假设也无法拒绝(p=0.145),因此没有强有力的证据表明本例需要变量变换,这与图8-9的Q-Q图结果一致。
当违反了线性假设时,对预测变量进行变换常常会比较有用。 car包中的boxTidwell()函数通过获得预测变量幂数的最大似然估计来改善线性关系。下面的例子为用州的人口和文盲率来预测谋杀率,对模型进行了Box-Tidwell变换:
结果显示,使用变换Population0.87和Illiteracy1.36能够大大改善线性关系。但是对Population(p=0.75)和Illiteracy(p=0.54)的计分检验又表明变量并不需要变换。这些结果与图8-11的成分残差图是一致的。
响应变量变换还能改善异方差性(误差方差非恒定)。在代码清单8-7中,你可以看到car包中spreadLevelPlot()函数提供的幂次变换应用,不过, states例子满足了方差不变性,不需要进行变量变换。
谨慎对待变量变换
统计学中流传着一个很老的笑话:如果你不能证明A,那就证明B,假装它就是A。(对于统计学家来说,这很滑稽好笑。)此处引申的意思是,如果你变换了变量,你的解释必须基于变换后的变量,而不是初始变量。如果变换得有意义,比如收入的对数变换、距离的逆变换,解释起来就会容易得多。但是若变换得没有意义,你就应该避免这样做。比如,你怎样解释自杀意念的频率与抑郁程度的立方根间的关系呢?
8.5.3 增删变量
改变模型的变量将会影响模型的拟合度。有时,添加一个重要变量可以解决我们已经讨论过的许多问题,删除一个冗余变量也能达到同样的效果。删除变量在处理多重共线性时是一种非常重要的方法。如果你仅仅是做预测,那么多重共线性并不构成问题,但是如果还要对每个预测变量进行解释,那么就必须解决这个问题。最常见的方法就是删除某个存在多重共线性的变量(某个变量 vif
2 ) 。另外一个可用的方法便是岭回归——多元回归的变体,专门用来处理多重共线性问题。
8.5.4 尝试其他方法
正如刚才提到的,处理多重共线性的一种方法是拟合一种不同类型的模型(本例中是岭回归)。其实,如果存在离群点和/或强影响点,可以使用稳健回归模型替代OLS回归。如果违背了正态性假设,可以使用非参数回归模型。如果存在显著的非线性,能尝试非线性回归模型。如果违背了误差独立性假设,还能用那些专门研究误差结构的模型,比如时间序列模型或者多层次回归模型。最后,你还能转向广泛应用的广义线性模型,它能适用于许多OLS回归假设不成立的情况。在第13章中,我们将会介绍其中一些方法。至于什么时候需要提高OLS回归拟合度,什么时候需要换一种方法,这些判断是很复杂的,需要依靠你对主题知识的理解,判断出哪个模型提供最佳结果。既然提到最佳结果,现在我们就先讨论一下回归模型中的预测变量选择问题。
8.6 选择“最佳”的回归模型
尝试获取一个回归方程时,实际上你就面对着从众多可能的模型中做选择的问题。是不是所有的变量都要包括?抑或去掉那个对预测贡献不显著的变量?还是需要添加多项式项和/或交互项来提高拟合度?最终回归模型的选择总是会涉及预测精度(模型尽可能地拟合数据)与模型简洁度(一个简单且能复制的模型)的调和问题。如果有两个几乎相同预测精度的模型,你肯定喜欢简单的那个。本节讨论的问题,就是如何在候选模型中进行筛选。注意,“最佳”是打了引号的,因为没有做评价的唯一标准,最终的决定需要调查者的评判。
数据分析咨询请扫描二维码
《Python数据分析极简入门》 第2节 6 Pandas合并连接 在pandas中,有多种方法可以合并和拼接数据。常见的方法包括append()、conc ...
2024-11-24《Python数据分析极简入门》 第2节 5 Pandas数学计算 importpandasaspdd=np.array([[81,&n ...
2024-11-23数据分析涉及多个方面的学习,包括理论知识和实践技能。以下是数据分析需要学习的主要方面: 基础知识: 数据分析的基本概念 ...
2024-11-22数据分析适合在多个单位工作,包括但不限于以下领域: 金融行业:金融行业对数据分析人才的需求非常大,数据分析师可以从事经 ...
2024-11-22数据分析是一种涉及从大量数据中提取有用信息和洞察力的过程。其工作内容主要包括以下几个方面: 数据收集与整理:数据分析师 ...
2024-11-22数据分析师需要掌握多种技能,以确保能够有效地处理和分析数据,并为业务决策提供支持。以下是数据分析师需要掌握的主要技能: ...
2024-11-22数据开发和数据分析是两个密切相关但又有所区别的领域。以下是它们的主要区别: 定义和目标: 数据开发:数据开发涉及数据的 ...
2024-11-22数据架构师是负责设计和管理企业数据架构的关键角色,其职责涵盖了多个方面,包括数据治理、数据模型设计、数据仓库构建、数据安 ...
2024-11-22数据分析师需要具备一系列技能,以确保能够有效地处理、分析和解释数据,从而支持决策制定。以下是数据分析师所需的关键技能: ...
2024-11-22数据分析师需要具备一系列技能,以确保能够有效地处理、分析和解释数据,从而支持决策制定。以下是数据分析师所需的关键技能: ...
2024-11-22数据分析师需要具备一系列的技能和能力,以确保能够有效地处理、分析和解释数据,从而支持业务决策。以下是数据分析师所需的主要 ...
2024-11-22需求持续增长 - 未来数据分析师需求将持续上升,企业对数据驱动决策的依赖加深。 - 预测到2025年,中国将需要高达220万的数据人 ...
2024-11-22《Python数据分析极简入门》 第2节 4 Pandas条件查询 在pandas中,可以使用条件筛选来选择满足特定条件的数据 importpanda ...
2024-11-22数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21数据分析行业正在迅速发展,随着技术的不断进步和数据量的爆炸式增长,企业对数据分析人才的需求也与日俱增。本文将探讨数据分析 ...
2024-11-21数据分析的常用方法包括多种技术,每种方法都有其特定的应用场景和优势。以下是几种常见的数据分析方法: 对比分析法:通过比 ...
2024-11-21企业数字化转型是指企业利用数字技术对其业务进行改造和升级,以实现提高效率、降低成本、创新业务模式等目标的过程。这一过程不 ...
2024-11-21