- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
看来 mi
在过去几年的某个时刻,软件包进行了相当大的重写。
以下教程详细概述了“旧”的做事方式:http://thomasleeper.com/Rcourse/Tutorials/mi.html
"new"的做事方式(坚持使用 Leeper 的模拟演示)看起来像这样:
#load mi
library(mi)
#set seed
set.seed(10)
#simulate some data (with some observations missing)
x1 <- runif(100, 0, 5)
x2 <- rnorm(100)
y <- 2*x1 + 20*x2 + rnorm(100)
mydf <- cbind.data.frame(x1, x2, y)
mydf$x1[sample(1:nrow(mydf), 20, FALSE)] <- NA
mydf$x2[sample(1:nrow(mydf), 10, FALSE)] <- NA
# Convert to a missing_data.frame
mydf_mdf <- missing_data.frame(mydf)
# impute
mydf_imp <- mi(mydf_mdf)
尽管函数名称已更改,但这实际上与“旧”的处理方式非常相似。
最大的变化(从我的角度来看)是替换了以下“旧”功能
lm.mi(formula, mi.object, ...)
glm.mi(formula, mi.object, family = gaussian, ...)
bayesglm.mi(formula, mi.object, family = gaussian, ...)
polr.mi(formula, mi.object, ...)
bayespolr.mi(formula, mi.object, ...)
lmer.mi(formula, mi.object, rescale=FALSE, ...)
glmer.mi(formula, mi.object, family = gaussian, rescale=FALSE, ...)
。
以前,用户可以使用这些函数之一为每个估算数据集计算模型,然后使用 mi.pooled()
汇集结果。 (或者 coef.mi()
如果我们遵循 Leeper 示例)。
在mi
的当前版本中(我安装了 v1.0),最后这些步骤似乎已合并为一个函数,pool()
。 pool()
函数似乎读取在上述插补过程中分配给变量的族和链接函数,然后使用 bayesglm
估计模型使用如下所示的指定公式。
# run models on imputed data and pool the results
summary(pool(y ~ x1 + x2, mydf_imp))
##
## Call:
## pool(formula = y ~ x1 + x2, data = mydf_imp)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.98754 -0.40923 0.03393 0.46734 2.13848
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.34711 0.25979 -1.336 0.215
## x1 2.07806 0.08738 23.783 1.46e-13 ***
## x2 19.90544 0.11068 179.844 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 0.7896688)
##
## Null deviance: 38594.916 on 99 degrees of freedom
## Residual deviance: 76.598 on 97 degrees of freedom
## AIC: 264.74
##
## Number of Fisher Scoring iterations: 7
看起来我们即将恢复模拟 Beta 值(2 和 20)。换句话说,它的行为符合预期。
为了获得分组变量,我们采用一组稍微大一些的数据,并简单地模拟随机效应。
mydf2 <- data.frame(x1 = rep(runif(100, 0, 5), 20)
,x2 = rep(rnorm(100, 0, 2.5), 20)
,group_var = rep(1:20, each = 100)
,noise = rep(rnorm(100), 20))
mydf2$y <- 2*mydf2$x1 + 20*mydf2$x2 + mydf2$noise
mydf2$x1[sample(1:nrow(mydf2), 200, FALSE)] <- NA
mydf2$x2[sample(1:nrow(mydf2), 100, FALSE)] <- NA
# Convert to a missing_data.frame
mydf2_mdf <- missing_data.frame(mydf2)
show(mydf2_mdf)
## Object of class missing_data.frame with 2000 observations on 5 variables
##
## There are 4 missing data patterns
##
## Append '@patterns' to this missing_data.frame to access the corresponding pattern for every observation or perhaps use table()
##
## type missing method model
## x1 continuous 200 ppd linear
## x2 continuous 100 ppd linear
## group_var continuous 0 <NA> <NA>
## noise continuous 0 <NA> <NA>
## y continuous 0 <NA> <NA>
##
## family link transformation
## x1 gaussian identity standardize
## x2 gaussian identity standardize
## group_var <NA> <NA> standardize
## noise <NA> <NA> standardize
## y <NA> <NA> standardize
自 missing_data.frame()
似乎正在解释group_var
作为连续,我使用 change()
来自 mi
的函数重新分配给"un"
对于“无序分类”,然后按上述方式进行。
mydf2_mdf <- change(mydf2_mdf, y = "group_var", what = "type", to = "un" )
# impute
mydf2_imp <- mi(mydf2_mdf)
现在,除非 mi
的 1.0 版本已删除以前版本的功能(即 lmer.mi
和 glmer.mi
可用的功能),我假设在公式中添加随机效应应该指向 pool()
到适当的lme4
功能。然而,最初的错误消息表明情况并非如此。
# run models on imputed data and pool the results
summary(pool(y ~ x1 + x2 + (1|group_var), mydf2_imp))
## Warning in Ops.factor(1, group_var): '|' not meaningful for factors
## Warning in Ops.factor(1, group_var): '|' not meaningful for factors
## Error in if (prior.scale[j] < min.prior.scale) {: missing value where TRUE/FALSE needed
按照我的警告消息并从我的因子中提取整数确实可以得到一个估计,但结果表明 pool()
仍在估计固定效应模型 bayesglm
并保持我尝试的随机效应不变。
summary(pool(y ~ x1 + x2 + (1|as.numeric(as.character(group_var))), mydf2_imp))
##
## Call:
## pool(formula = y ~ x1 + x2 + (1 | as.numeric(as.character(group_var))),
## data = mydf2_imp)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.93633 -0.69923 0.01073 0.56752 2.12167
##
## Coefficients:
## Estimate Std. Error t value
## (Intercept) 1.383e-01 2.596e+02 0.001
## x1 1.995e+00 1.463e-02 136.288
## x2 2.000e+01 8.004e-03 2499.077
## 1 | as.numeric(as.character(group_var))TRUE -3.105e-08 2.596e+02 0.000
## Pr(>|t|)
## (Intercept) 1
## x1 <2e-16 ***
## x2 <2e-16 ***
## 1 | as.numeric(as.character(group_var))TRUE 1
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 0.8586836)
##
## Null deviance: 5384205.2 on 1999 degrees of freedom
## Residual deviance: 1713.9 on 1996 degrees of freedom
## AIC: 5377
##
## Number of Fisher Scoring iterations: 4
我的问题是:
mi
轻松生成汇总随机效应估计?,和最佳答案
只是为了提供一种替代方案,有一个包主要关注混合效应模型的 MI 以及汇集从中获得的结果(mitml
,find it here)。
使用该包非常简单。它依赖于 pan
和 jomo
包进行插补,但它也可以处理来自其他 MI 包的输入 (?as.mitml.list
) .
混合效应模型的池化估计大部分是自动化的,并包含在 testEstimates
函数中。
require(mitml)
require(lme4)
data(studentratings)
# impute example data using 'pan'
fml <- ReadDis + SES ~ ReadAchiev + (1|ID)
imp <- panImpute(studentratings, formula=fml, n.burn=1000, n.iter=100, m=5)
implist <- mitmlComplete(imp, print=1:5)
# fit model using lme4
fit.lmer <- with(implist, lmer(SES ~ (1|ID)))
# pool results using 'Rubin's rules'
testEstimates(fit.lmer, var.comp=TRUE)
输出:
# Call:
# testEstimates(model = fit.lmer, var.comp = TRUE)
# Final parameter estimates and inferences obtained from 5 imputed data sets.
# Estimate Std.Error t.value df p.value RIV FMI
# (Intercept) 46.988 1.119 41.997 801.800 0.000 0.076 0.073
# Estimate
# Intercept~~Intercept|ID 38.272
# Residual~~Residual 298.446
# ICC|ID 0.114
# Unadjusted hypothesis test as appropriate in larger samples.
关于r - 我可以使用 mi 包汇集估算的随机效应模型估计值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37110899/
架构设计(九):估算 作者: Grey 。 原文地址: 博客园:架构设计(九):估算 。 CSDN:架构设计(九):估算 。 估算在系统设计中非常重要,这决定了你的设计是否可以满足要求,
我有以下 JavaScript 代码,它使用 sql.js库与远程 SQL 数据库通信。 var xhr = new XMLHttpRequest(); xhr.open('GET', 'https:
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
我正在使用启用了 ARC 的 Cocos2d 2.0。我的游戏是一个随机生成的游戏,所以我需要在游戏中间的场景中加载/卸载纹理(spritesheet-batchnode)。我正在尝试从文件中删除 s
我有一个不完整的数据框,incomplete_df,如下所示。我想用相应 id 的平均 amount 来估算缺失的 amount。如果该特定 id 的平均值本身就是 NaN(参见 id=4),我想使用
我正在研究 NOAA AVHRR 31 年的每日海面温度 (SST) 数据。数据采用 NetCDF 格式,维度为 28(经)x 40(纬度)x 11686(天)。我应该计算每月的气候平均值(例如 31
我想为给定现有值的变量估算缺失值。 在 var2 ,我们注意到有很多NA s。 如果任何 2 个 ID 相同,则它们的值 var2是相同的。 如果 id 没有 var2 的值,就像 id==2 的情况
我想了解(大概)读取 Android SD 卡上存储的大文件(50MB 到 100MB)需要多长时间。我在 Google Nexus One 上的 Android 2.3.3 上使用以下代码。这会给我
估计 json 对象(如果 JSon 大小可用)将在 MongoDB 中占用多少存储内存的最佳方法是什么?有某种相关公式吗? 最佳答案 有 Object.bsonsize() 方法 mongo She
我有缺失值的数据框 (DF1),我想从不同的数据框 (DF2) 中估算这些缺失值,同时保留索引而不对它们进行排序(非常重要)。我正试图找到最有效的方法来做到这一点。 DF1: index id t
我正在尝试估算将返回大量结果的应用引擎查询的结果总量。 为了做到这一点,我为每个实体分配了一个介于 0 和 1 之间的随机 float 。然后我执行了我想用以下 3 个设置估计总结果的查询: * I
我正在尝试制作一个简单的 js 机器人,它检查每个区 block 的 eth(或链的主要 token )并将其发送到另一个钱包。 我有一个工作机器人: const { ethers } = requi
我最近一直在考虑将 Azure 作为许多具有 MSSql 数据库后端的小型 asp.net 网站的托管平台。我目前使用非 Microsoft 主机,每月收取固定费用。 我看过的 Azure 演示和网络
我是 C++ 新手。我正在尝试使用计算机系统的随机数生成器根据 Ernesto Cesaro 定理统计确定 Pi 的值。但是我现在所做的可以输入一个种子数并生成100个伪随机数,然后估计pi的值。生成
在我看来,我并不完全理解 FLOPS 的概念。在 CUDA SAMPLES 中,有 Matrix Multiplication Example (0_Simple/matrixMul)。在此示例中,每
我是一名优秀的程序员,十分优秀!