R线性回归公式中的大写字母“I”是什么意思?

2023-12-07

我一直无法找到这个问题的答案,主要是因为谷歌搜索带有独立字母(如“I”)的任何内容都会导致问题。

“我”在这样的模型中做什么?

data(rock)
lm(area~I(peri - mean(peri)), data = rock)

考虑到以下方法不起作用:

lm(area ~ (peri - mean(peri)), data = rock)

然后this确实有效:

rock$peri - mean(rock$peri)

关于如何自己研究这个问题的任何关键词也会非常有帮助。


I isolates or 绝缘的内容I( ... )从R的公式解析代码来看。它允许标准 R 运算符像在公式之外使用它们一样工作,而不是被视为特殊的公式运算符。

例如:

y ~ x + x^2

对于 R 来说,意思是“给我:

  1. x= 主效应x, and
  2. x^2= 主效应和二阶交互作用x",

不是预期的x plus x- 平方:

> model.frame( y ~ x + x^2, data = data.frame(x = rnorm(5), y = rnorm(5)))
           y           x
1 -1.4355144 -1.85374045
2  0.3620872 -0.07794607
3 -1.7590868  0.96856634
4 -0.3245440  0.18492596
5 -0.6515630 -1.37994358

这是因为^是公式中的特殊运算符,如中所述?formula。你最终只包括x在模型框架中,因为主效应x已经包含在x公式中的项,没有什么可以交叉的x获得二阶相互作用x^2 term.

要获得常用的运算符,您需要使用I()将调用与公式代码隔离:

> model.frame( y ~ x + I(x^2), data = data.frame(x = rnorm(5), y = rnorm(5)))
            y          x       I(x^2)
1 -0.02881534  1.0865514 1.180593....
2  0.23252515 -0.7625449 0.581474....
3 -0.30120868 -0.8286625 0.686681....
4 -0.67761458  0.8344739 0.696346....
5  0.65522764 -0.9676520 0.936350....

(最后一栏是正确的,它只是看起来很奇怪,因为它是类AsIs.)

在你的例子中,-当在公式中使用时表示removal模型中您想要的术语-具有通常的二元运算符含义减法:

> model.frame( y ~ x - mean(x), data = data.frame(x = rnorm(5), y = rnorm(5)))
Error in model.frame.default(y ~ x - mean(x), data = data.frame(x = rnorm(5),  : 
  variable lengths differ (found for 'mean(x)')

这失败的原因是mean(x)是一个长度为 1 的向量并且model.frame()非常正确地告诉您这与其他变量的长度不匹配。解决这个问题的方法是I():

> model.frame( y ~ I(x - mean(x)), data = data.frame(x = rnorm(5), y = rnorm(5)))
           y I(x - mean(x))
1  1.1727063   1.142200....
2 -1.4798270   -0.66914....
3 -0.4303878   -0.28716....
4 -1.0516386   0.542774....
5  1.5225863   -0.72865....

因此,当您想要使用在公式中具有特殊含义的运算符,但您需要其非公式意思是,您需要将操作的元素包装在I( ).

Read ?formula有关特殊操作员的更多信息,以及?I有关函数本身的更多详细信息and它在数据框中的另一个主要用例(这是AsIs位源自,如果你有兴趣的话)。

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

R线性回归公式中的大写字母“I”是什么意思? 的相关文章

随机推荐

  • 如何在数据库列中存储多个项目?

    在我的项目中 员工插入一个餐桌号 选择客户订购的所有商品并将其保存到数据库中 我有三张桌子 Employee empId firstname lastname Orders orderId tableNum empIDFK itemIDFK
  • 批处理脚本从文件中删除 BOM (ï¿)

    我创建了一个批处理脚本 用于将 SQL 文件从文件夹复制到一个大 SQL 脚本中 问题是当我运行这个 SQL 脚本时 它出现错误 附近的语法不正确 我将一个 SQL 脚本复制到 Notepad 中并将编码设置为 ANSI 我在发生错误的行上
  • 如何在PyGame中拖动多个图像?

    import pygame from pygame locals import pygame display init screen pygame display set mode 1143 677 img pygame image loa
  • 获取网页内容(通过AJAX调用加载)

    我是一个爬行初学者 我需要从链接中获取帖子和评论 我想自动化这个过程 我考虑过使用 webcrawler 和 jsoup 来实现此目的 但被告知 webcrawler 主要用于具有更大深度的网站 页面示例 Jive 社区网站 对于此页面 当
  • 无法使用 SCVMM powershell 模块提取虚拟网络名称

    我尝试使用 powershell 提取虚拟机的虚拟网络信息 我尝试使用正则表达式 但对于具有超过 1 个 NIC 的虚拟机 我无法看到输出 下面是我需要的输出 PS C gt get vm sql IAN01 Host select Exp
  • Swift:手势识别器无法识别选择器发送到实例

    我正在尝试在 XCode 中制作手势识别器 以便我可以点击 MKMapView 并执行一些操作 但是 每当我长按地图时 我都会收到 发送到实例的无法识别的选择器 这是我在 viewDidLoad 中的代码 let gestureRecogn
  • 在 JavaScript 中更改输入值并提交表单

    我目前正在制作一个基本表格 当您点击提交按钮时 它应该首先更改字段的值 然后像平常一样提交表单 一切看起来有点像这样
  • Jetty SslConnector 已弃用的方法

    SslConnector java最新的 Jetty 中的界面已更改7 3 1 v20110307 几乎所有方法都已被标记为已弃用 而没有提及要使用的替换接口或方法 我已经检查过码头用户 and 码头开发邮件列表中的信息没有运气 有谁知道将
  • Zend_Form:带有复选框的 HTML 表中的数据库记录

    我正在尝试将 HTML 多列表添加到 Zend Form 该表将由数据库中的数据填充 并且每行前面应有一个复选框 如下面的 ASCII 所示 Column 1 Column 2 Column 3 x Row 1 Some data more
  • 如何将 Drawable 资源写入文件?

    我需要出口一些Drawable资源到文件 例如 我有一个函数返回给我一个Drawable目的 我想把它写到一个文件中 sdcard drawable newfile png 我该怎么做 尽管这里的最佳答案有一个很好的方法 这只是链接 以下是
  • 向 Netbeans 应用程序的基于 Inno 的设置添加其他文件

    我在用Inno 5 设置安装程序位于Netbeans将我的 Java Swing 应用程序构建为可执行设置文件 它创建一个包含所有 lib 所有 jar 文件 和 app jar 的 app exe 安装文件 因此 一旦用户执行 app e
  • 纠结于如何使用 api 响应进行调用以从不同的链接检索响应

    我目前在使用 PokeApi 时遇到问题 我有代码可以让我查看 Pokemon 的名称以及 Pokemon 的其他 JSON 的 URL 但我不太确定如何检索该数据 这是我到目前为止所拥有的 这是 api 的链接 让 pokeList im
  • 使用 Gmail SMTP 发送电子邮件时出错

    我正在尝试使用 Gmail SMTP 发送电子邮件PHPmailer 问题是我有这个错误 SMTP gt ERROR Failed to connect to server php network getaddresses getaddri
  • 使用正则表达式以任意顺序排列多个单词[重复]

    这个问题在这里已经有答案了 正如标题所说 我需要在句子中找到两个特定的单词 但它们可以是任何顺序和任何大小写 我该如何使用正则表达式来做到这一点 例如 我需要提取单词test and long从下面的句子中是否该词test首先出现或long
  • Linq2SQL:更新对象未在数据上下文中创建

    通常 当您在 linq2sql 中更新对象时 您会从数据上下文中获取该对象并使用相同的数据上下文来保存该对象 对吧 更新尚未由用于执行保存操作的数据上下文检索的对象的最佳方法是什么 即我使用Florinefx在flex和asp net之间传
  • 错误代码 1005,SQL 状态 HY000:无法创建表 errno:150

    我正在尝试创建一个表 但是当我的 netbeans 出错数据库的第一个表时 脚本就会失败 如何解决这个问题 CREATE TABLE filmy Film Id int NOT NULL Nazwa varchar 250 Adres va
  • HttpModule 仅在特定 MVC 路由上

    我有一个习惯IHttpModule我只想在特定路线上工作 例如 http example com HandleAzureTask 我希望这个模块只能在 HandleAzureTask route 由于这不是控制器 我无法真正设置 Autho
  • UINavigationBar 旋转和自动布局

    关于通过将 UINavigationBar 插入场景来设计自己的视图控制器 我发现了许多关于旋转设备时框架高度如何不改变的问题的参考 这与 Apple 在其导航控制器中使用 UINavigationBar 的方式形成鲜明对比 其中导航栏的高
  • 如何在 Easy Slider 1.7 中重新启动滑动动画

    我有一个关于 jQuery Easy Slider 1 7 的问题http cssglobe com post 5780 easy slider 17 numeric navigation jquery slider带有数字导航 当我使用滑
  • R线性回归公式中的大写字母“I”是什么意思?

    我一直无法找到这个问题的答案 主要是因为谷歌搜索带有独立字母 如 I 的任何内容都会导致问题 我 在这样的模型中做什么 data rock lm area I peri mean peri data rock 考虑到以下方法不起作用 lm