1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| =======================================================
L4<-function(par){
beta<-par[1]
theta<-par[2]
alpha1<-par[3]
alpha2<-par[4]
alpha3<-par[5]
alpha4<-par[6]
pi<-par[7]
sigma01<-par[8]
#beta doit etre entre -1 et 0 à cause des log(beta) plus tard
#sigma doit être entre beta et -beta car sigma^2 < beta^2 a cause de denom
denom<-(beta^2-sigma01^2)
# Denom doit être différent de 0 car au dénominateur plus tard
u0<-tau
alphas<-alpha1*educ+alpha2*age+alpha3*sex+alpha4*concern
om<- list()
for (i in 1:R)
{
om[[i]]<-c(exp(alphas-u0[i])
+exp(theta)*(travcost-pt1)
+exp(pi)*pt1)
# om doit être toujours positif
}
omega<- list()
for (i in 1:R)
{
omega[[i]]<-c(log(om[[i]])
+(1+beta)*(log(1+beta)-theta-log(travcost))
+beta*alphas-beta*log(-beta))
}
OMEGA<-do.call(cbind,omega)
sp<-matrix(0, nrow=507, ncol=R)
for (i in 1:507)
{
sp[i,]<-pnorm((OMEGA[i,]-sigma01*u0)/sqrt(denom))
}
SP<-rowMeans(sp)
#SP est une proba donc entre 0 et 1
mSP<-1-SP
S<-sum(y1*log(SP)+(1-y1)*log(mSP))
return(S)
}
====================================================== |
Partager