问题标签 [model.matrix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R- model.matrix 用于返回所有级别的因子
我需要手动预测概率。我正在使用这个邮政编码。我想从模型中删除一个变量并保留原始系数来预测另一个时期。我的公式是:
我想删除 fl_cliente_hit。所以我使用 model.matrix 并排除它:
所以这个矩阵的第一行是:
我想这应该保持变量的(级别数-1)级别。例如:
如您在 mm[1,] 中看到的,矩阵仅包含这 3 个级别中的 2 个
但问题在于 cd_sexo:
它只有 2 个级别,并且包括两个级别。
我的问题是,由于我想预测概率,我将使用 coeff(lr) 并且与 mm 矩阵相比,我将拥有不同数量的变量。
r - 多部分公式解析:处理 NA 并最小化对象副本
我试图了解如何使用公式对象。假设我想制作自己的 2SLS 函数,并且想将我正在使用的对象分为 4 个主要组:y = response;X = 外生变量;E = 内生变量;Z = 仪器。
我希望能够构建这些对象,而无需不必要地制作额外的数据副本(例如,大 N 和大量仪器会使内存使用/时间成本过高)。我还想考虑数据中的 NA。
让我们使用类似于 felm 的公式语法(我尝试查看那里的解析代码,但无法遵循它)。
现在,我可以做类似的事情
这将考虑 y 和 X 中的 NA,但忽略 E 和 Z。此外,这会将数据复制到 mf 中,然后再次复制到 y 和 X 中。
所以,我有 2 个问题和 1 个约束
- 我如何获得E?(第二个等式的 LHS 矩阵)
- 如何在所有矩阵中考虑 frml 使用的数据中的 NA?
- 同时最小化数据副本的数量(理想情况下只是复制到矩阵中)
更一般地说,什么是理解公式、公式、术语等的好资源?我还没有发现,例如公式库包文档非常有用。
lme4 - 尝试从模型矩阵中提取信息时,来自 lmer 的不符合参数错误
我有一些纵向数据,我想从中获得指定时间的预测均值。该模型包括 2 项,它们的交互作用和时间变量的样条项。当我尝试获得预测的平均值时,我得到“错误在 mm %*% fixef(m4) : non-conformable arguments”
我使用了 lmer 的 sleep 数据集来说明我的问题。首先,我导入数据并为我的交互创建一个变量“年龄”
然后我运行我的 lmer 模型
最后,我创建了获得预测均值所需的数据和矩阵
正是在这一点上,我得到了错误: mm %*% fixef(m4) 中的错误:不合格的参数
我可以使用 predict 来获取手段
效果很好,但我希望能够计算置信区间,所以我需要一个一致的矩阵。
我在某处读到问题可能是 lmer 创建了别名(我找不到那个帖子)。此评论是关于无法将 effect() 用于类似任务的问题。我不太明白如何克服这个问题。此外,我记得那个帖子有点旧,希望别名问题可能不再相关。
如果有人对我可能做错的事情提出建议,我将不胜感激。谢谢。
r - predict 和 model.matrix 在因子变量的水平内给出不同的预测均值
这个问题是由此处发布的另一个问题引起的:non-conformable arguments error from lmer when trying to extract information from the model matrix
当尝试从包含因子变量的 lmer 模型中获取预测均值时,输出会根据因子变量的指定方式而有所不同。
我有一个可变年龄组,可以使用“15 岁以下儿童”、“15-49 岁成人”、“50 岁以上老人”或“0-15 岁”、“15-49 岁”、“50 岁以上”组来指定你”。我的选择很重要,因为对于前者,标签的字母顺序不同于级别的数字顺序。为了说明这一点,我再次使用了睡眠数据。
我必须为年龄创建一个变量。
运行模型
现在,我尝试使用模型矩阵和预测函数输出预测均值:
这里,来自模型矩阵的预测均值和预测函数是不同的;成人和儿童年龄组是倒置的。
如果我使用字母顺序与级别的数字顺序相同的因子标签再次运行此脚本,我会得到不同的结果:
这里,来自模型矩阵的预测均值和预测函数是相同的。
Predict 似乎忽略了标签并专注于级别,而直接访问模型矩阵则正确地专注于标签。那么,我的问题是,在尝试使用模型矩阵时是否总是需要确保因子水平和标签具有相同的顺序?还是有其他方法可以克服这个问题?
r - model.matrix 赋值
假设我有以下data.frame:
将model.matrix
类别 (cat) 转换为虚拟变量,如下所示:
但是,我希望将这些虚拟变量分配给 df$y 中的值。我能想到的一种可能的解决方案是与 y 相乘。
但是,我猜有更好的专用功能吗?
所以基本上,将虚拟变量转换为给定向量的最有效方法是什么?
r - 在 model.matrix 中定义控制值
在构建模型矩阵时,我注意到在处理具有超过 2 个值的变量时,模型矩阵似乎随机选择要用作列的变量:
在示例 1 中:
饮食 = 控制,并且推断性别 = f。在饮食的情况下,控制被忽略了,所以我对矩阵很满意。
在示例 2 中:
饮食=高是缺失的变量。现在我知道这可能是迂腐的,因为我知道 R 不在乎。但是有没有办法指定哪些变量应该被忽略(在这种情况下,我希望饮食 = med 作为对照,因此被忽略)
r - R:使用 model.matrix 时重命名
运行以下 R 代码时:
model.matrix 在变量名中添加了矩阵 A 中的前缀“B”。我怎样才能避免这种行为(或在非常一般的设置中重命名它,例如在具有用户提供公式的函数中)?
r - 交互项中的变量顺序
我正在尝试拟合一些线性模型,如下所示。重要的是所有交互项都按字典顺序排序。请注意,第二个模型缺少 x 的主效应。
就交互项而言,模型的行为与预期不同:
我知道可能有一种方法可以使用带有 lex.order 参数的interaction() 函数,但我不知道如何,或者实际上,这是否是最好的方法。建议?
r - `dmap_if` 和 'model.matrix' 一起
我正在使用包中的Arthritis
数据集vcd
来执行一种热编码。我想用purrr::dmap_if
和Matrix::model.matrix
一起来做这件事。当我跑
工作正常。
当我使用下面的代码不起作用
r - R model.matrix 在所有列中使用相同的因子集
我有一组包含五列的篮球阵容数据,每列共享相同的因子,如下所示:
我想要做的是让每一行都是行上显示的当前因子的虚拟编码,如下所示:
但是,model.matrix 似乎只有一列的范围;它不会让我在多个列中共享整个因子集。遵循 [this thread][1] 中的一些建议,我尝试了:
它结合了列名和因子名。我该怎么办?