I try to analyze my data but I have a problem but I can't find the solution. I took singular hessian, cannot calculate s.e. and WARNING: Some eigenvalues of the Hessian are complex, indicating that the Hessian is not symmetrical. I don't know how to fix it. This is my pilot study data to find beta values. Can you help me how can I solve this problem.
Code: Select all
install.packages("apollo")
### Clear memory
rm(list = ls())
### Load Apollo library
library(apollo)
library(tidyverse)
### Initialise code
apollo_initialise()
### Set core controls
apollo_control = list(
modelName = "MNL_Deneme",
modelDescr = "Simple MNL model on mode choice SP data",
indivID = "id"
)
library(readxl)
database = read_excel("001.xlsx")
View(database)
attach(database)
apollo_beta=c (asc_ev = 0,
asc_nokta= 0,
b_ucret_ev= 0,
b_m1ev= 0,
b_m2ev= 0,
b_m3ev= 0,
b_h1ev= 0,
b_h2ev= 0,
b_h3ev= 0,
b_h4ev= 0,
b_s1ev= 0,
b_s2ev= 0,
b_s3ev= 0,
b_s4ev= 0,
b_b1ev= 0,
b_b2ev= 0,
b_ucret_n= 0,
b_m1n= 0,
b_m2n= 0,
b_h1n= 0,
b_h2n= 0,
b_h3n= 0,
b_h4n= 0,
b_a1n= 0,
b_a2n= 0,
b_a3n= 0,
b_a4n= 0,
b_b1n= 0,
b_b2n= 0,
b_u1n= 0,
b_u2n= 0,
b_u3n= 0,
b_u4n= 0
)
apollo_fixed = c("asc_ev","b_m1ev","b_h1ev", "b_s1ev","b_b1ev","b_m1n", "b_h1n","b_a1n","b_b1n","b_u1n")
df<-data.frame(id,dogum,cinsiyet,egitim,is,gelir,plan,olumlu,urun,secim_seti
,metot_ev,hiz_ev,saat_ev,bilgi_ev,
ucret_nokta,metot_nokta,hiz_nokta,acik_nokta,bilgi_nokta,uzaklik_nokta,secim,blok)
apollo_inputs = apollo_validateInputs()
apollo_probabilities=function(apollo_beta, apollo_inputs, functionality="estimate"){
### Attach inputs and detach after function exit
apollo_attach(apollo_beta, apollo_inputs)
on.exit(apollo_detach(apollo_beta, apollo_inputs))
### Create list of probabilities P
P = list()
### List of utilities: these must use the same names as in mnl_settings, order is irrelevant
V = list()
V[['ev']] = asc_ev + b_ucret_ev*ucret_ev + b_m1ev*(metot_ev==0) + b_m2ev*(metot_ev==1) +b_m3ev*(metot_ev==2) +
b_h1ev*(hiz_ev==0) + b_h2ev*(hiz_ev==1) + b_h3ev*(hiz_ev==2) + b_h4ev*(hiz_ev==3) +
b_s1ev*(saat_ev==0) + b_s2ev*(saat_ev==1) + b_s3ev*(saat_ev==2) + b_s4ev*(saat_ev==3) +
b_b1ev*(bilgi_ev==0) + b_b2ev*(bilgi_ev==1)
V[['nokta']] = asc_nokta + b_ucret_n*(ucret_nokta) + b_m1n*(metot_nokta==0) + b_m2n*(metot_nokta==1) +
b_h1n*(hiz_nokta==0) + b_h2n*(hiz_nokta==1) + b_h3n*(hiz_nokta==2) + b_h4n*(hiz_nokta==3) +
b_a1n*(acik_nokta==0) + b_a2n*(acik_nokta==1) + b_a3n*(acik_nokta==2) + b_a4n*(acik_nokta==3) +
b_b1n*(bilgi_nokta==0) +b_b2n*(bilgi_nokta==1) +
b_u1n*(uzaklik_nokta==0) + b_u2n*(uzaklik_nokta==1) + b_u3n*(uzaklik_nokta==2) + b_u4n*(uzaklik_nokta==3)
### Define settings for MNL model component
mnl_settings = list(
alternatives = c(ev=1, nokta=2),
avail = 1,
choiceVar = secim,
V = V)
### Compute probabilities using MNL model
P[["model"]] = apollo_mnl(mnl_settings, functionality)
### Take product across observation for same individual
P = apollo_panelProd(P, apollo_inputs, functionality)
### Prepare and return outputs of function
P = apollo_prepareProb(P, apollo_inputs, functionality)
return(P)
}
# ################################################################# #
#### MODEL ESTIMATION ####
# ################################################################# #
model = apollo_estimate(apollo_beta, apollo_fixed, apollo_probabilities, apollo_inputs)
# ################################################################# #
#### MODEL OUTPUTS ####
# ################################################################# #
apollo_modelOutput(model,modelOutput_settings=list(printPVal=TRUE))
# ----------------------------------------------------------------- #
#---- FORMATTED OUTPUT (TO SCREEN) ----
# ----------------------------------------------------------------- #
apollo_modelOutput(model)
# ----------------------------------------------------------------- #
#---- FORMATTED OUTPUT (TO FILE, using model name) ----
# ----------------------------------------------------------------- #
apollo_saveOutput(model)
RESULTS
Code: Select all
Preparing user-defined functions.
Testing likelihood function...
Overview of choices for MNL model component :
ev nokta
Times available 900.00 900.00
Times chosen 480.00 420.00
Percentage chosen overall 53.33 46.67
Percentage chosen when available 53.33 46.67
Pre-processing likelihood function...
Testing influence of parameters
Starting main estimation
Initial function value: -623.8325
Initial gradient value:
asc_nokta b_ucret_ev b_m2ev b_m3ev b_h2ev b_h3ev b_h4ev b_s2ev b_s3ev b_s4ev b_b2ev
-30.0 -270.0 23.0 -3.0 18.5 2.5 -35.5 4.5 19.5 14.5 20.0
b_ucret_n b_m2n b_h2n b_h3n b_h4n b_a2n b_a3n b_a4n b_b2n b_u2n b_u3n
-2060.0 -17.0 -2.5 -18.5 -44.5 0.5 -1.5 -4.5 -10.0 2.5 -0.5
b_u4n
-26.5
initial value 623.832463
iter 2 value 610.890899
iter 3 value 588.349575
iter 4 value 579.057272
iter 5 value 572.574571
iter 6 value 568.180675
iter 7 value 564.360219
iter 8 value 561.150469
iter 9 value 549.029496
iter 10 value 541.320361
iter 11 value 539.138734
iter 12 value 538.116894
iter 13 value 536.697178
iter 14 value 535.180667
iter 15 value 533.470347
iter 16 value 532.303595
iter 17 value 531.961703
iter 18 value 531.714620
iter 19 value 531.605944
iter 20 value 530.978735
iter 21 value 530.968901
iter 22 value 530.926961
iter 23 value 530.918919
iter 24 value 530.882081
iter 25 value 530.876991
iter 26 value 530.853602
iter 27 value 530.852557
iter 28 value 530.852500
iter 28 value 530.852499
iter 28 value 530.852499
final value 530.852499
converged
Additional convergence test using scaled estimation. Parameters will be scaled by their current estimates
and additional iterations will be performed.
initial value 530.852499
iter 1 value 530.852499
final value 530.852499
converged
Estimated parameters:
Estimate
asc_ev 0.00000
asc_nokta -1.00355
b_ucret_ev -0.05401
b_m1ev 0.00000
b_m2ev -0.18670
b_m3ev -0.47414
b_h1ev 0.00000
b_h2ev 0.37460
b_h3ev 0.02086
b_h4ev -0.55408
b_s1ev 0.00000
b_s2ev 0.40350
b_s3ev 0.07974
b_s4ev 0.22376
b_b1ev 0.00000
b_b2ev 0.52489
b_ucret_n -0.02765
b_m1n 0.00000
b_m2n 0.07634
b_h1n 0.00000
b_h2n -0.02086
b_h3n -0.37460
b_h4n -1.16214
b_a1n 0.00000
b_a2n 0.09933
b_a3n 0.53015
b_a4n 0.58522
b_b1n 0.00000
b_b2n -0.47866
b_u1n 0.00000
b_u2n 0.29916
b_u3n 0.25463
b_u4n -0.08154
Final LL: -530.8525
Calculating log-likelihood at equal shares (LL(0)) for applicable models...
Calculating log-likelihood at observed shares from estimation data (LL(c)) for applicable models...
Calculating LL of each model component...
Calculating other model fit measures
Computing covariance matrix using analytical gradient.
0%....25%....50%....75%...100%
ERROR: Singular Hessian, cannot calculate s.e.
Hessian written to C:/Users/acer/Documents/halil ne olur olsun/MNL_Deneme_hessian.csv
WARNING: Some eigenvalues of the Hessian are complex, indicating that the Hessian is not symmetrical.
Computing score matrix...
> # ################################################################# #
> #### MODEL OUTPUTS ####
> # ################################################################# #
> apollo_modelOutput(model,modelOutput_settings=list(printPVal=TRUE))
Model run by acer using Apollo 0.2.8 on R 4.2.2 for Windows.
www.ApolloChoiceModelling.com
Model name : MNL_Deneme
Model description : Simple MNL model on mode choice SP data
Model run at : 2022-11-26 18:52:35
Estimation method : bfgs
Model diagnosis : successful convergence
Number of individuals : 90
Number of rows in database : 900
Number of modelled outcomes : 900
Number of cores used : 1
Model without mixing
LL(start) : -623.83
LL at equal shares, LL(0) : -623.83
LL at observed shares, LL(C) : -621.83
LL(final) : -530.85
Rho-squared vs equal shares : 0.149
Adj.Rho-squared vs equal shares : 0.1122
Rho-squared vs observed shares : 0.1463
Adj.Rho-squared vs observed shares : 0.1093
AIC : 1107.7
BIC : 1218.16
Estimated parameters : 23
Time taken (hh:mm:ss) : 00:00:1.79
pre-estimation : 00:00:0.74
estimation : 00:00:0.35
post-estimation : 00:00:0.7
Iterations : 31
Unconstrained optimisation.
These outputs have had the scaling used in estimation applied to them.
Estimates:
Estimate s.e. t.rat.(0) p(1-sided) Rob.s.e. Rob.t.rat.(0) p(1-sided)
asc_ev 0.00000 NA NA NA NA NA NA
asc_nokta -1.00355 NA NA NA NA NA NA
b_ucret_ev -0.05401 NA NA NA NA NA NA
b_m1ev 0.00000 NA NA NA NA NA NA
b_m2ev -0.18670 NA NA NA NA NA NA
b_m3ev -0.47414 NA NA NA NA NA NA
b_h1ev 0.00000 NA NA NA NA NA NA
b_h2ev 0.37460 NA NA NA NA NA NA
b_h3ev 0.02086 NA NA NA NA NA NA
b_h4ev -0.55408 NA NA NA NA NA NA
b_s1ev 0.00000 NA NA NA NA NA NA
b_s2ev 0.40350 NA NA NA NA NA NA
b_s3ev 0.07974 NA NA NA NA NA NA
b_s4ev 0.22376 NA NA NA NA NA NA
b_b1ev 0.00000 NA NA NA NA NA NA
b_b2ev 0.52489 NA NA NA NA NA NA
b_ucret_n -0.02765 NA NA NA NA NA NA
b_m1n 0.00000 NA NA NA NA NA NA
b_m2n 0.07634 NA NA NA NA NA NA
b_h1n 0.00000 NA NA NA NA NA NA
b_h2n -0.02086 NA NA NA NA NA NA
b_h3n -0.37460 NA NA NA NA NA NA
b_h4n -1.16214 NA NA NA NA NA NA
b_a1n 0.00000 NA NA NA NA NA NA
b_a2n 0.09933 NA NA NA NA NA NA
b_a3n 0.53015 NA NA NA NA NA NA
b_a4n 0.58522 NA NA NA NA NA NA
b_b1n 0.00000 NA NA NA NA NA NA
b_b2n -0.47866 NA NA NA NA NA NA
b_u1n 0.00000 NA NA NA NA NA NA
b_u2n 0.29916 NA NA NA NA NA NA
b_u3n 0.25463 NA NA NA NA NA NA
b_u4n -0.08154 NA NA NA NA NA NA
> apollo_modelOutput(model)
Model run by acer using Apollo 0.2.8 on R 4.2.2 for Windows.
www.ApolloChoiceModelling.com
Model name : MNL_Deneme
Model description : Simple MNL model on mode choice SP data
Model run at : 2022-11-26 18:52:35
Estimation method : bfgs
Model diagnosis : successful convergence
Number of individuals : 90
Number of rows in database : 900
Number of modelled outcomes : 900
Number of cores used : 1
Model without mixing
LL(start) : -623.83
LL at equal shares, LL(0) : -623.83
LL at observed shares, LL(C) : -621.83
LL(final) : -530.85
Rho-squared vs equal shares : 0.149
Adj.Rho-squared vs equal shares : 0.1122
Rho-squared vs observed shares : 0.1463
Adj.Rho-squared vs observed shares : 0.1093
AIC : 1107.7
BIC : 1218.16
Estimated parameters : 23
Time taken (hh:mm:ss) : 00:00:1.79
pre-estimation : 00:00:0.74
estimation : 00:00:0.35
post-estimation : 00:00:0.7
Iterations : 31
Unconstrained optimisation.
These outputs have had the scaling used in estimation applied to them.
Estimates:
Estimate s.e. t.rat.(0) Rob.s.e. Rob.t.rat.(0)
asc_ev 0.00000 NA NA NA NA
asc_nokta -1.00355 NA NA NA NA
b_ucret_ev -0.05401 NA NA NA NA
b_m1ev 0.00000 NA NA NA NA
b_m2ev -0.18670 NA NA NA NA
b_m3ev -0.47414 NA NA NA NA
b_h1ev 0.00000 NA NA NA NA
b_h2ev 0.37460 NA NA NA NA
b_h3ev 0.02086 NA NA NA NA
b_h4ev -0.55408 NA NA NA NA
b_s1ev 0.00000 NA NA NA NA
b_s2ev 0.40350 NA NA NA NA
b_s3ev 0.07974 NA NA NA NA
b_s4ev 0.22376 NA NA NA NA
b_b1ev 0.00000 NA NA NA NA
b_b2ev 0.52489 NA NA NA NA
b_ucret_n -0.02765 NA NA NA NA
b_m1n 0.00000 NA NA NA NA
b_m2n 0.07634 NA NA NA NA
b_h1n 0.00000 NA NA NA NA
b_h2n -0.02086 NA NA NA NA
b_h3n -0.37460 NA NA NA NA
b_h4n -1.16214 NA NA NA NA
b_a1n 0.00000 NA NA NA NA
b_a2n 0.09933 NA NA NA NA
b_a3n 0.53015 NA NA NA NA
b_a4n 0.58522 NA NA NA NA
b_b1n 0.00000 NA NA NA NA
b_b2n -0.47866 NA NA NA NA
b_u1n 0.00000 NA NA NA NA
b_u2n 0.29916 NA NA NA NA
b_u3n 0.25463 NA NA NA NA
b_u4n -0.08154 NA NA NA NA
> apollo_saveOutput(model)
Old result file "C:/Users/acer/Documents/halil ne olur olsun/MNL_Deneme_output.txt"
renamed to: "C:/Users/acer/Documents/halil ne olur olsun/MNL_Deneme_OLD3_output.txt"
Old result file "C:/Users/acer/Documents/halil ne olur olsun/MNL_Deneme_estimates.csv"
renamed to: "C:/Users/acer/Documents/halil ne olur olsun/MNL_Deneme_OLD3_estimates.csv"
Old result file "C:/Users/acer/Documents/halil ne olur olsun/MNL_Deneme_model.rds"
renamed to: "C:/Users/acer/Documents/halil ne olur olsun/MNL_Deneme_OLD3_model.rds"
Model output saved to C:/Users/acer/Documents/halil ne olur olsun/MNL_Deneme_output.txt
Estimates saved to C:/Users/acer/Documents/halil ne olur olsun/MNL_Deneme_estimates.csv
Model object saved to C:/Users/acer/Documents/halil ne olur olsun/MNL_Deneme.rds