我需要在一个相对较大的数据框架上运行逻辑回归,其中包含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中的累积和的字符串/字符格式的文本而不是数字.应连接不同的文本字段.
例如,在数据框"df"中:
A列包含输入,B列包含所需结果.
A B
1 banana banana
2 boats banana boats
3 are banana boats are
4 awesome banana boats are awesome
Run Code Online (Sandbox Code Playgroud)
目前我通过以下循环解决这个问题
df$B <- ""
for(i in 1:nrow(df)) {
if (length(df[i-1,"A"]) > 0) {
df$B[i] <- paste(df$B[i-1],df$A[i])
} else {
df$B[i] <- df$A[i]
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否存在更优雅/更快的解决方案.
我正试图从plyr转移到dplyr.但是,我仍然无法弄清楚如何在链式dplyr函数中调用自己的函数.
我有一个带有分解ID变量和一个订单变量的数据框.我想按ID拆分帧,按顺序变量排序,并在新列中添加序列.
我的plyr函数看起来像这样:
f <- function(x) cbind(x[order(x$order_variable), ], Experience = 0:(nrow(x)-1))
data <- ddply(data, .(ID_variable), f)
Run Code Online (Sandbox Code Playgroud)
在dplyr我虽然看起来应该是这样的
f <- function(x) cbind(x[order(x$order_variable), ], Experience = 0:(nrow(x)-1))
data <- data %>% group_by(ID_variable) %>% f
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何修改我的dplyr调用以成功传递我自己的函数并获得我的plyr函数提供的相同功能?
编辑:如果我使用这里描述的dplyr公式,它会将对象传递给f.然而,虽然plyr似乎传递了许多不同的表(由ID变量分割),但是dplyr不会为每个组传递一个表,而是传递ENTIRE表(作为某种类型的dplyr对象,其中组被注释),因此当我cbind时体验变量它将计数器从0附加到整个表的长度而不是单个组.
我找到了一种方法来使用这种方法在dplyr中获得相同的功能:
data <- data %>%
group_by(ID_variable) %>%
arrange(ID_variable,order_variable) %>%
mutate(Experience = 0:(n()-1))
Run Code Online (Sandbox Code Playgroud)
但是,我仍然希望学习如何将分组变量分成不同的表传递给dplyr中的函数.
我在dplyr中总结一个数据框时,试图在一个组中找到几个因子变量中最常见的值.我需要一个执行以下操作的公式:
有几个公式可行.但是,我能想到的那些都很慢.快速的那些不方便一次应用于数据帧中的几个变量.我想知道是否有人知道一种与dplyr很好地集成的快速方法.
我尝试了以下方法:
生成样本数据(50000组,100个随机字母)
z <- data.frame(a = rep(1:50000,100), b = sample(LETTERS, 5000000, replace = TRUE))
str(z)
'data.frame': 5000000 obs. of 2 variables:
$ a: int 1 2 3 4 5 6 7 8 9 10 ...
$ b: Factor w/ 26 levels "A","B","C","D",..: 6 4 14 12 3 19 17 19 15 20 ...
Run Code Online (Sandbox Code Playgroud)
"清洁" - 但缓慢的方法1
y <- z %>%
group_by(a) %>%
summarise(c = names(table(b))[which.max(table(b))])
user system elapsed
26.772 2.011 29.568
Run Code Online (Sandbox Code Playgroud)
"清洁" - …
我正在尝试从 R 中的生存包中获取 clogit 回归的可靠标准错误。在此过程中,我尝试使用该选项复制 Stata 命令报告的标准clogit错误vce(robust)。
我的 R 公式是
conditional_logit <- clogit(dependent_variable ~ independent_variable + some_controls + strata(year), method= "exact", data = data_frame)
Run Code Online (Sandbox Code Playgroud)
将参数添加robust = TRUE到函数失败并出现错误:
Error in residuals.coxph(fit2, type = "dfbeta", weighted = TRUE) :
score residuals are not available for the exact method
Run Code Online (Sandbox Code Playgroud)
任何通过三明治或 plm 包提取稳健标准错误(如此处、此处、此处和此处建议)的尝试都会失败并出现相同的错误。类似地,clogit 函数包含一个在使用该方法时停止尝试计算稳健标准误差的条件exact(第 44 行)。但是,conditional_logit$residuals 和conditional_logit$score 存在于clogit 回归对象中。
如果有人能帮助回答以下问题,我将不胜感激:
我几天前刚开始使用VBA。我注意到有些命令似乎在我的计算机上不起作用,我想知道这是否是由于我的计算机设置所致。
我在 Windows 7 上的 PowerPoint 2013 中使用 VBA,通过 MacOSX 上的 VMware Fusion(虚拟机)运行。我需要创建对活动幻灯片的动态引用,但这样做的几种方法破坏了我的代码:
Set oSl = Application.ActiveWindow.View.Slide
Run Code Online (Sandbox Code Playgroud)
(如此处建议的)
Set oSl = ActivePresentation.Slides(ActiveWindow.View.Slide.SlideNumber)
Run Code Online (Sandbox Code Playgroud)
(如此处建议的)
Set oSl = ActiveWindow.Selection.SlideRange.SlideIndex
Run Code Online (Sandbox Code Playgroud)
(如此处建议的)
这些都不适合我。由于我刚刚开始使用 VBA,我只是在代码的不同部分之后插入消息框,并查看何时不再触发这些框 - 在这种情况下总是在我用上面描述的各种其他方法替换的“oSl =”行之后。此外,
Set oSl = ActiveWindow.Selection.SlideRange(1)
Run Code Online (Sandbox Code Playgroud)
也破坏了我的代码(如此处讨论的)
到目前为止所做的工作是
Set oSl = ActivePresentation.SlideS(1)
Run Code Online (Sandbox Code Playgroud)
上面的所有方法都不起作用(但应该)包含“ActiveWindow”。如果您能建议我选择活动幻灯片的方法是否存在错误,或者问题是否可能是由于我的 PowerPoint 在虚拟机上运行而导致 VBA 无法正确访问“ActiveWindow”,那就太好了。如果是这种情况,是否有另一种方法可以在不使用 ActiveWindow 的情况下选择当前活动的幻灯片?
编辑:我正在尝试将其应用于 PowerPoint 中的以下代码。基本上我想要做的是将“oSl = ActivePresentation.SlideS(1)”行替换为一行代码,该代码行并不总是针对幻灯片 1,而是当前处于活动状态的幻灯片。我的问题不在于如何做到这一点——网上有很多关于如何做到这一点的说明。我的问题是为什么这些方法对我不起作用。
Sub SelectionMacro()
Dim oSl As Slide
Dim oSh As Shape
Dim aArrayOfShapes() As Variant
Dim ShapeX …Run Code Online (Sandbox Code Playgroud) 我有许多不同的HTML文件,这些文件包含要在R的knitr报表中合并的格式化表格。不幸的是,在将HTML文件加载到R并将knitr报表中的表格包括在内时,我遇到了一些问题。
HTML文件是使用MS Excel和stargazer库中的“另存为htm”功能创建的。它们可以在任何浏览器中完美显示。我的代码是:
```{r, echo=FALSE, return='asis'}
library(XML)
overview.html <- htmlParse("overview.htm")
print(overview.html)
```
Run Code Online (Sandbox Code Playgroud)
在控制台中打印“概述html”时,我得到了正确的html代码。但是,在编织报表时,输出文档不包含我的代码,并且出现以下错误:
Warning message:
XML content does not seem to be XML: 'overview.htm'
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上述几种变体(使用htmlTreeParse,使用打印类型=“ html”选项等)无济于事。如果有人可以提出一种可行的方法,那将是很棒的。
r ×6
dplyr ×2
knitr ×1
large-data ×1
microsoft-r ×1
mixed-models ×1
performance ×1
plyr ×1
powerpoint ×1
robust ×1
stata ×1
vba ×1
xml ×1