Try increase the initial value of sigma to 10 or even 100.
Anyway, your specification does not look correct. You need to integrate the product of the probabilities, and then take the log.
> On 10 Mar 2025, at 20:18, ענבל גליקמן <
inba...@gmail.com> wrote:
>
> : :I tried using the method from the explanation file you sent me, and I formulated the model as follows
> tau1_1 = Beta('tau1_1', -1, None, None, 0) # סף ראשון עבור PN1
> tau1_2 = Beta('tau1_2', 0, None, None, 0) # סף שני עבור PN1
> tau1_3 = Beta('tau1_3', 1, None, None, 0) # סף שלישי עבור PN1
>
> tau2_1 = Beta('tau2_1', -1, None, None, 0) # סף ראשון עבור PN2
> tau2_2 = Beta('tau2_2', 0, None, None, 0) # סף שני עבור PN2
> tau2_3 = Beta('tau2_3', 1, None, None, 0) # סף שלישי עבור PN2
>
> tau3_1 = Beta('tau3_1', -1, None, None, 0) # סף ראשון עבור PN3
> tau3_2 = Beta('tau3_2', 0, None, None, 0) # סף שני עבור PN3
> tau3_3 = Beta('tau3_3', 1, None, None, 0) # סף שלישי עבור PN3
>
> tau4_1 = Beta('tau4_1', -1, None, None, 0) # סף ראשון עבור PN4
> tau4_2 = Beta('tau4_2', 0, None, None, 0) # סף שני עבור PN4
> tau4_3 = Beta('tau4_3', 1, None, None, 0) # סף שלישי עבור PN4
>
>
> # === משתנה מקרי (Random Variable) בתוך אינטגרציה ===
> omega = RandomVariable('omega')
> density = dist.normalpdf(omega) # פונקציית צפיפות של ההתפלגות הנורמלית
>
> # === משתנה חבוי עם משתנה מקרי omega ===
> LV = (
> Beta('LAMBDA_1', 1, None, None, 1) * PN1 +
> Beta('LAMBDA_2', 1, None, None, 0) * PN2 +
> Beta('LAMBDA_3', 1, None, None, 0) * PN3 +
> Beta('LAMBDA_4', 1, None, None, 0) * PN4 +
> Beta('SIGMA_err', 1, None, None, 0) * omega # תוספת רעש רנדומלי
> )
>
> # === הסתברות של מודל המדידה ===
> # ספים עבור PN1
> P_PN1_1 = bioNormalCdf(tau1_1 - LV)
> P_PN1_2 = bioNormalCdf(tau1_2 - LV) - bioNormalCdf(tau1_1 - LV)
> P_PN1_3 = bioNormalCdf(tau1_3 - LV) - bioNormalCdf(tau1_2 - LV)
> P_PN1_4 = 1 - bioNormalCdf(tau1_3 - LV)
>
> # ספים עבור PN2
> P_PN2_1 = bioNormalCdf(tau2_1 - LV)
> P_PN2_2 = bioNormalCdf(tau2_2 - LV) - bioNormalCdf(tau2_1 - LV)
> P_PN2_3 = bioNormalCdf(tau2_3 - LV) - bioNormalCdf(tau2_2 - LV)
> P_PN2_4 = 1 - bioNormalCdf(tau2_3 - LV)
>
> # ספים עבור PN3
> P_PN3_1 = bioNormalCdf(tau3_1 - LV)
> P_PN3_2 = bioNormalCdf(tau3_2 - LV) - bioNormalCdf(tau3_1 - LV)
> P_PN3_3 = bioNormalCdf(tau3_3 - LV) - bioNormalCdf(tau3_2 - LV)
> P_PN3_4 = 1 - bioNormalCdf(tau3_3 - LV)
>
> # ספים עבור PN4
> P_PN4_1 = bioNormalCdf(tau4_1 - LV)
> P_PN4_2 = bioNormalCdf(tau4_2 - LV) - bioNormalCdf(tau4_1 - LV)
> P_PN4_3 = bioNormalCdf(tau4_3 - LV) - bioNormalCdf(tau4_2 - LV)
> P_PN4_4 = 1 - bioNormalCdf(tau4_3 - LV)
>
>
> loglike_PN1 = (
> (PN1 == 1) * log(P_PN1_1) +
> (PN1 == 2) * log(P_PN1_2) +
> (PN1 == 3) * log(P_PN1_3) +
> (PN1 == 4) * log(P_PN1_4)
> )
>
> loglike_PN2 = (
> (PN2 == 1) * log(P_PN2_1) +
> (PN2 == 2) * log(P_PN2_2) +
> (PN2 == 3) * log(P_PN2_3) +
> (PN2 == 4) * log(P_PN2_4)
> )
>
> loglike_PN3 = (
> (PN3 == 1) * log(P_PN3_1) +
> (PN3 == 2) * log(P_PN3_2) +
> (PN3 == 3) * log(P_PN3_3) +
> (PN3 == 4) * log(P_PN3_4)
> )
>
> loglike_PN4 = (
> (PN4 == 1) * log(P_PN4_1) +
> (PN4 == 2) * log(P_PN4_2) +
> (PN4 == 3) * log(P_PN4_3) +
> (PN4 == 4) * log(P_PN4_4)
> )
>
> loglike_measurement = loglike_PN1 + loglike_PN2 + loglike_PN3 + loglike_PN4
> V1 = BTime_car * CarTDispValue # רכב
> V2 = ASC_PT + BTime_PT * PTTDispValue + BCost_PT * EuroPTCValue + BProEnv_PT * LV # תחבורה ציבורית
> V3 = ASC_Bike + BTime_Bike * BikeTime_1 + BProEnv_Bike * LV # אופניים
> V4 = ASC_Walk + BTime_Walk * WalkTime_1 + BProEnv_Walk * LV # הליכה
>
> # מיפוי תועלות
> V = {1: V1, 2: V2, 3: V3, 4: V4}
>
> # פונקציית הסתברות כוללת (מודל המדידה + מודל הבחירה + הצפיפות של omega)
> logprob = Integrate(
> loglike_measurement + models.loglogit(V, {1: av1, 2: av2, 3: av3, 4: av4}, Choice) + log(density),
> 'omega'
> : The following error occurs
> The norm of the gradient at ASC_Bike=0, ASC_PT=0, ASC_Walk=0, BCost_PT=0, BProEnv_Bike=0, BProEnv_PT=0, BProEnv_Walk=0, BTime_Bike=0, BTime_PT=0, BTime_Walk=0, BTime_car=0, LAMBDA_2=1, LAMBDA_3=1, LAMBDA_4=1, SIGMA_err=1 is inf: g=4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244, 4.2e+244
>
> raise ValueError
> ( "array must not contain infs or NaNs")
> ValueError: array must not contain infs or NaNs
>
> Needless to say, there are no missing or infinite values in my data file
> ... I really need help resolving this issue. I’ve been stuck for many daysThanks a lot!
>
> בתאריך יום ב׳, 10 במרץ 2025 ב-9:33 מאת Michel Bierlaire <
michel.b...@epfl.ch>: