Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • cmxtmixlogit weights

    Hello Stata List,

    I am working with panel data and preparing it for a mixed logit model using cmxtmixlogit. My dataset includes multiple profession alternatives for each individual in each year, creating a structure where each id in each year has 27 profession alternatives. However, when running the cmxtmixlogit model I encounter the following error: "weights must be the same for all observations of a case."

    here is my code (weight variable is :
    wgt_UB_all, npi stands for Non-pecuniary index)

    Code:
    use "${datain}ct1319_cross.dta", replace 
    
    global z_components "z_skills z_autonomy z_support z_stability z_wlbalance z_physical_risk z_psy_risk z_scheduling z_flexibility z_intensity z_ergo"
    
    * Get unique levels of profession2
    levelsof profession2, local(professions)
    
    ** mean wage and npi in each year by profession
    foreach p in `professions' {
        foreach var in z_m_ac_npi wage_m wage_h $z_components {
            * Summarize z_ac_npi for profession `p` and store the result in a local macro
            qui sum `var' if profession2 == `p' & year == 2013, mean
            qui gen mean_`var'`p' = r(mean)
            qui sum `var' if profession2 == `p' & year == 2019, mean
            qui replace mean_`var'`p' = r(mean) if year == 2019  
        }
    }
    
    keep id wage_h wage_m mean_* profession2 year wgt_UB_all dip_cat sexe
    reshape long mean_wage_m mean_wage_h mean_z_m_ac_npi mean_z_skills mean_z_autonomy mean_z_support mean_z_stability mean_z_wlbalance mean_z_physical_risk mean_z_psy_risk mean_z_scheduling mean_z_flexibility mean_z_intensity mean_z_ergo, i(year id) j(profession2d)
    
    gen choice = (profession2d == profession2)
    g dummy_2019 = (year==2019)
    
    foreach var in z_m_ac_npi $z_components {
        cap drop intr_`var'
    gen float intr_`var' = mean_`var' * dummy_2019
    }
    
    cmset id year profession2d
    
    cmxtmixlogit choice [pw = wgt_UB_all], random(mean_z_m_ac_npi mean_wage_h intr_z_m_ac_npi)


    To troubleshoot, I checked for duplicates and confirmed:
    • duplicates report _caseid wgt_UB_all shows exactly 27 copies for each _caseid, which aligns with expectations.
    • duplicates report year id profession2d shows each combination appears only once..
    Given this context, the weights (wgt_UB_all) are assigned correctly and should be consistent within each case defined by _caseid. Yet, the error persists. Could anyone please help identify potential issues or suggest modifications to address this problem? Any insights or advice would be greatly appreciated.

    Thank you in advance for your assistance!
Working...
X