在我的混合模型上使用 lme4 预测函数时遇到问题

2024-01-07

我在尝试在混合模型上使用 lme4 预测函数时遇到了一些困难。在进行预测时,我希望能够将一些解释变量设置为指定水平,但对其他变量进行平均。

以下是一些虚构的数据,它们是我的原始数据集的简化版、无意义版本:

a <-  data.frame(
    TLR4=factor(rep(1:3, each=4, times=4)), 
    repro.state=factor(rep(c("a","j"),each=6,times=8)), 
    month=factor(rep(1:2,each=8,times=6)), 
    sex=factor(rep(1:2, each=4, times=12)), 
    year=factor(rep(1:3, each =32)), 
    mwalkeri=(sample(0:15, 96, replace=TRUE)), 
    AvM=(seq(1:96))
)

AvM 编号是水田鼠的识别号。响应变量(mwalkeri) 是每只田鼠身上跳蚤数量的计数。我感兴趣的主要解释变量是 Tlr4,它是一个具有 3 种不同基因型(编码为 1、2 和 3)的基因。其他解释变量包括生殖状态(成人或青少年)、月份(1 或 2)、性别(1 或 2)和年份(1、2 或 3)。我的模型看起来像这样(当然这个模型现在不适合虚构的数据,但这并不重要):

install.packages("lme4")
library(lme4)
mm <- glmer(mwalkeri~TLR4+repro.state+month+sex+year+(1|AvM), data=a, 
    family=poisson,control=glmerControl(optimizer="bobyqa"))`
summary(mm)

我想对每种不同 Tlr4 基因型的寄生虫负担进行预测,同时考虑所有其他协变量。为此,我创建了一个新数据集来指定我想要将每个解释变量设置为的级别并使用预测函数:

b <-  data.frame(
    TLR4=factor(1:3), 
    repro.state=factor(c("a","a","a")),
    month=factor(rep(1, times=3)), 
    sex=factor(rep(1, times=3)), 
    year=factor(rep(1, times=3))
)
predict(mm, newdata=b, re.form=NA, type="response")

这确实有效,但我真的更喜欢对年份进行平均,而不是将年份设置为一个特定水平。但是,每当我尝试平均年份时,我都会收到此错误消息:

model.frame.default(delete.response(Terms), newdata, na.action = na.action, 中的错误:因子年份有新级别

我是否可以对年份进行平均而不是选择指定的级别?另外,我还没有弄清楚如何获得与这些预测相关的标准误差。我能够获得预测标准误差的唯一方法是使用lsmeans()函数(来自 lsmeans 包):

c <- lsmeans(mm, "TLR4", type="response")
summary(c, type="response")

它会自动生成标准错误。然而,这是通过对所有其他解释变量进行平均而生成的。我确信可能可以改变这一点,但我宁愿使用predict()如果可以的话。我的目标是创建一个图表,其中 x 轴为 Tlr4 基因型,y 轴为预测的寄生虫负担,以证明每种基因型的寄生虫负担的预测差异,同时考虑所有其他重要的协变体。


您可能感兴趣merTools包,其中包括几个函数,用于创建反事实数据集,然后对新数据进行预测,以探索变量对结果的实质性影响。自述文件和包 vignette 就是一个很好的例子:

让我们以我们想要探索具有类别和连续预测变量之间的交互项的模型的影响为例。首先,我们拟合一个具有交互作用的模型:

data(VerbAgg)
fmVA <- glmer(r2 ~ (Anger + Gender + btype + situ)^2 +
       (1|id) + (1|item), family = binomial, 
       data = VerbAgg)

现在我们使用以下方法准备数据drawmerTools 中的函数。在这里,我们从模型框架中得出平均观察值。然后我们wiggle通过扩展数据框以包含重复但具有由指定变量的不同值的相同观察来获取数据var范围。在这里,我们将数据集扩展到所有值btype, situ, and Anger.

# Select the average case
newData <- draw(fmVA, type = "average")
newData <- wiggle(newData, var = "btype", values = unique(VerbAgg$btype))
newData <- wiggle(newData, var = "situ", values = unique(VerbAgg$situ))
newData <- wiggle(newData, var = "Anger", values = unique(VerbAgg$Anger))

head(newData, 10)

#>    r2 Anger Gender btype  situ id        item
#> 1   N    20      F curse other  5 S3WantCurse
#> 2   N    20      F scold other  5 S3WantCurse
#> 3   N    20      F shout other  5 S3WantCurse
#> 4   N    20      F curse  self  5 S3WantCurse
#> 5   N    20      F scold  self  5 S3WantCurse
#> 6   N    20      F shout  self  5 S3WantCurse
#> 7   N    11      F curse other  5 S3WantCurse
#> 8   N    11      F scold other  5 S3WantCurse
#> 9   N    11      F shout other  5 S3WantCurse
#> 10  N    11      F curse  self  5 S3WantCurse

现在我们只需将这个新数据集传递给predictInterval以便对这些反事实产生预测。然后我们根据连续变量绘制预测值,Anger,以及两个分类变量的分面和分组situ and btype分别。

plotdf <- predictInterval(fmVA, newdata = newData, type = "probability", 
        stat = "median", n.sims = 1000)
plotdf <- cbind(plotdf, newData)
ggplot(plotdf, aes(y = fit, x = Anger, color = btype, group = btype)) + 
  geom_point() + geom_smooth(aes(color = btype), method = "lm") + 
  facet_wrap(~situ) + theme_bw() +
  labs(y = "Predicted Probability")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在我的混合模型上使用 lme4 预测函数时遇到问题 的相关文章

  • R texreg:如何选择要显示的 gof 统计信息?

    我正在使用 texreg 通过 plm 生成面板回归的输出表 我想抑制所有 gof 统计数据的输出 这不是显示 R2 adj R2 和 N 我只想显示 adj R2 有谁知道一个简单的方法来做到这一点 好吧 这实际上很简单 只需在调用中包含
  • 如何在 R 中为回归量创建“宏”?

    对于长且重复的模型 我想创建一个 宏 在 Stata 中称为 宏 并通过以下命令完成 global var1 var2 其中包含回归量的模型公式 例如来自 library car lm income education prestige d
  • 如何将带有观察计数的标签添加到 stat_summary ggplot?

    我有一个数据集 例如 outcome lt c rnorm 500 45 10 rnorm 250 40 12 rnorm 150 38 7 rnorm 1000 35 10 rnorm 100 30 7 group lt c rep A
  • 访问 R 工作区中的数据[重复]

    这个问题在这里已经有答案了 我是自学 R 的 可能有一些非常基本的东西我可能不熟悉 如果是这样我道歉 我正在尝试访问外部来源提供给我的数据 它作为一个工作空间出现 我的流程如下 gt ls 1 2003OHT HR gt attach 20
  • rpart是自动剪枝吗?

    Is rpart自动修剪 生成的决策树rpart比具有自动修剪功能的 Oracle Data Mining 生成的级别要多得多 否 但拟合函数的默认值可能会 提前 停止分割 对于 早期 的某些定义 See rpart control对于您可
  • 聚合日期时间以总结在特定条件下花费的时间

    我很困惑我应该如何继续 我下面有一些虚拟数据 Date lt as POSIXct c 2018 03 20 11 52 25 2018 03 22 12 01 44 2018 03 20 12 05 25 2018 03 20 12 10
  • 从 data.frame 中提取时用 NA 填充缺失的列

    我有一个函数 它将具有某些列的数据框作为输入 columns a b z 现在我有一个数据框DF只有很少的这些列DF columns f u z 如果列不在其中 如何创建一个包含所有值为 NA 的列的数据框DF这与DF在柱子上 f u z
  • R data.table 连接不等式条件

    我想使用 data table 包根据多个不等式条件对数据进行子集化 data table 手册中的示例展示了如何使用字符变量执行此操作 但不显示数字不等式 我还了解了如何使用子集函数来执行此操作 但我真的很想利用 data table 二
  • 将所有分号替换为空格 pt2

    我尝试对 2000 多行关键字的列表运行文本分析 但它们的列出方式如下 战略 管理风格 组织 所以当我使用 tm 删除标点符号时 它就变成了 组织的战略管理风格 我认为这在某种程度上破坏了我常用术语的分析 我尝试过使用 vector lt
  • 为每个因素级别添加日期时间序列

    我有一个带有因子列的数据框 s lt data frame id 901 910 s id lt as factor s id 我有一个日期时间序列 library lubridate start lt now as difftime 2
  • 如何总结此R问题中的销售数量、售出酒类数量和花费金额

    我使用以下代码在 R 上上传我的数据 if file exists ames liquor rds url lt https github com ds202 at ISU materials blob master 03 tidyvers
  • RStudio 不会通过 rPython 调用加载所有 Python 模块

    我从 Bash 和 RStudio 中运行相同的脚本时出现一些意外行为 请考虑以下事项 我有一个文件夹 rpython 包含两个脚本 test1 R library rPython setwd rpython python load tes
  • 在 Lavaan 生长曲线模型中提取个体轨迹

    我已经使用 R 的 Lavaan 包中的 Growth 函数成功地对一项研究的纵向数据进行了建模 我找不到任何关于如何提取每个参与者的预测轨迹的记录 我只能找到整个组的预测轨迹 在摘要输出的 拦截 部分下给出 使用 lavPredict m
  • R Leaflet Legend:colorBin-删除中断之间的小数

    我正在使用 Leaflet 库在 R 中创建交互式 HTML 地图 传说中采用的是colorBin用于创建将数据分为 6 个类别的方法 使用min values and max values 我已经定义了美国社区调查收入数据的特定范围可能落
  • R data.table 1.9.2 关于 setkey 的问题

    这似乎是 1 8 10 后引入的一个错误 与包含列表的 DT 的 setkey 相关 运行下面两个代码来查看问题 library data table dtl lt list dtl 1 lt data table scenario 1 p
  • 使用 ggplot 构面时增加闪亮的绘图大小

    有没有办法增加绘图窗口的大小shiny取决于在一个中使用的面的数量ggplot图 也许使用垂直滚动 例如 使用下面的示例 当输入为 A 有三个方面 情节看起来不错 当选项 B 选择绘图数量会增加 但绘图窗口保持相同大小 导致绘图太小 是否有
  • R中整数类和数字类有什么区别

    我想先说我是一个绝对的编程初学者 所以请原谅这个问题是多么基本 我试图更好地理解 R 中的 原子 类 也许这适用于一般编程中的类 我理解字符 逻辑和复杂数据类之间的区别 但我正在努力寻找数字类和整数类之间的根本区别 假设我有一个简单的向量x
  • 排序因素与水平

    有人能解释一下 R 中 ordered 参数的用途吗 R says ordered逻辑标志来确定级别是否应被视为有序 按给定的顺序 所以如果我有一个名为名称的因素并设置ordered TRUE names lt factor c fred
  • 如何定义“f_n-chi-square”函数并使用“uniroot”求置信区间?

    I want to get a 95 confidence interval for the following question 我已经写了函数f n在我的 R 代码中 我首先使用 Normal 随机采样 100 个样本 然后定义函数h
  • 按特定样本前缀对列名称向量进行子集化

    假设我有一个如下所示的数据框 ca01 lt c 1 10 ca02 lt c 2 11 ca03 lt c 3 12 stuff 1 lt rep test 10 other lt rep 9 10 data lt data frame

随机推荐

  • 如何使用CSS使背景DIV仅透明

    我正在使用 CSS 属性 filter alpha opacity 90 不透明度 9 使 DIV 透明 但是当我在该 DIV 中添加另一个 DIV 时 它也会使其透明 我想让外部 背景 DIV 仅透明 如何 Fiddle http jsf
  • 标准化在优化中有用/必要吗?

    我正在尝试使用 Matlab 优化工具箱 使用fmincon准确地说是函数 为了快速表达我的观点 我提供了一个小变量集 l m r m l c r c 其起始值等于 4mm 2mm 1mm 0 5mm 虽然 Matlab 没有特别建议对输入
  • 当我尝试在 chrome 中创建书签时,控制台中出现错误“浏览器未定义”

    我正在尝试创建书签 在本例中是 chrome API 书签 创建 https developer mozilla org en US Add ons WebExtensions API bookmarks create 我的代码是 func
  • 使用基于视图的 NSOutline (Sourcelist) 的奇怪行为

    我的应用程序中有一个 Lion 中的新功能 基于视图的 NSOutlineView 作为侧边栏 SourceList 使用 CoreData NSTreeController Bindings NSOutlineView 和一个对象作为 N
  • 自定义条带结帐的错误处理

    我正在研究自定义条带集成 网关 如果我使用信用卡 借记卡付款 我将从该 url 获得带有令牌 id 的成功 json 响应https api stripe com v1 tokens https api stripe com v1 toke
  • .NET 4 中的 URL 重写?

    我听说 Visual Studio 2010 提供了使用其 URL 路由引擎进行 URL 重写的内置功能 我在 Visual Studio 的早期版本中使用像 intelligencia urlrewrite 这样的插件进行了 URL 重写
  • SVG 粘糊糊的效果在最新版本的 FireFox 上不起作用

    我有一个问题 当使用黑色以外的任何其他颜色时 我的 feGuassian 模糊无法正常工作 在 chrome 上它工作得很好 我还没有在 safari 上测试过 我在 jsFiddle 创建了一个示例 HTML div div class
  • 关于 django form.errors 的问题,获取原始错误消息

    django文档说https docs djangoproject com en dev ref forms api django forms Form errors https docs djangoproject com en dev
  • 从代码隐藏中获取多用户控件中的 GridView

    IpInterfaceUC 用户控制 div style height 205px width 550px margin left 5px div
  • 正则表达式 [A-z] 和 [a-zA-Z] 之间的区别

    我正在使用正则表达式为我只需要字母字符的文本框编写输入验证器 我想知道是否 A z and a zA Z 是否相同或性能方面是否存在差异 我继续阅读 a zA Z 在我的搜索中 没有提及 A z 我正在使用java的String match
  • 在android中制作按钮的按下效果

    我创建了一个android应用程序 它动态创建50个按钮 效果很好 但问题是当我动态地为这些按钮添加一些背景颜色时 按钮的按下效果会丢失 谁能告诉我一些保留按钮点击按下效果的解决方案我的代码如下所示 my Android平台是2 3 3 i
  • 流星 / JS 日期

    所以我试图在流星中制作一个时间表应用程序 创建项目并添加时间条目 为什么 这是我能想到的所有测试应用程序 但是 我更习惯于处理 PHP 在 PHP 中我只会存储一个带有时间长度的日期字段 现在 我想知道在 Meteor 中处理日期的最佳方式
  • ElasticSearch进入“只读”模式,节点无法更改

    晚上我的 ES 集群 由 5 个数据节点 3 个主节点组成 发生了一些事情 我不知道发生了什么 但所有索引和数据都被删除 集群进入 只读 模式 可能被黑客攻击了 When trying to get Kibana running I get
  • python:从html获取图像链接

    来自这样的 html rss 片段 div class div p a href alt src http link to image width a span 我想获取图像源链接 http link to image jpg 我怎样才能在
  • jQuery 中窗口调整大小事件触发两次

    我运行了下面的代码 document ready function var ivar 0 window resize function console log window height window height ivar 每当我调整大小
  • 是removeFromSuperview释放了对象吗?

    我在用removeFromSuperview用于从其超级视图中删除视图 我也在使用release after removeFromSuperview在该对象上 有时它工作正常 但有时会提供错误的访问权限 is removeFromSuper
  • BigCommerce webhook 未触发

    我能够成功为我的 BigCommerce 商店设置 Webhook 但是 我没有收到商店的任何请求 当我创建 webhook 时 我收到了以下响应 这让我认为它工作正常 id 437 client id dagb0rxpdd2o3znkeb
  • I18n 停止工作

    我总是使用这个脚本来编译 django po 并且它总是有效 bin sh django admin py makemessages a django admin py compilemessages 突然它停止工作 并出现以下错误 i18
  • Windows Phone 模拟器需要缺少 Hyper-V

    我是 Windows Phone 8 的初学者 我安装了 Windows Phone 8 SDK 当我启动模拟器时 出现此错误消息 Windows Phone 模拟器需要 Hyper V 您的 PC 缺少 运行 Hyper V 需要以下先决
  • 在我的混合模型上使用 lme4 预测函数时遇到问题

    我在尝试在混合模型上使用 lme4 预测函数时遇到了一些困难 在进行预测时 我希望能够将一些解释变量设置为指定水平 但对其他变量进行平均 以下是一些虚构的数据 它们是我的原始数据集的简化版 无意义版本 a lt data frame TLR