问题标签 [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.

0 投票
1 回答
1559 浏览

r - 防止 model.matrix 的名称出现在回归结果中

是否可以在回归中使用模型矩阵而在回归结果中没有模型矩阵的名称?

我需要经历这样一个过程,因为我有一些我没有观察到的交互。(ie) 交互的结果是NA

可以在此处找到相关问题。

以下是一些数据来说明我的观点:

结果

我们如何摆脱结果中的model.matrix名称a

0 投票
1 回答
2004 浏览

r - R将分类数据更改为虚拟变量

我有一个多变量数据框,想将里面的分类数据转换为虚拟变量,我使用了 model.matrix,但它不太管用。请参考以下示例:

我没有使用的原因model.matrix(~age+sex+bloodtype+bodyweight)[,-1]是因为这只是一个玩具示例。在真实数据中,我可以有数十或数百列。我不认为在这里输入所有变量名是个好主意。

谢谢

0 投票
1 回答
756 浏览

r - 在 R 中构建 model.matrix 无法放入内存(尝试了所有内存映射包)

我正在尝试lm()为大型销售数据集估计 R 中的装备。数据本身并没有大到 R 无法处理;大约 250MB 的内存。问题是当lm()被调用以包含所有变量和交叉项时,构造会model.matrix()引发错误,指出机器内存不足并且无法分配大小为任何大小的向量(在本例中约为 47GB)。可以理解,我没有那么多内存。问题是,我已经尝试了ffbigmemoryfilehash包,所有这些都可以在内存之外使用现有文件正常工作(我特别喜欢 的数据库功能filehash)。但我不能,为了我的一生,得到model.matrix被创造出来。我认为问题在于,尽管将输出文件映射到我创建的数据库,R 还是尝试在 RAM 中设置它,但不能。有没有办法使用这些包来避免这种情况,或者我做错了什么?[此外,使用biglm和其他功能来分块地做事甚至不允许我一次一个地分块。再一次,似乎 R 试图先制作整个model.matrix,然后再分块]

任何帮助将不胜感激!

0 投票
2 回答
64 浏览

r - 在 R 中,如何将行值转换为新列

我有一个使用以下内容创建的数据框“mydf”:

您会注意到,z 有四个不同的值(A、B、C 和 D)。现在我要做的是创建四个名为 z_A、z_B、z_C 和 z_D 的新字段,其中每个字段填充 0 或 1。如果 mydf$z==A,则 z_A 应该为 1。如果 mydf$z==B ,则 z_B 应为 1,否则为 0,依此类推。

虽然我现在在 mydf$z 中只有四个不同的值,但我正在尝试使用一个通用函数,我可以使用它来对可以具有任意数量的不同值的任何列进行二值化。

我查看了 StackOverflow 上的另一个示例,例如:

当列只有字符值时效果很好。

当我尝试使用 z 列作为数字变量时:

我得到:

如果我尝试将所需的变量设置为字符,我会得到以下内容,除了字段名称都很混乱:

如果有其他信息有助于解决此问题,请告诉我。

谢谢!

编辑:这是霍华德反馈的一些实际数据的示例。

在这种情况下,我想创建 df$season1、df$season2、df$season3 和 df$season4。在这种情况下,我的问题是我是否必须输入数据集中的每一列(参见下面的 dcast)才能添加 season1、season2、season3 和 season4 字段?而且,有没有办法将它们命名为第 1 季、第 2 季、第 3 季、第 4 季而不是 1、2、3、4?

0 投票
1 回答
1660 浏览

python - 通过rpy2使用model.matrix?

在我的工作中,我更喜欢 python 而不是 R。有时,我需要使用 R 函数,为此我开始尝试使用 Rpy2。

我尝试但未能找到如何使用 Rpy2 复制以下内容

我已经做到了:

从我在这里看到的。但我找不到如何执行model.matrix。我尝试了几种不同的方法:

正如你所看到的,它们都不是正确的。

我是 Rpy2 的新手,并且在 R 方面相当缺乏经验。任何帮助将不胜感激!

0 投票
0 回答
250 浏览

r - model.matrix() 的目标是什么?

我目前正在阅读斯坦福 OpenX 的“统计学习简介”MOOC。在其中一个实验室练习中,它建议通过显式使用从测试数据创建模型矩阵model.matrix()

课本摘录

我们现在计算每个模型大小的最佳模型的验证集误差。我们首先从测试数据中制作模型矩阵。

model.matrix() 函数在许多回归包中用于X从数据构建矩阵。现在我们运行一个循环,对于每个大小i,我们从中提取该regfit.best大小的最佳模型的系数,将它们相乘到测试模型矩阵的适当列中以形成预测,并计算测试 MSE。

我知道这model.matrix会将字符串变量转换为具有不同级别的值,并且模型lm()会在后台进行转换。

但是,我们会明确使用哪些实例,model.matrix()为什么?

0 投票
1 回答
433 浏览

r - 强制 R 中的 model.matrix() 使用给定的一组级别

我需要将调查数据框中的少量分类变量转换为虚拟变量。变量按类型(例如食物类型)分组,并且在每种类型的调查中,受访者对他们的第一、第二和第三偏好进行了排名。每种类型的可用选项列表相似但不相同。我的问题是我想强制类别选择的超集在每种情况下都进行虚拟编码。

回顾一下,model.matrix() 将为任何单个变量创建虚拟变量:

或通过 sapply() 获取所有变量:

自然,model.matrix() 只会分别考虑每个因素中存在的水平。但我想强制为每种类型包含完整的食物类型:面条、米饭、卷心菜、猪肉、金枪鱼、鲭鱼。在此示例中,将生成 54 个虚拟变量(3 个类型 x 3 个等级 x 6 个类别)。我假设我会以某种方式将完整的集合显式传递给 model.matrix(),但看不到如何。

最后,我知道 R 模型会在内部自动生成虚拟代码因子,但我仍然需要这样做,包括在 R 外部导出。

0 投票
1 回答
962 浏览

r - 将虚拟矩阵熔化为一列

如果我有一个因子变量,比如x = factor(c(1, 2, 3)),那么我可以使用model.matrix函数来生成一个虚拟矩阵:

我会得到一个像这样的矩阵:

我的问题是,如果我已经有一个很大的虚拟矩阵,我怎么能把它融化回(因子)列?

在另一个世界中,是否存在 的反函数model.matrix

0 投票
2 回答
1268 浏览

r - 具有数值和分类数据的稀疏矩阵

我正在尝试使用数值和分类数据创建一个稀疏矩阵,该矩阵将用作 cv.glmnet 的输入。当只涉及数值数据时,我可以使用以下语法创建一个 sparseMatrix

对于分类变量,以下方法似乎有效:

我非常稀疏的实例有 1,000,000 个观察值和 10,000 个变量。我没有足够的内存来首先创建完整的矩阵。我能想到的创建 sparseMatrix 的唯一方法是通过创建列并将数据转换为 (i,j,x) 格式来手动处理分类变量。我希望有人可以提出更好的方法。

0 投票
2 回答
627 浏览

r - R formula() dummy coding model matrix factor interactions

I'm attempting to use formula to generate a model.matrix object to be used in a custom optimizer function.

It works great for the most part, but when it comes to factor-factor interactions, I'd like to specify the interaction as dummy coded rather than effects coded.

Take for example the following data set:

Both the : and / operators create an effects coded model matrix (the latter being an additive effects structure, I think).

But I am looking to generate a dummy coded model matrix, which would have the first level of X1 omitted for each level of X2. Resulting in these terms (columns):

X1B:X2A

X1C:X2A

X1B:X2B

X1C:X2B

X1B:X2C

X1C:X2C

Is there a way to achieve this?