rcs 在 lm() 模型中生成错误的预测

2024-03-05

我正在尝试重现这篇博文 http://www.portfolioprobe.com/2011/03/28/the-devil-of-overfitting/关于过度拟合。我想探索样条曲线与测试多项式的比较。

我的问题:使用 rcs() - 受限三次样条 - 来自 rms 包,在常规 lm() 中应用时,我得到非常奇怪的预测。 ols() 工作正常,但我对这种奇怪的行为感到有点惊讶。有人可以向我解释发生了什么事吗?

library(rms)
p4 <- poly(1:100, degree=4)
true4 <- p4 %*% c(1,2,-6,9)
days <- 1:70

noise4 <- true4 + rnorm(100, sd=.5)
reg.n4.4 <- lm(noise4[1:70] ~ poly(days, 4))
reg.n4.4ns <- lm(noise4[1:70] ~ ns(days,5))
reg.n4.4rcs <- lm(noise4[1:70] ~ rcs(days,5))
dd <- datadist(noise4[1:70], days)
options("datadist" = "dd")
reg.n4.4rcs_ols <- ols(noise4[1:70] ~ rcs(days,5))

plot(1:100, noise4)
nd <- data.frame(days=1:100)
lines(1:100, predict(reg.n4.4, newdata=nd), col="orange", lwd=3)
lines(1:100, predict(reg.n4.4ns, newdata=nd), col="red", lwd=3)
lines(1:100, predict(reg.n4.4rcs, newdata=nd), col="darkblue", lwd=3)
lines(1:100, predict(reg.n4.4rcs_ols, newdata=nd), col="grey", lwd=3)

legend("top", fill=c("orange", "red", "darkblue", "grey"), 
       legend=c("Poly", "Natural splines", "RCS - lm", "RCS - ols"))

正如你所看到的,深蓝色无处不在......


只要指定结,您就可以将 rcs() 与非均方根拟合器一起使用。对于 ols 对象,predict 默认为 Predict.ols,这很好,因为它在适合模型时“记住”了结的放置位置。 Predict.lm 没有该功能,因此它使用新数据集的分布来确定结的位置,而不是训练数据的分布。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rcs 在 lm() 模型中生成错误的预测 的相关文章

随机推荐

  • 通过 React setState 使用子键的计算值

    我希望能够使用计算值sub keys在 React 中更新状态时 我了解如何在简单的设置中使用计算值 如下所示 this setState name value 但我在让键值计算适用于这样的情况时遇到困难 constructor props
  • 在 iPhone 中将 NSTimeInterval 转换为 NSString?

    如何将 NSTimeInterval 转换为字符串 我有 NSTimeInterval today NSDate date timeIntervalSince1970 我必须将 今天 作为 NSString 的输入 NSTimeInterv
  • 使用可配置键进行 Swift 4 JSON 解码

    我是 Swift 新手 我需要用一些东西来解析 JSON可配置按键 与我在这里看到的许多示例相反 密钥是已知的before解码操作开始 它们只依赖于传递给端点的一些参数 Example https some provider com end
  • 每个点都有时间序列的点之间的相关性下降

    我正在研究如何快速实现计算点 X Y Z 中 之间的相关性 并在给定搜索方向的情况下测量相关性何时低于某个阈值 我之前提出过一个相关问题计算点之间的相关性 其中每个点都有一个时间序列 https stackoverflow com ques
  • 在C程序中打印日语字符

    我想使用 C 程序打印日语字符 我找到了一些日语字符的 Unicode 范围 将它们转换为十进制并使用 for 循环来打印它们 setlocale LC ALL ja JP UTF8 for int i 12784 i lt 12799 i
  • 为什么@PrimaryKey val id: Int? = null 在创建 Room 实体时有效吗?

    我正在关注有关如何使用 Jetpack Compose 创建笔记应用程序的教程 这是tutorial https youtu be 8YPXv7xKh2w t 1227 教程中有一点是他创建了这个实体 Entity data class N
  • PHP 和 JavaScript cookie

    我可以用 PHP 访问用 jQuery 的 cookie 插件编写的 cookie 吗 我知道你不能将 Javascript 设置为等于 PHP 反之亦然 但本质上是 cookie var COOKIE var 再说一次 我知道你不能将它们
  • Java 8 Stream API min() 和 max() 与收集器 minBy() 和 maxBy() [重复]

    这个问题在这里已经有答案了 在 java 8 中 Stream API 帮助我们以非常干净且更少的代码完成我们的工作 我非常喜欢这些流 API 但是 很少有操作有助于解决同一类型的问题 并且不确定何时使用哪些操作 尽管在两者之间进行选择并不
  • 如何使用 Swift 在关闭 ViewController 期间将值从 ViewController B 传递到 ViewController A? [复制]

    这个问题在这里已经有答案了 我的场景 我试图传递值ViewController B to ViewController A在关闭视图控制器期间 这里我使用了下面的代码 但我无法获取其中的值ViewController A 视图控制器B pr
  • 如何跨角度模块正确导入/导出类?

    这个问题来自于企业应用的背景 从我读过的所有书籍和我见过的关于角度应用程序的在线示例中 每次我们创建一个类 组件 服务 实体等 时 我们都会在类型定义上导出它们 然后在需要的地方直接导入它们引用 类似于在 C 上使用命名空间 无论两个类属于
  • Tensorflow Op:如何包含 libtensorflow_framework.so?

    我按照本教程的说明进行操作 https www tensorflow org extend adding an op implement the gradient in python https www tensorflow org ext
  • 如何使用 Prisma 2 和 NodeJS 将图像存储到 PostgreSQL 中?

    大家好 我一直在寻找类似的可以参考的东西 但遗憾的是直到现在我还没有找到 希望有人能给我一些指导 我使用 filepond 发送 api 请求 并使用 prisma 2 客户端存储它 谢谢你 将图像存储在 Blob 存储中通常是一个很好的做
  • 在我的用户控件中找不到 GotFocus()/LostFocus()

    我创建了一个 WinForms 用户控件 我读过几个地方的内容GotFocus and LostFocus 事件 但我的用户控件未在 属性 窗口的 事件 部分中提供这些事件 我什至尝试打字override看看这些事件处理程序是否会出现 但他
  • 如何将 RVM 与 tcsh 一起使用?

    我想将 RVM 与 tcsh 一起使用 我该怎么做呢 据我所知 没有这方面的 官方 说明 我按照 将 RVM 与 tcsh 结合使用 http po ru com diary using rvm with tcsh 但这对我不起作用 特别是
  • PowerShell 变量声明中的大括号有什么意义吗?

    我遇到过这样声明的变量 或参数 var name Hello world 据我所知 这与以下内容没有什么不同 var name Hello world 我想知道是否 第一个示例中的大括号可以做任何事情或意味着任何事情 它们会改变变量的行为吗
  • 如何将 getdate 格式化为 YYYYMMDDHHmmSS

    在 SQL Server 中如何格式化getdate 输出到YYYYMMDDHHmmSS where HH是24小时格式吗 我有YYYYMMDD完成了 select CONVERT varchar GETDATE 112 但据我所知 Tha
  • 如何防止网格行跨度改变列位置?

    我有一个 3 X 3CSS Grid https developer mozilla org en US docs Web CSS CSS Grid Layout 我有一排 其中有三项A B C 我想要物品C有一个rowspan of 2
  • Spring boot 中不渲染 Jsp 视图页面。怎么解决呢?

    我正在尝试发出一个 ajax 请求 将一个值发送到我的 spring boot 但是 一旦我合并了 ajax 调用并且它成功地将值传递给 java 它就不会查看jsp页 我认为问题出在方法本身 但我不完全确定 我再次传递了值 但是每当我使用
  • 将功能绑定到按键不起作用

    My code import tkinter master tkinter Tk master title test1 master geometry 300x300 masterFrame tkinter Frame master mas
  • rcs 在 lm() 模型中生成错误的预测

    我正在尝试重现这篇博文 http www portfolioprobe com 2011 03 28 the devil of overfitting 关于过度拟合 我想探索样条曲线与测试多项式的比较 我的问题 使用 rcs 受限三次样条