标签: microsoft-r

R中的大固定效应二项式回归

我需要在一个相对较大的数据框架上运行逻辑回归,其中包含480个条目和3个固定效果变量.固定效应var A有3233级,var B有2326级,var C有811级.总而言之,我有6370个固定效果.数据是横截面的.如果我不能使用正常glm函数运行此回归,因为回归矩阵对于我的记忆来说似乎太大了(我得到消息" Error: cannot allocate vector of size 22.9 Gb").我正在寻找在我的Macbook Air(OS X 10.9.5 8GB RAM)上运行此回归的替代方法.我也可以访问具有16GB RAM的服务器.

我试过用几种不同的方法解决这个问题,但到目前为止还没有取得令人满意的结果:

LFE/felm:使用的felm回归函数lfe减去运行回归之前固定的效果.这完美地工作,并允许我在几分钟内将上述回归作为正常线性模型运行.但是,lfe不支持逻辑回归和glms.所以felm非常适合了解不同模型的模型拟合,但不适用于最终的逻辑回归模型.

biglm/bigglm:我想过bigglm用来将我的功能分解成更易于管理的块.然而,若干来源(例如link1,link2,link3)提到为了使其起作用,因子级别需要在块之间保持一致,即每个块必须包含每个因子变量的每个因子中的至少一个.因子A和B包含仅出现一次的级别,因此我无法将这些集合拆分为具有一致级别的不同块.如果我删除固定效应A的10个因子和B的8个因子(微小的变化),我将只剩下4个级别的因子,并且将我的数据分成4个块将使其更易于管理.然而,我仍然需要弄清楚如何对我的df进行排序,以确保我的480.000条目被分类为4个块,其中3个因子中的每个因子的每个因子级别出现至少一次.

GlmmGS/glmgs:glmmgs具有相同名称的包中的函数执行固定效果减法,如lfe使用"Gauss-Seidel"算法的逻辑回归包.不幸的是,该包已不再开发.对R来说比较新,没有深入的统计经验,我无法理解输出,也不知道如何以一种能给我正常"效果大小","模型拟合","模型拟合"的方式对其进行转换.显着性区间"glm回归摘要提供的指标.

我给包的作者发了一条消息.他们回应如下:

该包不提供与glm对象相同格式的输出.但是,在给定当前输出的情况下,您可以轻松计算大部分拟合统计量(估计的标准误差,拟合度)(在CRAN版本中,我相信当前输出是系数估计的向量,以及相关的向量标准误差;协方差分量相同,但如果你没有随机效应拟合模型,你不必担心它们).只要注意用于计算标准误差的协方差矩阵是与Gauss-Seidel算法相关的精度矩阵的对角线块的倒数,因此它们倾向于低估联合似然的标准误差.我不再维护包裹,我没有时间详细说明; 包装背后的开创性理论可以在手册中引用论文中找到 ,其他一切都需要用笔和纸来制定:).

如果任何人都可以解释如何"轻松计算大部分拟合统计数据",使得没有任何统计学教育的人能够理解它(可能是不可能的)或者提供R代码,以示例如何实现这一点,我将是非常感谢!

Revolution Analytics:我在一台模拟Mac上的Windows 7的虚拟机上安装了革命分析企业.该程序具有一个被调用的函数RxLogit,该函数针对大型逻辑回归进行了优化.使用RxLogit我得到的功能the error (Failed to allocate 326554568 bytes. Error in rxCall("RxLogit", params) : bad allocation),所以该功能似乎也遇到了内存问题.但是,该软件使我能够在分布式计算集群上运行回归.所以我可以通过在具有大量内存的集群上购买计算时间来"解决问题".但是,我想知道革命分析程序是否提供了我不知道的任何公式或方法,这将允许我做某种类似的lfe固定效果减法操作或类似的bigglm …

r large-data mixed-models logistic-regression microsoft-r

13
推荐指数
1
解决办法
2793
查看次数

如何绘制来自极大数据集的交互效果(特别是来自rxGlm输出)

我目前正在计算glm大型数据集的模型.两者glm甚至speedglm需要数天来计算.

我目前有大约3M观测值和总共400个变量,其中只有一些用于回归.在我的回归我使用4个整数独立变量(iv1,iv2,iv3,iv4),1个二进制独立变量作为因子(iv5),相互作用项(x * y其中x是整数并且y是一个二进制伪变量作为因子).最后,我有多年的固定效应ff1和公司ID ff2.我有15年和3000个公司.我通过添加它们作为因素来介绍固定效果.我观察到,尤其是3000公司固定效应使计算速度很慢stats glm,也speedglm.

因此,我决定尝试使用Microsoft R rxGlm(RevoScaleR),因为它可以解决更多线程和处理器内核问题.实际上,分析的速度要快得多.此外,我将子样本的结果与标准样本进行了比较,glm并将它们匹配.

我使用了以下功能:

mod1 <- rxGlm(formula = dv ~ 
                      iv1 + iv2 + iv3+ 
                      iv4 + iv5 +
                      x * y +
                      ff1  + ff2,
                    family = binomial(link = "probit"), data = dat,
                    dropFirst = TRUE, dropMain = FALSE, covCoef = …
Run Code Online (Sandbox Code Playgroud)

r glm microsoft-r

12
推荐指数
1
解决办法
396
查看次数

打开RStudio或R控制台时出现警告消息

最近我在MacBook Pro(El Capitan 10.11.6)上安装了Microsoft R Open 3.3.1.当我打开RStudio或使用R控制台时,我收到以下警告消息:

Warning message:
In doTryCatch(return(expr), name, parentenv, handler) :
  unable to load shared object '/Library/Frameworks/R.framework/Resources/modules//R_X11.so':
  dlopen(/Library/Frameworks/R.framework/Resources/modules//R_X11.so, 6): Symbol not found: _CGBitmapContextCreate
  Referenced from: /Library/Frameworks/R.framework/Resources/modules//R_X11.so
  Expected in: flat namespace
 in /Library/Frameworks/R.framework/Resources/modules//R_X11.so
Run Code Online (Sandbox Code Playgroud)

您知道一种阻止打印消息(或解决问题)的方法吗?

谢谢!

r rstudio osx-elcapitan microsoft-r

9
推荐指数
1
解决办法
904
查看次数

R:[unixODBC] [驱动程序管理器]无法打开lib'SQL Server':找不到文件

setwd("/mnt/mountpoint/abc/")
sqlServerConnString <- "SERVER=server;DATABASE=sqldwdb;UID=xyz;PWD=abc;"
sqlServerDataDS <- RxSqlServerData(sqlQuery = "SELECT * FROM xyz",
                               connectionString = sqlServerConnString)
sqlServerDataDF <- rxImport(sqlServerDataDS)
Run Code Online (Sandbox Code Playgroud)

这是我的代码.我在R中得到了跟随错误

[unixODBC] [驱动程序管理器]无法打开lib'SQL Server':找不到文件

[unixODBC] [驱动程序管理器]连接不存在SQLDisconnect中的ODBC错误无法打开doTryCatch中的数据源.错误(return(expr),name,parentenv,handler):无法打开数据源.

我在我的linux机器上安装了MSSQL和unixODBC驱动程序,它也在/etc/odbc.ini文件中被重新选中

有人可以帮我吗?

sql-server r microsoft-r

8
推荐指数
1
解决办法
2万
查看次数

lme()在Revolution R下运行不同的结果(MKL要责怪吗?)

更新(2014年8月):我从来没有深究这一点,也从未得到过有关Revolution论坛的任何反馈.然而,这个问题似乎已在Revolution R 7.2中得到修复(使用R 3.0.3,再次是学术版).我运行lme()测试几百次,所有产生的结果都是预期的.[ 更新结束 ]

我刚刚在一台新PC上安装了Revolution R 7.0(R 3.0.2)的学术版本,并且下面的代码得到了奇怪的结果.每次运行代码时,它都会产生不同的结果.在CRAN-R下,结果总是一样的(我认为应该是这样).代码片段来自test.data.table()版本1.8.10的测试527 ,它指出了错误.

library(nlme)
all.equal(lme(distance ~ age, data=Orthodont), lme(distance ~ age, data=Orthodont))
Run Code Online (Sandbox Code Playgroud)

我得到类似下面的东西,但每次都不一样.

> all.equal(lme(distance ~ age, data=Orthodont), lme(distance ~ age, data=Orthodont))
[1] "Component 4: Component 2: Component 1: Mean relative difference: 1.774149e-08"
[2] "Component 7: Mean relative difference: 0.0003335902"
Run Code Online (Sandbox Code Playgroud)

'有趣'的事情是nlme包(其中lme()一部分)本身是相同的,我卸载并重新安装以确保(包的nlme_3.1-113.zip文件是逐位相同的).

我还不知道还有什么可以深入人心的.任何指针或想法将不胜感激.我也在Revolutions的论坛上发帖,但它似乎比这里少得多......

这是64位Windows 8.1,64位R,如果重要的话,Intel i7-4770 CPU.当前版本的Revolution R(R 3.0.2)和之前的版本(2.15.3)都会产生意想不到的(对我而言)行为.CRAN-R 3.0.1和3.0.2产生相同的结果.

Revolution R的sessionInfo()输出:

> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252 
[2] …
Run Code Online (Sandbox Code Playgroud)

r revolution-r nlme microsoft-r

6
推荐指数
1
解决办法
460
查看次数

Conda 使用 MKL 安装 r-essentials

在我的 RHEL 服务器上,我没有管理员权限,但我可以创建 Conda 环境。我想使用英特尔 MKL(英特尔® 数学核心函数库)创建一个运行 R 的 Conda 环境。

我使用R_defaults.yml创建环境,运行$> conda env create --file R_defaults.yml

name: R_defaults
channels:
  - defaults
  - conda-forge
dependencies:
  - pkgs/r::r-essentials=3.6.0=r36_0
Run Code Online (Sandbox Code Playgroud)

激活环境,启动 R 和 sessionInfo() 我发现没有使用 MKL:

R version 3.6.1 (2019-07-05)
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
Running under: Red Hat Enterprise Linux Server 7.7 (Maipo)

Matrix products: default
BLAS/LAPACK: /home/geiringe/miniconda3/envs/R_r/lib/R/lib/libRblas.so
Run Code Online (Sandbox Code Playgroud)

Microsoft R Open ( https://mran.microsoft.com/download ) 可以与 MKL 一起安装。

Anaconda 似乎改变了对 Microsoft R Open 的看法。2018 年 6 月,据说它成为 Anaconda 发行版的默认 R(https://www.anaconda.com/introducing-microsoft-r-open-as-default-r-for-anaconda-distribution/ …

r intel-mkl conda microsoft-r

6
推荐指数
1
解决办法
1171
查看次数

来自RxSpssData的变量信息中的舍入错误

我发现了我认为MicrosoftR处理来自SPSS的.sav文件的元数据的方式中的错误.

以下是变量视图的摘要:

ColumnA: 1 - Yes, 2 - No
ColumnB: 0.33 - Yes, 0.5 - Maybe, 0.66 - No, 0.99 - Why not, 1.00 - Yes, for sure.
ColumnC: A - Yes, B - No
Run Code Online (Sandbox Code Playgroud)

我的代码:

library(RevoScaleR)

df <- RxSpssData(
  "RoundingTest.sav", 
  stringsAsFactors = FALSE, 
  labelsAsInfo = TRUE, 
  labelsAsLevels = TRUE,
  mapMissingCodes = "none" 
)

test = rxImport(df)
Run Code Online (Sandbox Code Playgroud)

数据读得很好:

  ColumnA ColumnB ColumnC Var0001
1     Yes    0.33     Yes      NA
2      No    0.50     Yes      NA
3     Yes    0.66      No      NA
Run Code Online (Sandbox Code Playgroud)

但是,valueInfoCodes不会:

attr(test$ColumnA, ".rxValueInfoCodes") …
Run Code Online (Sandbox Code Playgroud)

r microsoft-r

5
推荐指数
0
解决办法
196
查看次数

mclapply sendmaster 错误仅与 Rscript

使用从命令行Rscript调用时,我间歇性地收到以下错误mclapply

Error in sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE)) : 
  write error, closing pipe to the master
Run Code Online (Sandbox Code Playgroud)

如果我在 R Studio 或交互式 R 会话中运行完全相同的代码,则不会出现错误。这个错误会在非常大的作业的各种上下文中弹出,每个工作人员必须将非常大的对象返回给小作业。我也试过关闭prescheduling,但它仍然抛出错误。有时,如果我减少mc.cores参数中的线程数,它就会消失。我在 Ubuntu 18.04.1 上使用 Microsoft R Open。它也出现在 Ubuntu 16.04 上。我没有尝试过的一件事是在标准 R 而不是 MRO 中运行代码。

这是我的Rscript -e 'sessionInfo()'

R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.1 LTS

Matrix products: default
BLAS: /opt/microsoft/ropen/3.5.1/lib64/R/lib/libRblas.so
LAPACK: /opt/microsoft/ropen/3.5.1/lib64/R/lib/libRlapack.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] …
Run Code Online (Sandbox Code Playgroud)

parallel-processing r rscript mclapply microsoft-r

5
推荐指数
1
解决办法
929
查看次数

如何使用Microsoft R Open 3.3.2获得rmarkdown 1.2

我正在使用RStudio 1.0.136与Microsoft R Open 3.3.2当我执行文件 - >新文件 - > R Markdown ...它说

rmarkdown 1.2是必需的,但1.1可用

检查getOption("repos")是否指向包含所需软件包版本的CRAN存储库

getOption("repos") 给我这个:

                                                      CRAN 
"https://mran.revolutionanalytics.com/snapshot/2016-11-01" 
                                                 CRANextra 
                      "http://www.stats.ox.ac.uk/pub/RWin" 
Run Code Online (Sandbox Code Playgroud)

我从哪里开始?

r cran r-markdown microsoft-r

4
推荐指数
1
解决办法
4127
查看次数

Microsoft R - 没有包找不到RevoScaleR?

我安装了新的"Microsoft R Open 3.4.0"但我看不到Microsoft R Package,例如RevoScaleR.在这里您可以看到以下错误消息.你可以看到sessionInfo,结果是在线加载了Base-R软件包.

R version 3.4.0 (2017-04-21) -- "You Stupid Darkness"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for …
Run Code Online (Sandbox Code Playgroud)

r microsoft-r

2
推荐指数
1
解决办法
924
查看次数