如何在 Matlab fitglm 中获得 R 的零偏差和残差偏差等值?

2024-02-11

在 R 中,拟合 glm 后,您可以获得包含残差偏差和零偏差的摘要信息,这些信息告诉您您的模型与仅包含截距项的模型相比有多好,例如模型:

model <- glm(formula = am ~ mpg + qsec, data=mtcars, family=binomial)

we have:

> summary(model)
...
    Null deviance: 43.2297  on 31  degrees of freedom
Residual deviance:  7.5043  on 29  degrees of freedom
AIC: 13.504
...

在 Matlab 中,当您使用fitglm你返回一个对象GeneralizedLinearModel类,其中有一个Deviance包含残余偏差的属性。但是,我找不到与零偏差直接相关的任何内容。计算这个最简单的方法是什么?

Matlab 代码示例:

load fisheriris.mat
model = fitglm(meas(:, 1), ismember(species, {'setosa'}), 'Distribution', 'binomial')

产生:

model = 


Generalized Linear regression model:
    logit(y) ~ 1 + x1
    Distribution = Binomial

Estimated Coefficients:
                       Estimate                SE                  tStat                 pValue       
                   _________________    _________________    _________________    ____________________

    (Intercept)     27.8285213954246      4.8275686220899     5.76450042948896    8.19000695766331e-09
    x1             -5.17569812610148    0.893399843474784    -5.79326061438645    6.90328570107794e-09


150 observations, 148 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 119, p-value = 9.87e-28

残余偏差为model.Deviance:

>> model.Deviance

ans =

          71.8363992272217

我写了一个GLMMatlab 的类给出了完全相同的结果:

Matlab 中的广义线性模型(与 R 中的结果相同) https://github.com/JeanPaulvB/GLM

例如,样本数据上具有伽玛分布的对数链接 GLM 在 R 中给出:

Call:
glm(formula = MilesPerGallon ~ Horsepower + Acceleration + Cylinders, 
    family = Gamma(link = log), data = data)

Deviance Residuals: 
      Min         1Q     Median         3Q        Max  
-0.116817  -0.075084   0.004179   0.060545   0.197108  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept)   4.955205   0.509903   9.718  < 2e-16 ***
Horsepower   -0.017605   0.004352  -4.046 5.21e-05 ***
Acceleration -0.026137   0.015540  -1.682   0.0926 .  
Cylinders     0.093277   0.054458   1.713   0.0867 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Gamma family taken to be 0.0133)

    Null deviance: 0.388832  on 10  degrees of freedom
Residual deviance: 0.093288  on  7  degrees of freedom
AIC: 64.05

Number of Fisher Scoring iterations: 4

Pearson MSE:  0.008783281 
Deviance MSE:  0.008480725 
McFadden R^2:  0.7600815 

使用该包,同样的估计在 Matlab 中给出以下结果:

 :: convergence in 4 iterations
 ------------------------------------------------------------------------------------------
    dependent: MilesPerGallon
  independent: (Intercept),Horsepower,Acceleration,Cylinders
 ------------------------------------------------------------------------------------------
  log(E[MilesPerGallon]) = ß1×(Intercept) + ß2×Horsepower + ß3×Acceleration + ß4×Cylinders
 ------------------------------------------------------------------------------------------
 distribution: GAMMA
         link: LOG
       weight: -
       offset: -
 ============================================================
     Variable    Estimate     S.E.    z-value    Pr(>|z|)
 ============================================================
   (Intercept)      4.955     0.510    9.708     0.00000
    Horsepower     -0.018     0.004   -4.042     0.00005
  Acceleration     -0.026     0.016   -1.680     0.09290
     Cylinders      0.093     0.055    1.711     0.08706
 ============================================================
  Residual deviance:     0.0933     Deviance MSE: 0.0085
  Null deviance:         0.3888     Pearson MSE:  0.0088
  Dispersion:            0.0133     Deviance IC:  0.1026
  McFadden R^2:          0.7601     Residual df:  7.0000
 ============================================================

所以输出大致相同。希望这可以帮助别人。

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

如何在 Matlab fitglm 中获得 R 的零偏差和残差偏差等值? 的相关文章

  • 在 R 中按组检查重叠开始和结束时间

    我想检查数据的重叠 这是数据 ID lt c rep 1 3 rep 3 5 rep 4 4 rep 5 5 Begin lt c 0 2 5 3 7 8 7 25 25 10 15 17 20 1 NA 10 11 13 End lt c
  • 按具有作业的组划分的 R 分位数

    我有以下 df group rep seq 1 3 30 variable runif 90 5 0 7 5 df data frame group variable 我需要 i 按组定义分位数 ii 将每个人分配到相对于其组的分位数 因此
  • R:如何根据规范更改数据框中的列名称

    我有一个数据框 它的开头如下 SM H1455 SM V1456 SM K1457 SM X1461 SM K1462 ENSG00000000419 8 290 270 314 364 240 ENSG00000000457 8 252
  • 优化 R 中的嵌套 for 循环

    我尝试加速下面的代码 但没有成功 我读到Rfast https cran r project org web packages Rfast Rfast pdf包 但我也未能实现该包 有没有办法优化R中的以下代码 RI lt function
  • 抑制 R 中的错​​误消息

    我正在 R 中运行模拟研究 有时 我的模拟研究会产生错误消息 当我在函数中实现模拟研究时 当出现此错误消息时模拟停止 我知道抑制错误是不好的做法 但此时对我来说 除了抑制错误然后继续下一个模拟 直到达到我喜欢运行的模拟总数为止 没有其他选择
  • R lubridate:当地语言的工作日

    如何获取本地语言的工作日和月份 My code library lubridate data lt c 10 02 2015 11 03 2015 data lubri lt dmy data wday data lubri label T
  • 将 read.csv 与符号链接文件一起使用

    我正在尝试做什么 我的源文件非常大 我想避免将其复制到其他文件夹中 我决定创建一个指向大文件的符号链接并想使用read csv读取文件 文件夹结构 项目1 数据 源文件 csv 项目2 数据 别名到源文件 csv 什么地方出了错 读取源文件
  • 如何在Matlab中绘制网络?

    我有一个矩阵AMatlab中的维数mx2每行包含两个节点的标签 显示网络中的直接链接 例如 如果网络有4矩阵的节点A可能A 1 2 1 3 2 1 2 4 3 2 4 1 4 2 其中第一行表示有一个链接来自1 to 2 第二行表示有一个链
  • kmeans 对分组数据进行聚类

    目前 我尝试在分组数据中找到簇的中心 通过使用示例数据集和问题定义 我能够创建kmeans每个组内的集群 然而 当涉及到给定组的集群的每个中心时 我不知道如何获取它们 https rdrr io cran broom man kmeans
  • R:编写抛硬币的随机采样程序

    假设我们有以下情况 有一枚硬币 如果它正面朝上 那么下一次抛掷正面的概率是 0 6 如果是反面 那么下一次抛掷反面的概率也是 0 6 一个班有100名学生 每个学生随机抛掷硬币几次 Student n 的最后一次抛硬币不会影响 Studen
  • 将 RDS 文件从网络(即 URL)直接加载到 R 中?

    read csv 具有直接从 url 读取的出色能力 readRDS 才不是 我想将 RDS 文件从 Internet 移动到我的 R 环境 我看到有几种方法 Method 1 此方法会用下载的文件弄乱工作目录 myurl lt https
  • Matlab 一个图上有多个图例 2014b

    我想在一个地块上有多个传说 该解决方案在 2014b 版本之前完美运行 我试图弄清楚如何使用手柄优雅地制作它 但到目前为止还没有成功 欢迎任何想法 2013b 的示例 x 1 50 y1 sin x 2 y2 cos x 2 f figur
  • 如何使用Matlab将数据保存到Excel表格中?

    我想将数据以表格形式保存在 Excel 工作表中 它应该看起来像 Name Age R no Gpa Adnan 24 18 3 55 Ahmad 22 12 3 44 Usman 23 22 3 00 每次当我执行我的文件时类数据 m 下
  • 在 Shiny 中叠加两个 ggplot

    我有一个非常大的数据集 我正在使用 ggplot 在 Shiny 上绘制它 我有一个与 x 轴上的值相关联的滑块 我想用它对选定的数据子集重新着色 并让其余数据保持原样 最简单的选择是重新创建整个绘图 但由于它是一个大型数据集 因此这是一个
  • 将日期时间字符串转换为 Date 类

    我有一个带有日期时间字符列的数据框 当我使用as Date 除了少数实例之外 我的大多数字符串都被正确解析 下面的示例有望向您展示发生了什么 my attempt to parse the string to Date uses the s
  • R:如何找到向量的模式[重复]

    这个问题在这里已经有答案了 下面是我的data frame我想知道每个内存类别 1 到 8 的模式是什么 gt dput d structure list MEMORY1 c 5 5 7 1 5 6 4 5 4 5 5 4 1 5 5 2
  • ggplot 图例标签内的希腊字母、符号和换行符

    我在尝试着 有换行符 自动或强制 对齐文本 左对齐或左右对齐 有希腊字母和百分号 在 gglot 图例标签内 我尝试了几种方法 但我似乎无法将我读到的所有技巧结合起来 我可以通过插入来换行 n进入标签 但这似乎不适用于希腊字母 不适用于图例
  • 在函数中使用 quit/q 会导致 RStudio 出现致命错误

    更多的是好奇 但当你使用时q or quit在 R studio 内的函数内部 它会导致致命错误 如下所示 但 rgui 中的相同函数会导致 R 像往常一样停止 并且仅使用q 在 RStudio 中按预期关闭 R 为什么q在函数中导致 RS
  • 从 data.frame 中提取时用 NA 填充缺失的列

    我有一个函数 它将具有某些列的数据框作为输入 columns a b z 现在我有一个数据框DF只有很少的这些列DF columns f u z 如果列不在其中 如何创建一个包含所有值为 NA 的列的数据框DF这与DF在柱子上 f u z
  • 将所有分号替换为空格 pt2

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

随机推荐

  • 使用 Conda 环境、VS Code 终端和 Python 扩展 (v2023.16) 时,“.”插入到 PATH 环境变量中

    我正在尝试将 conda python 与 VS Code 一起使用 我在集成终端中使用的 shell 是 PowerShell 在 Windows 终端中一切正常 但在我重新启动 vscode 终端后 每个 conda 命令在 vscod
  • 使用 SFINAE 检测相同的类继承

    我正在尝试编写一个元函数来检查作为可变参数模板参数传递的所有类型是否不同 似乎执行此操作的最有效方法是从一组类继承并检测是否存在错误 问题是下面的代码编译失败 而我希望 SFINAE 能够工作 Edit 问题不是 如何编写该元函数 而是 如
  • 使用clock_gettime()的正确方法是什么?

    我在 C 程序中尝试这个函数 它总是打印错误的时间 这是我目前的代码 include
  • MySQL 大圆路口(两条路交叉吗?)

    MySQL OpenGIS CROSSES 似乎不适合我 SET ls LineString 1 1 2 2 3 3 SET xx LineString 0 2 10 2 SELECT AsText EndPoint GeomFromTex
  • 使用C++对ipv6地址进行比较运算

    由于 IPV6 地址有 16 个字节 并且它们没有数据类型可以在 C 中存储它 我想存储 IPV6 地址 并在 IPv6 地址之间进行一些比较 请让我知道该怎么做 您可以将它们存储为普通数组unsigned char就像你在 C 中所做的那
  • 如何增加数据集的采样频率(重塑、插值?)并用均值填充 Nan 值

    我有一个样本频率不均匀的数据集 如该子集所示 time date x y id nn1 nn2 0 2019 09 17 08 43 06 234 236 4909 22 02271554554524 38 2099463490856 0
  • Visual Studio 中 Lambda 的模板变量错误?

    c 14 questions tagged c 2b 2b14提供变量模板 http en cppreference com w cpp language variable template哪个工作得很好视觉工作室2017 question
  • Google Sheets v4 更新效果 JSON 端点数据?于 2021 年 6 月 8 日关闭

    我读了这个article https developers google com sheets api v3关于 Google Sheet API v4 更新 我需要改变当前的代码结构吗 我在用简单的 JSON 数据 https sprea
  • Java中的LinkedListNode是什么

    请原谅我的无知 但我正在开始准备我的第一次技术面试 并在主题链接列表上遇到了这个问题和答案 问题 实现一种算法来删除单个链表中间的节点 并且只能访问该节点 public static boolean deleteNode LinkedLis
  • 使用 JavaScript 循环移动 Div

    是否可以使用 JavaScript 循环旋转 Div 我的 HTML 页面中有四个 DIV 我需要循环旋转这些 DIV 其实并不难 function moveDiv t mdiv t t 0 05 time var r 10 radius
  • srand(time(NULL)) 生成类似的结果[重复]

    这个问题在这里已经有答案了 我不明白为什么 srand 生成如此相似的随机数运行之间 我正在尝试运行以下代码 srand time NULL int x rand cout lt lt x lt lt endl 然而 我最终得到的不是一个适
  • JSF:将字符串添加到列表中

    我有一个 JSF 2 0 应用程序 它有一个保存字符串列表的 bean 我想添加字符串
  • 修饰类或参数意味着什么?

    装饰或向类或参数添加属性意味着什么 目的是什么以及我什么时候这样做 欢迎提供资源链接和直接答案 当您在 C 中添加装饰器时 就像向类 方法添加属性一样 它会附加一个属性 如果你编写单元测试你会遇到一个简单的装饰器TestMethod像那样
  • Google Cloud Run 内存限制是否适用于容器大小?

    对于云运行的内存使用情况 请参阅文档 https cloud google com run docs configuring memory limits https cloud google com run docs configuring
  • IronPython WPF 与 RevitPythonShell

    我根据我在 stackoverflow 上找到的代码片段编写了此脚本 但在运行时出现此错误 System InvalidOperationException 无法创建多个 同一 AppDomain 中的 System Windows App
  • 渲染传递局部变量的模板时出现问题

    我正在运行 Ruby on Rails 3 我想渲染一个模板 show html erb 传递局部变量 In RAILS ROOT views users show html erb I have Name Surname 我还有一个页面控
  • xna 中的大型多人游戏

    您对 xna 和大型多人游戏有何看法 例如服务器和 100 个客户端 有没有关于如何在 xna 中创建客户端服务器应用程序的好教程 当然有关于如何做到这一点的教程 我个人使用 Lidgren 作为我的在线原型 我只对 4 个人进行了测试 服
  • 在EF Core中,如何检查是否需要迁移?

    我在 Xamarin iOS 应用程序中使用 Entity Framework Core 在我的核心项目中 包含在 iOS 应用程序和其他应用程序之间共享的代码 netstandard 2 0 我想知道是否需要迁移 以便我也可以执行一些其他
  • 递归删除以

    我需要在 bat 文件中编写一个命令 递归删除以某个字符串开头的所有文件夹 我怎样才能做到这一点 这是您正在寻找的完整答案 FOR D R X IN certain string DO RD S Q X 显然你需要更换的地方certain
  • 如何在 Matlab fitglm 中获得 R 的零偏差和残差偏差等值?

    在 R 中 拟合 glm 后 您可以获得包含残差偏差和零偏差的摘要信息 这些信息告诉您您的模型与仅包含截距项的模型相比有多好 例如模型 model lt glm formula am mpg qsec data mtcars family