问题标签 [mass]

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 投票
0 回答
96 浏览

r - MCA 中的第一主成分(多重对应分析)(R MASS 包)

看了R MASS包的源码就知道它的流程了。

(GitHub 网址https://github.com/cran/MASS/blob/master/R/mca.R

对于这段代码,我有一个问题。矩阵的SVD后,源代码设置序列如下(第36行)

这个序列用于提取主成分:

或者

因为序列sec是 start 2,上面的提取意味着 MASS 包中的 MCA 丢弃了第一个主成分。

这个过程是否正确?

我找不到有关此过程的论文或文章。

如果你知道原因,你能告诉我吗?

0 投票
1 回答
164 浏览

r - 我可以根据逻辑条件为 MASS::parcoord() 分配颜色吗?

这是生成平行坐标图的代码:

shoes数据集用于显示配对 t 检验的功效,这只是背景信息。鞋子有两列A和B,分别代表两种鞋底材质的磨损。正确分析,材料之间存在巨大差异。

显示配对数据的一个好方法是使用平行坐标图,但正如您所见,如果没有一些颜色,它几乎什么都不是。我想添加两种颜色,比如 red whenA > B和 green when A < B。两种情况都会发生:

我的问题是parcoord()在观察时会循环颜色,所以我不确定如何根据逻辑测试指定颜色。我试过了

和各种玩弄数字(除了加 26 之外还有很多)

但似乎没有任何效果。我要么得到一系列颜色,要么得到所有一种颜色,要么得到除了顶部和底部条目之外的所有一种颜色。我想FALSE生成一种颜色,TRUE生成另一种颜色。

0 投票
1 回答
107 浏览

r - EpiDisplay ordinal.or.display p 值的结果与 MASS 包中 polr 的计算 p 值存在差异?

我正在尝试使用序数逻辑回归(特别是 MASS 包中的 polr)计算一组生物标志物的优势比和相关 p 值。我一直在使用 epiDisplay 包中的 'ordinal.or.display()' 函数来查看回归结果,但请注意显示的 p 值与我手动计算的值之间存在差异……大约是两倍当我使用正态分布计算它时很大。我是否遗漏了特定于序数逻辑回归的某些内容,或者这是 epiDisplay 函数的问题?

我尝试查看 epiDisplay 包的文档(https://cran.r-project.org/web/packages/epiDisplay/epiDisplay.pdf),但没有找到任何解释 p 值是如何计算的. 非常感谢任何帮助或其他知识!

我希望 p 值是相同的——epiDisplay 可能不会乘以 2 吗?

0 投票
0 回答
168 浏览

r - 带有 vcovCL 的 POLR 有序 logit 上的聚集标准错误给出“不一致的参数”错误

我正在尝试使用 MASS 的 POLR 函数在有序 logit 回归上获得聚集标准错误。回归有大约 2,900 个固定效应(美国县和年份)。

当我在没有固定效果的情况下运行回归时,我可以毫无问题地使用三明治中的 vcovCL 函数(使用此答案中概述的过程。)但是,当我包含固定效果时,出现此错误:

我会发布数据,但数据集非常大,回归需要大约 2 天才能运行所有固定效果。

有没有人遇到过类似的问题,您是否提出了解决方案?

编辑:按照下面@ben-bolker 的评论,我尝试使用 1,000 行的随机样本进行回归。似乎某些固定效果会产生一个方阵,引发以下错误:

当我尝试使用 vcovCL 函数对标准错误进行聚类时,我得到了相同的“不一致的参数”错误。所以我怀疑由于某些系数是 NA,矩阵 vcovCL 与 POLR 对象的大小不同,这就是导致错误的原因。

有没有办法消除这些缺失的固定效应?无论如何,我不会在回归输出中显示它们。

0 投票
2 回答
365 浏览

r - 为什么 R 将此 data.frame 对象视为列表?

我正在尝试对lda()我创建的 data.frame运行最小判别MASS分析(下面是一个示例数据集和我正在使用的重现错误的代码的示例版本。

当我尝试使用数据集执行 lda 时,我收到以下错误消息。

我可以通过将数据强制转换为矩阵格式来强制数据工作as.matrix。值得注意的是,尝试使用as.data.frame()and来做类似的事情data.frame()是行不通的。但是,当我尝试将生成的判别函数应用于总数据集时,我收到以下消息...

但是,当我检查 using 对象的类时class(),它说这两个对象都是 data.frame 格式。我检查了数据集以查看是否有任何不完整的行或列可能导致它将它们视为一系列列表而不是单个 data.frame,但没有缺失值。同样,它似乎不是由于任何变量的名称。

我不确定为什么 R 将对象视为列表而不是 data.frame(从而导致最小的判别分析失败),尤其是当它识别出对象属于 data.frame 类时。

0 投票
1 回答
353 浏览

r - 在 3d 内核密度中创建 %-contour 并找出该轮廓内的点

我想在 3d 核密度估计中绘制特定 %-contour 的等值面。然后,我想知道哪些点在那个 3d 形状内。

我将展示我接近 2d 的情况来说明我的问题(从R 模仿的代码 - 如何在特定的 Contour 中找到点如何绘制等高线,以显示 95% 的值落在 R 和 ggplot2 中的位置)。

二维情况 因此,50% 的轮廓是使用 approx 定义的,轮廓是使用 contourLines 创建的,然后 point.in.polygon 找到该轮廓内的点。

我想做同样的事情,但在 3d 情况下。这就是我所管理的:

3D情况

所以,我还没有走多远。

我意识到我在 3d 案例中定义关卡的方式是不正确的,我猜问题出在其中,c3d <- cumsum(sd3d) * dx * dy * dz但老实说我不知道​​如何进行。

而且,一旦正确定义了 3d 轮廓,我将不胜感激有关如何处理该轮廓内的哪些点的任何提示。

非常感谢!

编辑:根据 user2554330 的建议,我将编辑我的问题以添加测试代码,将他或她的建议与我在此处发布的建议进行比较。(我确实意识到使用轮廓作为新数据点的推断的目的不在最初的问题中,我为此修改道歉。)

另外,我在下面的评论中有点草率。这两种方法在 2D 情况下的表现如何取决于样本有多大。在样本 n = 48 左右时,来自 user2554330 的方法捕获了大约 69% 的人口(而我发布的方法捕获了大约 79%),但是在样本 n = 400 左右时,user2554330 的方法捕获了大约 79%(对 83% )。

我还尝试使用以下代码查看 user2554330 的方法在 3D 情况下的表现:

我更愿意定义轮廓,使得指定的概率是(接近)捕获从同一总体中提取的未来数据点的概率,即使样本 n 相对较小(即 < 50)也是如此。

0 投票
1 回答
265 浏览

r - 为什么 MASS:lm.ridge 系数与手动计算的系数不同?

手动执行岭回归时,如定义

我得到的结果与由 计算的结果不同MASS::lm.ridge。为什么?对于普通的线性回归,手动方法(计算伪逆)工作正常。

这是我最小的、可重现的示例:

0 投票
0 回答
865 浏览

r - 如何解决负二项式拟合(glm.nb)错误?

我正在尝试使用以下代码在 R 中拟合负二项式回归:

但收到此错误:

glm.fitter 中的错误(x = X,y = Y,w = w,start = start,etastart = etastart,:'y' 中的 NA/NaN/Inf

如何修复此错误?我安装并加载了所有必需的包(即MASSforeigncompactr)。


数据:

0 投票
1 回答
561 浏览

r - 使用偏移变量模拟负二项分布

我正在尝试使用已知参数模拟突变数据,以进一步使用它来测试回归函数。在这个模拟中,我希望突变计数取决于变量:

mutations ~ intercept + beta_cancer + beta_gene + beta_int + offset(log(ntAtRisk)))

其中 offset 参数是理论上可以发生的最大计数。

创建带参数的表

模拟突变计数

mutations并且mutations2是使用不同的函数制作的,其中offset变量要么作为普通变量包含,要么在第二种情况下被指定为偏移量。但是,我正在做的测试没有通过任何一个。

我需要突变计数不大于 ntAtRisk,但不幸的是,事实并非如此。我在互联网上找不到如何将偏移量包含在模拟中。我有哪些选择?

在此处输入图像描述

0 投票
1 回答
343 浏览

r - 如何防止或删除或替换 glm 输出统计中的 NA 值?

我编了一个例子来说明我的问题。想象一下,我有一个数据集,并且我训练了一个具有伽马分布残差的广义线性模型。

我得到的东西看起来像这样:

该表是虚构数字的结果,但关键是我在方法 M1 和站点 S3 之间有一个交互,它给出NA. 如何将 GLM 设置为不计算该特定交互,在训练后删除该交互,或将模型中的那些 NA 值设置为0

更新

@jared_mamrot 给出的答案指出了这个非常相似的相关问题:

这里lm而不是glm遵循,但我发现当我对相关问题运行接受的答案时,更新似乎甚至没有修复这个例子。

看着model1,我们有

看着model2我们有同样的

如您所见,update似乎没有删除NA.