mgcv bam() 错误:无法分配大小为 99.6 Gb 的向量

2024-01-20

我正在尝试使用 bam (mgcv 库)拟合加法混合模型。我的数据集包含来自对 300 个健康中心内 2.10^5 名儿童生长情况的纵向研究的 10^6 观察结果。我正在寻找每个中心的坡度。 模型是

bam(haz ~ s(month, bs = "cc", k = 12)+ sex+ s(age)+ center+ year+ year*center+s(child, bs="re"), data)

每当我尝试拟合模型时,都会出现以下错误消息:

Error: cannot allocate vector of size 99.6 Gb
In addition: Warning message:
In matrix(by, n, q) : data length exceeds size of matrix

我正在开发一个具有 500 Gb RAM 的集群。

感谢您的任何帮助


要更准确地诊断问题所在,请尝试使用省略的各种项来拟合您的模型。该模型中有几个术语可能会让您大吃一惊:

  • 固定效应涉及center将炸毁至 300 列 * 10^6 行;取决于是否year是数字或因子,year*centerterm 最多可扩展至 600 列或 (nyears*300) 列
  • 我不清楚是否bam使用稀疏矩阵s(.,bs="re")条款;如果没有,你就会在big麻烦(2*10^5 列 * 10^6 行)

在数量级上,一个 10^6 数值向量(模型矩阵的一列)需要 7.6 Mb,因此 500 GB / 7.6 MB 大约相当于 65,000 列......

只是在这里猜测,但我会尝试一下gamm4包裹。它并不是专门针对低内存使用而设计的,但是:

当随机效应不是 i.i.d. 时,‘gamm4’ 最有用,或者 当存在大量随机系数时[原文如此](超过 数百个),每个仅适用于一小部分 响应数据。

我还将大部分术语转化为随机效应:

gamm4::gamm4(haz ~ s(month, bs = "cc", k = 12)+ sex+ s(age)+ 
 (1|center)+ (1|year)+ (1|year:center)+(1|child), data)

或者,如果数据集中的年份不是很多,则将年份视为固定效应:

gamm4::gamm4(haz ~ s(month, bs = "cc", k = 12)+ sex+ s(age)+ 
 year + (1|center)+ (1|year:center)+(1|child), data)

如果年数很少的话(year|center)可能有意义,以评估中心间的变异和年份之间的协变......如果有很多年,请考虑使其成为一个平滑的术语......

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

mgcv bam() 错误:无法分配大小为 99.6 Gb 的向量 的相关文章

  • 当子集长度为零时,如何简洁地处理子集?

    从向量中排除元素x x lt c 1 4 3 2 我们可以减去位置向量 excl lt c 2 3 x excl 1 1 2 这也是动态工作的 excl lt which x which max x gt quantile x 25 1 2
  • 使用 R 中的 tidyverse 重新调整因子和重新排序因子

    我想使用这些功能重新调平 and 重新排序 在我的数据框中 我了解重新调整级别的工作原理 但我不明白为什么我在 data frame 中看不到级别的变化 例如 假设我有鸢尾花数据集 library tidyverse head iris g
  • 在 Linux 下更改 RStudio 用户界面(不是图形等)中的字体大小

    This is not关于更改使用 RStudio 生成的图表中的字体大小的问题 我已经知道该怎么做了 我在配备 视网膜 显示屏的 MacBook Pro 上的 Linux 下使用 RStudio 我使用 KDE 作为我的窗口管理器 我可以
  • 如何制作一连串的ggplots并在它们之间绘制箭头?

    对于一个项目 我需要绘制一些图并在它们之间放置箭头作为序列的指示 我想知道我是否可以用 ggplot 来做到这一点 是否可以使用 ggplot2 绘制一个干净的大箭头并将其添加到最终的多重图中 作为示例 我使用此代码来绘制绘图 librar
  • 在 R 中收集多组列[重复]

    这个问题在这里已经有答案了 我有一个宽数据框 需要将其收集或融化成一个高数据框 我遇到的问题是我有几组列需要保持关联 分组 我每个表单提交有 2 个用户 每个用户有 3 列数据 我想将这 6 列基本上以 3 组的形式堆叠起来 以便每个用户都
  • 一次评论多个对象

    假设您有一个变量 a 到 j 的列表 for x in 1 10 assign letters x x 您将如何评论那些最近创建的对象 我尝试过类似的事情 for x in 1 10 comment get letters x lt pas
  • 通过 r 中的组变量进行汇总

    我有一个数据框如下 head newStormObject FATALITIES INJURIES PROPVALDMG CROPVALDMG EVTYPE total 1 0 15 2 5e 05 0 TORNADO 15 2 0 0 2
  • DT数据表中的列对齐

    In my shiny我正在使用的应用程序datatable函数来自DT库构建一个表格并希望将列居中对齐 我可以用formatStyle column textAlign center 但它只影响列体而不影响标题 我们必须设置columnD
  • 单击 R Shiny 中的按钮后将输入字段重置为 null

    我正在构建一个应用程序 用户可以在其中按列输入表的数据值 单击 添加 按钮后 输入的值将按列附加到现有值 例如 如果输入 col1 2 3 并单击 ADD 我们将在显示屏中看到 col1 2 3 如果输入 col2 4 7 并单击 ADD
  • dplyr:同一公式中全年每日值的总和以及特定每日值的总和

    Using df数据框 date lt rep as Date seq as Date 2003 01 01 as Date 2005 12 31 by 1 format Y m d 9 site lt c rep Site 1 3 109
  • 将 R 中的时间数据绘制为各种分辨率(分钟、小时、秒等)

    我有一些 CSV 数据 例如 Timestamp Count 2009 07 20 16 30 45 10 2009 07 20 16 30 45 15 2009 07 20 16 30 46 8 2009 07 20 16 30 46 6
  • 在 ggplot2 上绘制世界地图

    我一直在尝试在 ggplot2 上绘制世界地图 我跟踪了电子邮件的线索 带 l 的 ggplot 地图 https stackoverflow com questions 9558040 ggplot map with l但我确实遇到了同样
  • R 中的线性模型 - 乘法表达式

    我有 3 个数值变量A B and C 我正在尝试创建一个能够预测的线性模型A 我使用的表达式是B C为了预测A 然而 当查看输出时 我无法得到我的方程 因为我得到了额外的变量 但我不知道它是什么 这是我的代码 MyData lt read
  • 在闪亮应用程序的 DT::datatable 中添加、删除和编辑行

    我有下面闪亮的应用程序 我可以通过按添加新行Add基于闪亮的小部件选择 我可以通过按选择并删除一行Delete我想将它们与单击一行的功能结合起来 然后在按Edit 例如 如果我单击第二行 然后更改Security Type小部件来自Stoc
  • 如何在 R 中为所有plot.default、plot 或lines 调用设置默认颜色

    为了简化我的日常 R 交互 我想为所有绘图设置默认颜色 例如 假设我想要用红线绘制所有绘图 例如在 gnuplot 中 到目前为止 这是我的 Rprofile 的片段 setHook packageEvent grDevices onLoa
  • 计算不包括当前值的平均值

    我有下表 a b avg 1 1 7 3 2 1 0 3 3 1 2 3 4 2 1 2 5 2 3 2 其中 a 和 b 是数据 avg 计算按 a 分组的 b 的平均值 现在我想计算按 a 分组的 b 的平均值 avg2 不包括当前值
  • ggplot2 - 在绘图顶部添加辅助 y 轴

    对于出版物 我需要向现有绘图添加第二个 y 轴 我遇到了一种方法来做到这一点 https rpubs com kohske dual axis in ggplot2 https rpubs com kohske dual axis in g
  • 将 12 小时字符时间转换为 24 小时

    我有一个包含字符格式时间的数据集 我试图将其从 12 小时格式转换为 24 小时格式 我做了一些搜索 但我发现的所有内容似乎都假设字符已经采用 24 小时格式 这是我工作时的一个例子 times lt c 9 06 AM 4 42 PM 3
  • dplyr +“meta”-columns:当列包含要使用的其他列的名称而不是数据时

    我想知道以下问题在 dplyr 中是否有一个优雅的解决方案 要提供一个简单的可重现示例 请考虑以下 data frame df lt data frame a 1 5 b 2 6 c 3 7 ref c a a b b c stringsA
  • R:中断 for 循环

    你能确认下一个break是否取消了内部for循环吗 for out in 1 n old id velho lt old table df id out for in in 1 n id novo lt new table df ID in

随机推荐

  • desiredAccuracy 和 distanceFilter 之间的区别

    很抱歉在这里成为菜鸟 我无法清楚地区分 CLLocationManager 属性距离过滤器 and 期望准确度 如果我希望我的应用程序为即使很小的距离 例如 100 200 米 提供不同的坐标 我应该为这些属性设置什么值 帮助将不胜感激 根
  • Homebrew 说 Xcode 已经过时了

    我正在尝试使用 Homebrew 执行软件包的安装 但是当我尝试运行安装时出现以下错误 错误 您的 Xcode 7 3 1 已过时 请更新到 Xcode 8 0 或删除它 Xcode 可以从 App Store 更新 我想在这台机器上保留
  • 更改 UISearchBar 放大图标颜色和位置

    我有一个 UISearchBar 我想更改初始放大图标 出现在 UISearchBar 中间的图标 的位置以及颜色或图标 到目前为止 我更改了色调和图标图像 但是 只有当我在模拟器上测试应用程序时才会显示新图标 但在实际设备 均运行 iOS
  • 具有索引签名的 keyof 类型运算符

    我正在阅读打字稿docs https www typescriptlang org docs handbook 2 keyof types html the keyof type operator并通过这段代码摘录得出 type Mapis
  • 如何使用通过 NPM 安装的 font Awesome 5

    我没有找到任何下一步该做什么的文档 我通过以下方式将 font awesome 安装到了我的项目中npm npm install save fortawesome fontawesome free webfonts 但现在怎么办 谁能指出我
  • SQL-92 (Filemaker):如何更新序列号列表?

    在其中一个 SortID 发生更改 例如从 444 更改为 444 1 之后 我需要使用 SQL 92 重新分配所有 SortID 从 1 开始 直到 Beleg 表的记录子集的 MAX SortID 我尝试了多种方法 例如 SET a 0
  • 如何让 ECS 任务承担另一个 AWS 账户的角色?

    我有一个审计容器 可以针对各种 AWS API 运行扫描 我希望所有这些都在产品帐户中作为 ECS 任务运行 但扫描其他帐户中的资源 是否可以将另一个帐户的角色设置为任务角色 我尝试过设置taskRoleArn在我的任务定义中从另一个帐户添
  • 如何在Python中创建命名空间包?

    我有一个具有以下结构的 Python 3 项目 project root init py sub init py actualcode py 我想使用 命名空间包 以便我的库与单独项目中的其他相关库共享公共命名空间 导入语句应该如下所示 f
  • 如何使用 OCMock 测试是否在完成处理程序块内调用对象的方法?

    我有一个方法 implementation SomeClass void thisMethod ObjectA objA APIClient connectToAPIWithCompletionHandler id result if re
  • ZF2 - BjyAuthorize - 如何从数据库获取规则和防护

    我使用 BjyAuthorize 和 Zend Framework2 来实现授权 并且能够成功集成数据库中的角色 现在我想从数据库表中获取我的规则和守卫 我怎样才能做到这一点 这里最简单的方法和 技巧 实际上是 将您的规则和防护设置为与示例
  • Firebase 托管部署到其他站点

    如何部署到同一项目中定义的其他 Firebase 托管站点 我创建了多个 Firebase 托管 站点 命令 firebase deploy 但始终部署到第一个 如何指定将静态文件部署到另一个 站点 和域 Thanks 您必须将其他站点添加
  • k个元素的最大和不大于m

    这个问题来自一个编程竞赛 我无法在可接受的时间内解决它 给你一个数组a of n整数 找出最大的总和s正是k不超过给定整数的元素 不一定连续 m s lt m 限制条件 0 lt k lt n lt 100 m lt 3000 0 lt a
  • 如何同时使用导航规则和 f:ajax

    这是我的场景 我想在某些情况下通过 Ajax 更新页面 在其他情况下执行导航规则 我的用例是登录表单 我希望他们在 uname password 失败时通过 ajax 收到错误消息 但如果成功则导航到新页面 有人使用 JSF2 0 f aj
  • Java isNan 是如何工作的?

    我正在看openjdk 1 7 0 25源码中我见过这个方法 Returns code true if the specified number is a Not a Number NaN value code false otherwis
  • RDS 集群和数据库实例概念

    我需要创建 RDS Aurora 5 7 数据库 我想我对RDS的概念不太清楚 这是正确的层次结构吗 aws rds cluster gt aws rds cluster instance gt aws db instance我应该需要定义
  • 请求标头未从拦截器角度 2/4 成功更新(401 处理)

    我正在使用 Http 拦截器并尝试重试失败的请求来处理401 error 我正在尝试设置一个新标头来更新请求 但它不起作用 我注意到我的标头没有通过请求设置 而是转到lazyUpdates内部标头 任何人都可以告诉我为什么会发生这种情况 检
  • 更改 emacs 文本模式的边距

    我发现根据自己的喜好更改 emacs 中的边距而又不会出现滑稽的情况的唯一方法是 add hook window configuration change hook lambda set window margins car get buf
  • codeigniter 中的无限滚动 jquery 插件

    我的 config 文件夹中有一个 pagination php 文件 代码如下 config num links 5 config use page numbers TRUE config query string segment pag
  • 使用批处理文件计算文件夹和子文件夹的数量

    我正在创建一个批处理文件 当给定路径时 它将计算其中的所有文件夹和子文件夹 到目前为止 我只能收集路径第一层内的文件夹数量 然后我会将其传输到一个文本文件 这是我到目前为止所拥有的 for f a in dir b ad folder fi
  • mgcv bam() 错误:无法分配大小为 99.6 Gb 的向量

    我正在尝试使用 bam mgcv 库 拟合加法混合模型 我的数据集包含来自对 300 个健康中心内 2 10 5 名儿童生长情况的纵向研究的 10 6 观察结果 我正在寻找每个中心的坡度 模型是 bam haz s month bs cc