【发布时间】:2023-03-07 18:58:02
【问题描述】:
您在 R 中使用哪些函数来拟合数据曲线并测试该曲线的拟合程度?什么结果被认为是好的?
【问题讨论】:
标签: r statistics curve-fitting
您在 R 中使用哪些函数来拟合数据曲线并测试该曲线的拟合程度?什么结果被认为是好的?
【问题讨论】:
标签: r statistics curve-fitting
nls() 函数 (http://sekhon.berkeley.edu/stats/html/nls.html) 是非线性最小二乘曲线拟合的标准。卡方(残差平方和)是在这种情况下优化的指标,但它没有标准化,因此您不能轻易使用它来确定拟合的好坏。你应该确保的主要事情是你的残差是正态分布的。不幸的是,我不确定是否有自动化的方式来做到这一点。
【讨论】:
这个问题的第一部分就可以填满整本书。只是一些快速的选择:
lm() 用于标准线性模型glm() 用于广义线性模型(例如逻辑回归)rlm() 来自 MASS 包,用于稳健的线性模型lmrob() 来自robustbase 包,用于稳健的线性模型loess() 用于非线性/非参数模型然后有特定领域的模型,例如时间序列、微观计量经济学、混合效应等等。几个任务视图,例如Econometrics 更详细地讨论这个问题。至于合身度,这也是人们可以很容易地花一整本书讨论的问题。
【讨论】:
Quick R 网站对用于拟合模型和测试拟合的基本函数进行了合理的总结,并附有示例 R 代码:
【讨论】:
R 中规范曲线拟合的主力是 lm()、glm() 和 nls()。对我来说,拟合优度是更大的模型选择问题中的一个子问题。事实上,错误地使用拟合优度(例如,通过逐步回归)会导致模型严重错误(参见 Harrell 的“回归建模策略”一书)。与其从头开始讨论这个问题,我推荐 Harrell 的书 lm 和 glm。维纳布尔斯和里普利的圣经很简洁,但仍然值得一读。 Faraway 的“用 R 扩展线性模型”内容全面且可读性强。这些资料中没有涵盖 nls,但 Ritz & Streibig 的“Nonlinear Regression with R”填补了空白,并且非常实用。
【讨论】:
您应该确保的主要内容是 你的残差通常是 分散式。不幸的是我不是 肯定有一种自动化的方式来做到这一点。
qqnorm() 可能会被修改以找到样本分位数和理论分位数之间的相关性。本质上,这只是对正常分位数图的数值解释。也许为不同的分位数范围提供几个相关系数值可能是有用的。例如,如果中间 97% 的数据的相关系数接近 1,而尾部的相关系数则低得多,这表明残差分布近似正态,尾部出现了一些有趣的现象。
【讨论】:
shapiro.test() 也可能合适
最好保持简单,看看线性方法是否“很好用”。您可以通过查看 R 平方和 F 统计量来判断您的拟合优度,一般情况下,不要分开。在模型中添加与因变量无关的变量会增加 R2,因此您还必须考虑 F 统计量。
您还应该将您的模型与其他嵌套或更简单的模型进行比较。只要因变量相同,使用对数似然比检验即可。
Jarque-Bera 检验适用于检验残差分布的正态性。
【讨论】: