在predict.lm()中使用聚类协方差矩阵

2024-04-22

我正在分析一个数据集,其中数据聚集在多个组(区域中的城镇)中。数据集如下所示:

R> df <- data.frame(x = rnorm(10), 
                     y = 3*rnorm(x), 
                     groups = factor(sample(c('0','1'), 10, TRUE)))
R> head(df)
        x     y groups
1 -0.8959  1.54      1
2 -0.1008 -2.73      1
3  0.4406  0.44      0
4  0.0683  1.62      1
5 -0.0037 -0.20      1
6 -0.8966 -2.34      0

我希望我的 lm() 估计能够解释组中的类内相关性,为此我正在使用一个函数cl()这需要一个lm()并返回稳健的聚类协方差矩阵(原始here http://people.su.se/~ma/clustering.pdf):

cl  <- function(fm, cluster) {
  library(sandwich)
  M <- length(unique(cluster))   
  N <- length(cluster)              
  K <- fm$rank                   
  dfc <- (M/(M-1))*((N-1)/(N-K-1))
  uj  <- apply(estfun(fm), 2, function(x) tapply(x, cluster, sum));
  vcovCL <- dfc * sandwich(fm, meat = crossprod(uj)/N)
  return(vcovCL)
}

Now,

output <- lm(y ~ x, data = df)
clcov <- cl(output, df$groups)
coeftest(output, clcov, nrow(df) - 1)

给我我需要的估计。现在的问题是我想使用模型进行预测,并且我需要用新的协方差矩阵来计算预测的标准误差clcov。也就是说,我需要

predict(output, se.fit = TRUE)

但使用clcov代替vcov(output)。像一个vcov() <-将会是完美的。

当然,我可以编写自己的函数来进行预测,但我只是想知道是否有更实用的方法可以让我使用方法进行签名lm(如arm::sim)。


Predict中的se.fit不是使用vcov矩阵计算的,而是使用qr分解和残差方差计算的。这也适用于 vcov() 函数:它从summary.lm() 中获取未缩放的 cov 矩阵以及残差方差,并使用这些矩阵。再次,未缩放的 cov 矩阵是根据 QR 分解计算出来的。

所以恐怕答案是“不,除了编写自己的函数之外没有其他选择”。您无法真正设置 vcov 矩阵,因为它会在需要时重新计算。然而,编写自己的函数相当简单。

predict.rob <- function(x,clcov,newdata){
    if(missing(newdata)){ newdata <- x$model }
    m.mat <- model.matrix(x$terms,data=newdata)
    m.coef <- x$coef
    fit <- as.vector(m.mat %*% x$coef)
    se.fit <- sqrt(diag(m.mat%*%clcov%*%t(m.mat)))
    return(list(fit=fit,se.fit=se.fit))
}

我没有使用predict()函数以避免不必要的计算。无论如何,它不会太多地缩短代码。


顺便说一句,这样的问题最好问stats.stackexchange.com http://stats.stackexchange.com

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

在predict.lm()中使用聚类协方差矩阵 的相关文章

  • 通过 R 中的数据子集执行计算

    我想对数据框的 PERMNO 列中的每个公司编号进行计算 其摘要可以在此处查看 gt summary companydataRETS PERMNO RET Min 10000 Min 0 971698 1st Qu 32716 1st Qu
  • R 多元一步预测和准确性

    我想使用 R 来比较两个预测模型的 RMSE 均方根误差 第一个模型使用 1966 年至 2000 年的估计值来预测 2001 年 然后使用 1966 年至 2001 年的估计值来预测 2002 年 依此类推直至 2015 年 第二个模型使
  • 汇总表中各列的字符值比例

    在这种数据框中 df lt data frame w1 c A A B C A w2 c C A A C C w3 c C A B C B 我需要计算所有列中字符值的列内比例 有趣的是 以下代码适用于大型实际数据集 但对上述玩具数据会引发错
  • 如何绘制每条线之间具有特定距离的图形

    实际上 我尝试绘制一个图形 但它将所有列 线 放在一起并显示 因此它不具有代表性 我尝试制作模拟数据并向您展示我如何绘制它 并向您展示我想要的内容 我不知道如何制作像下面所示的示例的数据 但我在这里做了什么 set seed 1 M lt
  • 如何将同一行中以逗号分隔的值拆分到R中的不同行

    我有一些数据来自谷歌表格 https forms gle rGQQL3tvA1PrE4dD8我想拆分以逗号分隔的答案 and 复制参与者的 ID 数据如下 gt head data names Q2 Q3 Q4 1 PART 1 fruit
  • R中整数类和数字类有什么区别

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

    我有一个数据集 其中 1 是时间 接下来的 14 个是幅度 我想在一张图表上散布所有大小与时间的关系 其中每个不同的列都是网格化的 分层在另一个之上 我想使用原始数据来制作这些图表 并单独制作它们 但只想执行此过程一次 数据集A 唯一的自变
  • 更快的 %in% 运算符

    The 快速匹配 https cran r project org web packages fastmatch index html包实现了更快的版本match对于重复匹配 例如在循环中 set seed 1 library fastma
  • 排序因素与水平

    有人能解释一下 R 中 ordered 参数的用途吗 R says ordered逻辑标志来确定级别是否应被视为有序 按给定的顺序 所以如果我有一个名为名称的因素并设置ordered TRUE names lt factor c fred
  • 如何自动启动我的 ec2 实例、运行命令然后将其关闭?

    我想每周对 redshift postgres 数据库中的数据运行一次机器学习模型 我使用以下命令将 R 脚本设置为休息 apiplumbr然后我将其设置为一项任务来管理pm2 我有它 所以任务会在ec2实例启动然后继续运行 要让 R 脚本
  • 计算互相关函数?

    In R 我在用ccf or acf计算成对互相关函数 以便我可以找出哪个移位给我带来最大值 从它的外观来看 R给我一个标准化的值序列 Python 的 scipy 中是否有类似的东西 或者我应该使用fft模块 目前 我正在这样做 xcor
  • 从 R 中的方差分析 (glm) 中提取残余偏差

    我在 R 中安装了一个 glm 模型并采用了方差分析表 我需要提取 残余偏差 列 但它会产生错误 以下是代码 创建数据 counts lt c 18 17 15 20 10 20 25 13 12 outcome lt gl 3 1 9 t
  • 如何使用 xpath 检查某个对象在网页中是否可见?

    我正在 R 中使用 RSelenium 包来进行网络抓取 有时加载网页后 需要检查某个对象在网页中是否可见 例如 library RSelenium open a browser RSelenium startServer remDr lt
  • R 将多个值与向量进行比较并返回向量[重复]

    这个问题在这里已经有答案了 我有一个向量 A 对于 A 的每个元素 我想检查它是否等于第二个向量 Targets 中的任何元素 我想要一个逻辑值向量 其长度为 A 作为返回 也提到了同样的问题here http r 789695 n4 na
  • 如何在ubuntu的conda环境中更改Rstudio中的R版本

    我在基本系统中安装了 R 4 3 和 Rstudio 在 conda 环境中安装了旧版本的 R 4 2 3 命令which R返回环境中安装的 R 的目录 home 用户 miniconda3 envs anndata2ri pip bin
  • 如何添加链接以从我的 R闪亮应用程序在新窗口中打开 pdf 文件?

    我可以使用 a 从我的 Shiny 应用程序添加到外部站点的超链接 a google href http www google com 但如何创建一个链接来打开 pdf 或类似 文件 看起来应该很简单 但我找不到任何例子 我的问题与此类似
  • 在 R 传单中添加不透明度滑块

    如何在 R leaflet 应用程序中添加滑块来控制特定图层的不透明度 对于这个应用程序 我不想使用闪亮 这里建议 在 R 传单应用程序中添加滑块 https stackoverflow com questions 37682619 add
  • 将 ftransform 与折叠 R 包中的 fgroup_by 一起使用

    我正在尝试重现以下输出dplyr代码与R包裹collapse dplyr Code library tidyverse starwars gt select name mass species gt group by species gt
  • R中的重叠矩阵

    我有以下数据框 id channel 1 a 1 b 1 c 2 a 2 c 3 a 我想创建并重叠矩阵 它基本上是一个方阵 行和列标签为 a b c 表中的每个条目显示每个通道共有多少个 id 例如 在上面的例子中 矩阵看起来像 a b
  • 绘制 Cox 回归的 Kaplan-Meier 图

    我使用 R 中的以下代码设置了一个 Cox 比例风险模型来预测死亡率 添加协变量 A B 和 C 只是为了避免混淆 即年龄 性别 种族 但我们真正对预测变量 X 感兴趣 X 是一个连续变量 cox model lt coxph Surv t

随机推荐

  • React - 组件内动态创建列表项

    有什么办法可以添加动态li元素融入我的ul列表 我想添加我的li单击按钮 这是示例代码 class Component1 extends React Component constructor super add let ul docume
  • 如何在一个解决方案中为两个单独的项目在 asp.net core 中设置路由?

    我创建了两个 asp net core mvc 项目 它们分别工作正常 每一个在其 startup cs 文件中都有自己的路由 当我启动它们时 它们运行良好 我的问题是 如何从第一个项目设置第二个项目路线 我应该在第一个项目中更改哪里 我应
  • 如何使用 Microsoft.Office.Interop.Excel 从 Excel 导入数据集?

    我想做的事 我正在尝试使用Microsoft Office Interop Excel名称空间 http msdn microsoft com en us library microsoft office interop excel 28v
  • 在 iPhone 中点击按钮时打开文件对话框

    我做了一个可可应用程序 其中在可可应用程序中使用 NSOpenPanel 控制器点击按钮时打开文件对话框 对于 ipad 应用程序 我们使用 UISplitViewController 我想知道 在 iPhone 中开发应用程序时 点击按钮
  • 如何将引导日期选择器放入我的表单中并在日期参数中包含值?

    我正在使用 bootstrap datepicker js 并且它工作正常 div class well div class input append date div div
  • 问答:我如何知道该月的最后一天是哪一天?

    我试图编写一个自己的时区转换器 我需要一种方法来确定该月的最后一天是哪一天 经过一番研究 我发现了查找闰年的公式 这是一个小小的贡献 但也许我可以为其他人节省 20 分钟的时间来弄清楚并应用它 此代码接受带符号的短月份 索引为 0 0 是一
  • ORACLE Select Distinct 返回许多列,其中

    我有一个看起来像这样的表 NAME Col1 Col2 Col3 Tim 1 2 3 Tim 1 1 2 Tim 2 1 2 Dan 1 2 3 Dan 2 2 1 Dan 2 1 3 我试图创建一个 SELECT 命令 结果如下 NAME
  • R 中的线性插值

    我有一个真实数据的数据集 例如如下所示 Dataset 1 with known data known lt data frame x c 0 6 y c 0 10 20 23 41 39 61 plot known x known y t
  • UIImage 内存未释放 VM:ImageIO_JPEG_DATA?

    我在屏幕上同时有多个水平滚动的集合视图 它们都充满了图像 所有这些图像都通过 Parse api 在后台加载 我正在运行 Instrument 的分配 并且匿名 VM ImageIO JPEG DATA 类别占用了大部分正在使用的内存 应用
  • linux终端动画-延迟打印“帧”的最佳方法(C语言)

    我正在为终端开发一个简单的 pong 克隆 并且需要一种方法来延迟 帧 的打印 我有一个二维数组 screen ROWS COLUMNS 以及打印屏幕的函数 void printScreen int i 0 int j while i lt
  • 与 Matlab 相比,Numpy 加载 csv 太慢

    我发布这个问题是因为我想知道我是否做了一些非常错误的事情才能得到这个结果 我有一个中等大小的 csv 文件 我尝试使用 numpy 来加载它 为了便于说明 我使用 python 创建了该文件 import timeit import num
  • 使用 Angular 5 和 RxJS 观察带有过滤器的数组

    我正在创建一个简单的论坛 我正在寻找过滤帖子 我在 RxJS 中使用 pipe 和 filter 时遇到一些问题 我试图 从内存中检索 api 帖子列表api posts 当与 http get 一起使用时 它返回一个Observable
  • Android appbarlayout 海拔出现在状态栏中

    如何消除状态栏中的高度 如果我在 AppbarLayout 中将 app elevation 设置为 0dp 则标高不再出现在状态栏中 但也不会出现在 AppbarLayout 下方 如何获取 AppbarLayout 下的高度 这是我的意
  • Rails/Devise - 我应该使用 devise 和 rspec 测试什么?

    许多程序员使用 devise 作为他们的身份验证解决方案 我想得到他们的建议 设计已经经过测试 但我想知道是否需要自己测试一些东西 集成 单元 功能测试 以便与我的知识进行标准设计集成 我不熟悉shoulda和cucumber 但我了解一些
  • 在 HTML 中正确对齐图像和文本

    This is the example 我想对齐image与名称并排 但不知何故 图像只是浮得更高一点 有什么帮助吗 UPDATE profile name header background color 006400 font famil
  • NPM5,package-lock.json 与 package.json 有什么区别?

    将NPM更新到版本5后 我发现package lock json包含 package json 的文件 这两个文件有什么区别 有什么优点package lock json package json 文件 列出您的项目所依赖的包 允许您使用语
  • 如何检查 iPhone 上的自定义 url 方案?

    我想在我的应用程序中使用自定义 url 方案 例如调用 navigons mobile navigator 首先 我想检查是否安装了 navigon 或者至少检查自定义 url 方案 navigon 是否已注册 有任何想法吗 多谢 看看 U
  • C 函数堆栈布局

    我有一个看起来像这样的函数 int bof char str char buffer 12 strcpy buffer str return 1 我正在尝试覆盖其返回地址 我发现我可以通过使用来做到这一点 例如 memcpy buffer
  • 使用 DTO 和 BO

    我对 DTO BO 的疑问之一是何时传递 返回 DTO 以及何时传递 返回 BO 我的直觉告诉我始终将 NHibernate 映射到 DTO 而不是 BO 并且始终传递 返回 DTO 然后 每当我需要执行业务逻辑时 我都会将 DTO 转换为
  • 在predict.lm()中使用聚类协方差矩阵

    我正在分析一个数据集 其中数据聚集在多个组 区域中的城镇 中 数据集如下所示 R gt df lt data frame x rnorm 10 y 3 rnorm x groups factor sample c 0 1 10 TRUE R