微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在没有太多 RAM 的情况下通过多次迭代运行回归的策略

如何解决在没有太多 RAM 的情况下通过多次迭代运行回归的策略

我有一个数据库(872 个 obs。27 个变量)。

但是我需要用这个基数进行的分析非常繁重,因为它需要分析许多变量之间的迭代。

我一直在尝试使用 Lavaan 包进行确证因子分析 (CFA)。 但是,该函数在运行一天后在 4.521 次迭代时停止运行。使用Stata,计算机在一段时间后重新启动。

当它结束时(在 R 中),我有一个 200mb 的 df,以及控制台消息:

Warning messages:
1: In lav_data_full(data = data,group = group,cluster = cluster,:
  lavaan WARNING: some ordered categorical variable(s) have more than 12 levels: idade_coop n_pac membros cs_sobre_cooperados soma_pl_deposito ativocomp pl_sobre_ativos roa
2: In lav_samplestats_step2(UNI = FIT,wt = wt,ov.names = ov.names,:
  lavaan WARNING: correlation between variables sul and sudeste is (nearly) 1.0
3: In lav_samplestats_step2(UNI = FIT,:
  lavaan WARNING: correlation between variables ativocomp and soma_pl_deposito is (nearly) 1.0
4: In lav_model_estimate(lavmodel = lavmodel,lavpartable = lavpartable,:
  lavaan WARNING: the optimizer warns that a solution has NOT been found!
5: In lav_model_estimate(lavmodel = lavmodel,:
  lavaan WARNING: the optimizer warns that a solution has NOT been found!
6: In lav_model_estimate(lavmodel = lavmodel,:
  lavaan WARNING: the optimizer warns that a solution has NOT been found!
7: In lav_model_estimate(lavmodel = lavmodel,:
  lavaan WARNING: the optimizer warns that a solution has NOT been found!`

当我尝试运行 summary 时,我得到:lavaan 0.6-7 did NOT end normally after 4521 iterations

我认为它是由于内存不足而停止运行,因为在 Stata 中,计算机只是重新启动。

我的代码示例:

# Biblioteca ----
library(tidyverse)
library(haven)
library(semPlot)
library(lavaan)

# importando base ----
base <- read_dta("base.dta")

# Rodando o CFA ----

# Atribuindo grupos
mod_cfa <- 'AIL =~ idade_coop + n_pac + sudeste + sul + centro + norte + nordeste
            CONS_SUP =~ reunioes_ano + estrutura_governanca + membros + comite
            ESTR_CAP =~ cs_sobre_cooperados + soma_pl_deposito + ativocomp + pl_sobre_ativos + roa'

# Rodando cfa
cfa_coop <- cfa(mod_cfa,data = base,missing = "default",estimator = "WLSMV",orthogonal = FALSE,ordered = names(base)
)

# Results
summary(cfa_coop,standardized = T,fit.measures = T,modindices = F)

fitMeasures(cfa_coop,c("chisq","df","pvalue","cfi","tli","rmsea"))

我的基地示例:

structure(list(cnpj = c("554656546","767867868687","132131232","876768","786765","786575","78678686","65767568","45678","8675867"),niveis_superv = c("2","2","0","0"),classe_bc = c("02","02","01","01"),idade_coop = c(22,22,21,21),n_pac = c(1,10,11,1,3,13,4,1),sudeste = c(0,sul = c(0,0),centro = c(0,nordeste = c(1,norte = c(0,atuacao_regional = c(1,atuacao_estadual = c(0,atuacao_nacional = c(0,qtd_cooperados = c(1288,3461,11310,1203,4530,3274,7954,3090,983,633),auditor = c("0","1","1"),contratar_auditoria_ind = c("2","2"),reunioes_ano = c(12,12,12),estrutura_governanca = c("3","3","3"),membros = c(9,7,16,6,9,15,3),comite = c("0",cs_sobre_cooperados = c(6324.9228515625,5602.01416015625,6778.712890625,790.086608886719,1236.85620117188,2393.3583984375,6248.63232421875,6032.5859375,9310.8828125,1582.30786132812),soma_pl_deposito = c(27017868,75570352,523851488,1025653.1875,6256179,46703636,409542080,60845500,10978892,1100099.625),ativocomp = c(27371496,143889792,535524864,1117028.25,7135122.5,63281840,429233920,93440432,11219289,1256903.25),pl_sobre_ativos = c(0.195353165268898,0.0269169881939888,0.0544663555920124,0.611539125442505,0.440605372190475,0.0862450525164604,0.0495623573660851,0.0553100071847439,0.432251751422882,0.297396898269653),roa = c(0.0260528121143579,0.0159006342291832,0.0089608347043395,0.027274627238512,0.0233467519283295,0.00636459980159998,0.0053424290381372,-0.0262128747999668,0.0410496257245541,0.0629174262285233),deposito_sobre_ativo = c(0.636883497238159,0.341013759374619,0.805505573749542,0.594665348529816,0.818691551685333,0.405729651451111,0.0734363198280334,capital_social = c(8146501,19388572,76667240,950474.1875,5602958.5,7835855,49701624,18640690,9152598,1001600.875
    )),row.names = c(NA,-10L),class = c("tbl_df","tbl","data.frame"
))

PS:我知道你有类似的问题,但它们是在基数很大的情况下处理的,而不是在回归对 ram 要求很高的情况下处理。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。