Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在R中执行逻辑回归_R_Logistic Regression_Glm_Logistf - Fatal编程技术网

无法在R中执行逻辑回归

无法在R中执行逻辑回归,r,logistic-regression,glm,logistf,R,Logistic Regression,Glm,Logistf,我正在data.frame(11359行,137列)上尝试逻辑回归。data.frame包含Y(一个因变量)和预测器(136个自变量)。所有变量都是二进制的 我根据“我的数据”data.frame创建的公式是f=as.formula(粘贴('y~',粘贴(colnames(我的数据)[c(3:52,54:133,138:143)],折叠='+'))。 我应用了glm、logistf和pmlr,如下所示 glm(f,family=binomial(link=“logit”),data=my\u

我正在data.frame(11359行,137列)上尝试逻辑回归。data.frame包含Y(一个因变量)和预测器(136个自变量)。所有变量都是二进制的

我根据“我的数据”data.frame创建的公式是
f=as.formula(粘贴('y~',粘贴(colnames(我的数据)[c(3:52,54:133,138:143)],折叠='+'))
。 我应用了glm、logistf和pmlr,如下所示

  • glm(f,family=binomial(link=“logit”),data=my\u data)
  • logistf(f,我的数据)
  • pmlr(f,data=my_data,method=“likelion”,joint=TRUE)
Glm函数估计一些参数,但给出
警告消息:
glm.fit:拟合概率数值为0或1
。我发现这条消息是由于分离问题而生成的,所以我尝试了logistf和pmlr函数

使用logistf,我在50小时后没有得到任何结果,所以我决定终止te过程。(cpu使用率为23-27%,前10小时内存使用率约为1100mb,然后为2-3mb)

对于pmlr,我得到了这个
错误:无法分配大小为28.9GB的向量

我尝试了基于137个变量中的10个的logistf和pmlr来检查问题是否出在预测因子的数量上,我得到了相同的结果。Logistf“永远”工作,pmlr给出了相同类型的错误和不同大小的向量(比以前更大!!!!,如果我没记错的话,大约45 Gb)

我是否应该更新笔记本电脑的RAM以执行此计算、查找其他功能(如果有其他程序包用于惩罚逻辑回归)或是其他类型的问题,例如大量变量

Windows 10 x64,处理器:i3-2.4GHz,Ram:8.00Gb,R版本:x64 3.4.0,Rstudio:1.0.143。

biglm创建一个线性模型对象,该对象只使用p^2内存来存储p变量。可以使用update使用更多数据对其进行更新。这允许对大于内存的数据集进行线性回归

比格尔姆 创建仅使用 p^2用于p变量的内存

比格尔姆 用法


R中向量的最大大小有一个限制,即2^31-1。可能您的数据超出了此限制。不管你的机器是什么,这个大小是R中向量的极限。如果你的问题与此相关,唯一的方法就是使用其他算法,包括分解数据和容忍模型的准确性。尝试使用
speedglm
:你将如何处理所有预测值:作为一名替补,可能会通过套索回归将其丢弃,看看会出现哪些预测值?请参见
?glmnet
bigglm(formula, data, family=gaussian(),...)
## S3 method for class
'
data.frame
'
bigglm(formula, data,...,chunksize=5000)
## S3 method for class
'
function
'
bigglm(formula, data, family=gaussian(),
weights=NULL, sandwich=FALSE, maxit=8, tolerance=1e-7,
start=NULL,quiet=FALSE,...)
## S3 method for class
'
RODBC
'
bigglm(formula, data, family=gaussian(),
tablename, ..., chunksize=5000)
## S4 method for signature
'
ANY,DBIConnection
'
bigglm(formula, data, family=gaussian(),
tablename, ..., chunksize=5000