混合效应逻辑回归

2023-12-22

我正在尝试在 python 中实现混合效应逻辑回归。作为比较,我正在使用glmer函数从lme4R 中的包。

我发现statsmodels模块有一个BinomialBayesMixedGLM应该能够适合这样的模型。然而,我遇到了很多问题:

  1. 我找到了有关的文档statsmodels函数并不完全有帮助或不清楚,所以我不完全确定如何正确使用该函数。
  2. 到目前为止,我的尝试还没有产生复制我在拟合模型时得到的结果glmer in R.
  3. 我期望BinomialBayesMixedGLM函数不计算 p 值,因为它是贝叶斯函数,但我似乎无法弄清楚如何访问参数的完整后验分布。

作为测试用例,我使用可用的泰坦尼克号数据集here https://web.stanford.edu/class/archive/cs/cs109/cs109.1166/problem12.html.

import os
import pandas as pd
import statsmodels.genmod.bayes_mixed_glm as smgb

titanic = pd.read_csv(os.path.join(os.getcwd(), 'titanic.csv'))

r = {"Pclass": '0 + Pclass'}
mod = smgb.BinomialBayesMixedGLM.from_formula('Survived ~ Age', r, titanic)
fit = mod.fit_map()
fit.summary()

#           Type    Post. Mean  Post. SD       SD SD (LB) SD (UB)
# Intercept M           3.1623    0.3616            
# Age       M          -0.0380    0.0061            
# Pclass    V           0.0754    0.5669    1.078   0.347   3.351

然而,除了 Age 的斜率之外,这似乎与我在 R 中得到的结果不匹配glmer(Survived ~ Age + (1 | Pclass), data = titanic, family = "binomial"):

Random effects:
 Groups Name        Variance Std.Dev.
 Pclass (Intercept) 0.8563   0.9254  
Number of obs: 887, groups:  Pclass, 3

Fixed effects:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)  0.961780   0.573402   1.677   0.0935 .  
Age         -0.038708   0.006243  -6.200 5.65e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

那么在 python 中创建模型时我犯了什么错误?而且,一旦解决了这个问题,我如何提取后验或 p 值?最后,他们的混合效应逻辑回归的 Python 实现是否更类似于 R 中的实现?


只是不得不做类似的事情Python,正如评论中所建议的Pymer4似乎提供了一种合适的方法(特别是如果您熟悉R反正)。 使用问题中提到的示例数据集“泰坦尼克号”:

from pymer4.models import Lmer

model = Lmer("Survived  ~ Age  + (1|Pclass)",
             data=titanic, family = 'binomial')

print(model.fit())

OUT:

Formula: Survived~Age+(1|Pclass)

Family: binomial     Inference: parametric

Number of observations: 887  Groups: {'Pclass': 3.0}

Log-likelihood: -525.812     AIC: 1057.624

Random effects:

               Name    Var    Std
Pclass  (Intercept)  0.856  0.925

No random effect correlations specified

Fixed effects:

             Estimate  2.5_ci  97.5_ci     SE     OR  OR_2.5_ci  OR_97.5_ci  \
(Intercept)     0.962  -0.162    2.086  0.573  2.616       0.85       8.050   
Age            -0.039  -0.051   -0.026  0.006  0.962       0.95       0.974   

              Prob  Prob_2.5_ci  Prob_97.5_ci  Z-stat  P-val  Sig  
(Intercept)  0.723        0.460         0.889   1.677  0.093    .  
Age          0.490        0.487         0.493  -6.200  0.000  *** 

正如附加评论(抱歉偏离了主要问题),我在Ubuntu 20.04机器与Python 3.8.8。不确定其他人是否遇到过这个问题,但是当使用上面的模型运行时Pymer4该包抛出了一个错误(当我尝试从Pymer4文档here http://eshinjolly.com/pymer4/auto_examples/example_02_categorical.html#sphx-glr-auto-examples-example-02-categorical-py):

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

这可以通过更新 pymer4 版本来修复(另请参阅这个相关问题 https://stackoverflow.com/questions/73205026/pymer4-for-logistic-mixed-effects-regression-the-truth-value-of-an-array-with-m/74848128#74848128):

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

混合效应逻辑回归 的相关文章

  • (discord.py) 尝试更改成员角色时,“用户”对象没有属性“角色”

    因此 我正在尝试编写一个机器人 让某人在命令中指定的主持人指定的一段时间内暂停角色 我知道该变量称为 小时 即使它目前以秒为单位 我稍后会解决这个问题 基本上 它是由主持人在消息 暂停 personmention numberofhours
  • Django REST序列化器:创建对象而不保存

    我已经开始使用 Django REST 框架 我想做的是使用一些 JSON 发布请求 从中创建一个 Django 模型对象 然后使用该对象而不保存它 我的 Django 模型称为 SearchRequest 我所拥有的是 api view
  • 如何在python中读取多个文件中的文本

    我的文件夹中有许多文本文件 大约有 3000 个文件 每个文件中第 193 行是唯一包含重要信息的行 我如何使用 python 将所有这些文件读入 1 个文本文件 os 模块中有一个名为 list dir 的函数 该函数返回给定目录中所有文
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何收集列表、字典等中重复计算的结果(或制作修改每个元素的列表的副本)?

    There are a great many existing Q A on Stack Overflow on this general theme but they are all either poor quality typical
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 如何等到 Excel 计算公式后再继续 win32com

    我有一个 win32com Python 脚本 它将多个 Excel 文件合并到电子表格中并将其另存为 PDF 现在的工作原理是输出几乎都是 NAME 因为文件是在计算 Excel 文件内容之前输出的 这可能需要一分钟 如何强制工作簿计算值
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql

随机推荐

  • Xcode 在创建机器人时无法单击“下一步”?

    我正在尝试为测试项目设置一个机器人 我有一台运行服务器应用程序的 mac mini 该服务器对本地网络和所有人都是可见的 共享方案后 我进入 Xcode 并创建一个机器人 问题是 我无法启用右下角的 下一步 按钮 因此 我无法继续创建机器人
  • CoreBluetooth 无法找到设备,但 iOS 可以

    我有一个蓝牙条形码扫描仪 其规格说明它是蓝牙 2 0 2 类 这很奇怪 因为我的 iPhone 5 iOS7 可以找到并连接它 我以为iOS只能连接BLE设备 但在我的应用程序中 我无法扫描该设备 我不知道这是否是因为它的蓝牙规格 我希望有
  • 在 Spray 中发送发布请求

    我需要使用以下命令发出一个简单的 HTTP 请求spray框架 我在他们的网站上找到了一些示例 但结果证明它们很复杂并且涉及 Akka 这对我来说不是必需的 此外 我需要能够填写请求的标头 例如X Application content t
  • R 中的 strsplit 与元字符

    我有大量数据 其中分隔符是反斜杠 我正在 R 中处理它 并且很难找到如何分割字符串 因为反斜杠是一个元字符 例如 一个字符串看起来像这样 1128 0019 XA5 E2R 366 00 15 我想把它分成 字符 但是当我运行 strspl
  • Python Pillow:制作透明度渐变

    我有在图像上添加渐变的代码 def st path gradient magnitude 2 im Image open path if im mode RGBA im im convert RGBA width height im siz
  • 如何使用以编程方式创建的按钮在 WPF MVVM 中创建 OnClick 命令?

    我正在编写一个 WPF 应用程序 它以编程方式创建一些按钮 如何为 ViewModel 中的按钮创建 OnClick 命令 我想添加一个命令来使用 ResetButton 清除所有文本框 new StackPanel Orientation
  • 如何在 Flask-restless 中返回“已存在”错误?

    我想做一些异常处理程序 我在 python 中使用 Flask restless 和 SQLAlchemy 的组合 我的问题 当我使用数据库中已存在的对象向 api 发送请求时 SQLAlchemy 显示异常 IntegrityError
  • MYSQL左连接来自多个表的COUNTS

    我想添加表示其他表中的计数的列 我有3张桌子 Messages MessageID User Message Topic 1 Tom Hi ball 2 John Hey book 3 Mike Sup book 4 Mike Ok boo
  • Websocket连接自动关闭?

    我是网络套接字编程的新手 我有以下 JavaScript 客户端代码 var connection new WebSocket ws localhost 8080 OmegaThings registerdevice connection
  • 输入字段在 Chrome 和 Firefox 中显示不同

    我在 Chrome 中进行了测试 显示正常 但在 Firefox 中 输入框比预期大 这是标记 div class form wrapper div
  • 绘制离屏 CALayer 内容的最快方法

    我正在寻找在 macOS 上绘制离屏 CALayer 内容 不需要 Alpha 的最快方法 请注意 这些示例不是线程化的 但重点是 以及为什么我不只是使用 CALayer setNeedsDisplay 因为我正在后台线程上进行此绘图 我原
  • itunes 上缺少本地化屏幕截图错误

    我已选择默认语言 澳大利亚英语 作为默认语言 当我提交二进制文件时 它显示为被拒绝的 红色图标 状态为 缺少本地化屏幕截图 该应用程序仅使用单一语言 我添加了屏幕截图 该应用程序仅适用于 iPhone 当我查看显示为的二进制信息时 本地化
  • 可以监控 STM 的争用级别吗?

    有没有办法轮询 Clojure 的 STM 事务是否正在重试 以及重试的速率是多少 您可以观察history count一个 ref 将表明存在争用 user gt def my ref ref 0 min history 1 user m
  • Servlet 会话超时

    我正在编写我的 Spring MVC Web 应用程序 我将会话时间设置为 10080 分钟 相当于 1 周 现在我想让用户每次打开浏览器时都保持登录状态 sessionService setcurrentUser myuser HttpS
  • 从 Android Studio 运行应用程序时,在 Gradle 任务 processManifest.doLast 中编辑 AndroidManifest.xml 无效

    我使用以下 Gradle 脚本在编译时对 AndroidManifest xml 进行一些修改 在这个例子中我想注入一个
  • TFS 团队构建日志单元测试结果

    我们正在使用 TFS 2010 Team Build 它会在构建过程中自动运行我们的单元测试 如果单击 查看日志 我可以看到运行的测试列表和每个测试结果 成功 失败 如果发生失败 我想查看测试结果输出 以便开发人员可以找出失败的原因是什么
  • 使用 extern 和 #include 头文件有什么区别?

    我开始质疑 extern 关键字的有用性 该关键字用于访问其他模块 其他文件中 中的变量 函数 当我们使用 include 预处理器导入带有变量 函数原型或函数 变量定义的头文件时 我们不是在做同样的事情吗 extern之所以需要 是因为它
  • javascript location.href onchange 事件监听器?

    我想在你离开页面时显示一条消息 不是烦人的警报 只是一些告诉你等待的html 在考虑它时我面临着某些困难 当用户按下 Stop 时 浏览器 取消导航离开 行动 我想要发送消息 离开 每当单击任何链接时 都会出现该消息 当单击的链接打开另一个
  • Windows 7 中“ruby.exe 未被识别为内部或外部命令”

    我的操作系统是Windows 7 我正要连接我的本地MySQL数据库与Heroku共享数据库 在某一时刻 我得到了libmysql dll文件丢失的错误 所以我搜索并下载了dll文件并将其保存在ruby中 bin 目录 当我再次准备连接时
  • 混合效应逻辑回归

    我正在尝试在 python 中实现混合效应逻辑回归 作为比较 我正在使用glmer函数从lme4R 中的包 我发现statsmodels模块有一个BinomialBayesMixedGLM应该能够适合这样的模型 然而 我遇到了很多问题 我找