Page 1 of 1

Errors during model estimation for latent class analysis using Apollo Package

Posted: 11 Apr 2022, 23:44
by eunkum
I did a latent class analysis using Apollo Package to examine the following research question: What participant characteristics (e.g. sociodemographic, health status, motivation) play a role in people’s preferences for certain characteristics of a proposed physical activity reward program?
Dependent variable=choice_forced
Independent vairbale=income_recode, age, sex, pain_recode, IPAQ_cat, IPAQ_catGoal1, IPAQ_catGoal2, BMI_recode, intrinsic, loss_score

I am not sure where I can add the dependent variable. In addition, I am not sure how I can run the following code: apollo_inputs = apollo_validateInputs(). I got the following output, including the following error.

> rm(list = ls())
> library(apollo)
> apollo_initialise()
Apollo ignition sequence completed
>
> apollo_control = list(
+ modelName = "Model_3a",
+ modelDescr ="Model 3a",
+ indivID ="PersonID"
+ )
>
> data <-read.table("C:/haysem/data.txt", header=TRUE)
> apollo_beta = c(delta_a = 0,
+ delta_b = 0,
+
+ gamma_income_recode = 0,
+ gamma_pain_recode = 0,
+ gamma_IPAQ_catGoal1 = 0,
+ gamma_IPAQ_catGoal2 = 0,
+ gamma_BMI_recode = 0,
+ gamma_intrinsic = 0,
+ gamma_loss_score = 0,
+ gamma_IPAQ_cat = 0)
> apollo_fixed = c("delta_b")
> apollo_inputs = apollo_validateInputs()
Error in apollo_validateInputs() :
No variable called database found in user workspace (i.e. global environment).
> apollo_lcPars=function(apollo_beta, apollo_inputs){
+ lcpars = list()
+ lcpars[["beta_tt"]] = list(beta_tt_a, beta_tt_b)
+ lcpars[["beta_tc"]] = list(beta_tc_a, beta_tc_b)
+ lcpars[["beta_hw"]] = list(beta_hw_a, beta_hw_b)
+ lcpars[["beta_ch"]] = list(beta_ch_a, beta_ch_b)
+
+ V=list()
+ V[["class_a"]] = delta_a + gamma_income_recode_a*income_recode + gamma_age_a*age + gamma_sex_a*sex + gamma_pain_recode_a*pain_recode + gamma_IPAQ_cat_a*IPAQ_cat + gamma_IPAQ_catGoal1_a*IPAQ_catGoal1 + gamma_IPAQ_catGoal2_a*IPAQ_catGoal2 + gamma_BMI_recode_a*BMI_recode + gamma_intrinsic_a*intrinsic + gamma_loss_score_a*loss_score
+ V[["class_b"]] = delta_b + gamma_income_recode_b*income_recode + gamma_age_b*age + gamma_sex_b*sex + gamma_pain_recode_b*pain_recode + gamma_IPAQ_cat_b*IPAQ_cat + gamma_IPAQ_catGoal1_b*IPAQ_catGoal1 + gamma_IPAQ_catGoal2_b*IPAQ_catGoal2 + gamma_BMI_recode_b*BMI_recode + gamma_intrinsic_b*intrinsic + gamma_loss_score_b*loss_score
+ classAlloc_settings = list(
+ classes = c(class_a=1, class_b=2),
+ utilities = V
+ )
+ lcpars[["pi_values"]] = apollo_classAlloc(classAlloc_settings)
+
+ return(lcpars)
+ }
> apollo_probabilities=function(apollo_beta, apollo_inputs, functionality="estimate"){
+ apollo_attach(apollo_beta, apollo_inputs)
+ on.exit(apollo_detach(apollo_beta, apollo_inputs))
+ P = list()
+ mnl_settings = list(
+ alternatives = c(alt1=1, alt2=2),
+ avail = list(alt1=1, alt2=1),
+ choiceVar = choice
+ )
+
+ for(s in 1:2){
+ V=list()
+ V[["alt1"]] = asc_1 + beta_tc[[s]]*tc1 + beta_tt[[s]]*tt1 + beta_hw[[s]]*hw1 + beta_ch[[s]]*ch1
+ V[["alt2"]] = asc_2 + beta_tc[[s]]*tc2 + beta_tt[[s]]*tt2 + beta_hw[[s]]*hw2 + beta_ch[[s]]*ch2
+ mnl_settings$utilities = V
+ mnl_settings$componentName = paste0("Class_",s)
+ P[[paste0("Class_",s)]] = apollo_mnl(mnl_settings, functionality)
+ P[[paste0("Class_",s)]] = apollo_panelProd(P[[paste0("Class_",s)]], apollo_inputs ,functionality)
+
+ }
+ lc_settings = list(inClassProb = P, classProb=pi_values)
+ P[["model"]] = apollo_lc(lc_settings, apollo_inputs, functionality)
+
+ P = apollo_prepareProb(P, apollo_inputs, functionality)
+ return(P)
+ }
>
> model = apollo_estimate(apollo_beta,
+ apollo_fixed,
+ apollo_probabilities,
+ apollo_inputs)
Error in apollo_estimate(apollo_beta, apollo_fixed, apollo_probabilities, :
object 'apollo_inputs' not found
>

Re: Errors during model estimation for latent class analysis using Apollo Package

Posted: 15 Apr 2022, 11:07
by stephanehess
The error message is clear. it says

Code: Select all

Error in apollo_validateInputs() :
No variable called database found in user workspace (i.e. global environment).
Your data needs to be called database