Announcement

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

  • No observation error when creating new variables

    Dear Stata users!

    I am having a problem and looking forward to your help. You can see one part of my data set as below. I am using nested logit model and need to classify 50 altenatives(province_name) into 6 nests (Red River Delta, North Midlands, North Centrals, Central Higlands, South East, Mekong River) by creating a new variable "type".

    In order to do this, my code is:
    nlogitgen type=province_name (Red River Delta: Vinhphuc province|Quangninh province|Hungyen prvince|Haiduong province|Hanam province|Haiphong city|Ninhbinh province|Hanoi city|Bacninh province|Namdinh province|Thaibinh province, North Midlands: Phutho province| Thainguyen province|Bacgiang province|Backan province|Yenbai province|Langson province|Hoabinh province, North Centrals: Quangnam province|Quangngai province|Thanhhoa province|Phuyen province|Danang city|Nghean province |Khanhhoa province|Binhthuan province|Hatinh province|Quangbinh province|Quangtri province|Thuathienhue province|Binhdinh province, Central Highlands: Lamdong province, South East: Binhphuoc province|Dongnai province|Tayninh province|Hochiminh city|Binhduong province| Ba Ria -Vung Tau, Mekong River: Bentre province|Dongthap province|Longan province|Vinhlong province|Tiengiang province|Travinh province|Angiang province|Kiengiang province|Cantho city|Haugiang province|Soctrang province|Baclieu province)

    I follow the example in page 8-11 of this link: cmnlogit.pdf (stata.com)

    However, I got the error: no observations for province_name == Vinhphuc
    r(198);

    Here is my data sample.
    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str10 tax_code str2 province_code float province_chosen str22 province_name
    "0101744855" "31" 0 "Haiphong city"         
    "0101744855" "27" 0 "Bacninh province"      
    "0101744855" "30" 0 "haiduong province"     
    "0101744855" "22" 0 "Quangninh province"    
    "0101744855" "34" 0 "Thaibinh province"     
    "0101744855" "54" 0 "Phuyen province"       
    "0101744855" "26" 0 "Vinhphuc province"     
    "0101744855" "01" 1 "Hanoi city"            
    "0101744855" "86" 0 "Vinhlong province"     
    "0101744855" "35" 0 "Hanam province"        
    "0101744855" "19" 0 "Thainguyen province"   
    "0101744855" "37" 0 "Ninhbinh province"     
    "0101744855" "80" 0 "Longan province"       
    "0101744855" "87" 0 "Dongthap province"     
    "0101744855" "24" 0 "Bacgiang province"     
    "0101744855" "83" 0 "Bentre province"       
    "0101744855" "72" 0 "Tayninh province"      
    "0101744855" "82" 0 "Tiengiang province"    
    "0101744855" "06" 0 "Backan province"       
    "0101744855" "68" 0 "Lamdong province"      
    "0101744855" "36" 0 "namdinh province"      
    "0101744855" "77" 0 "Baria-vungtau province"
    "0101744855" "74" 0 "Binhduong province"    
    "0101744855" "49" 0 "Quangnam province"     
    "0101744855" "79" 0 "Hochiminh city"        
    "0101744855" "33" 0 "Hungyen prvince"       
    "0101744855" "48" 0 "Danang city"           
    "0101744855" "40" 0 "Nghean province"       
    "0101744855" "25" 0 "Phutho province"       
    "0101744855" "51" 0 "Quangngai province"    
    "0101744855" "38" 0 "Thanhhoa province"     
    "0101744855" "75" 0 "Dongnai province"      
    "0101744855" "70" 0 "Binhphuoc province"    
    "0107952393" "40" 0 "Nghean province"       
    "0107952393" "37" 0 "Ninhbinh province"     
    "0107952393" "31" 0 "Haiphong city"         
    "0107952393" "22" 0 "Quangninh province"    
    "0107952393" "83" 0 "Bentre province"       
    "0107952393" "01" 1 "Hanoi city"            
    "0107952393" "30" 0 "haiduong province"     
    "0107952393" "19" 0 "Thainguyen province"   
    "0107952393" "36" 0 "namdinh province"      
    "0107952393" "48" 0 "Danang city"           
    "0107952393" "68" 0 "Lamdong province"      
    "0107952393" "75" 0 "Dongnai province"      
    "0107952393" "70" 0 "Binhphuoc province"    
    "0107952393" "35" 0 "Hanam province"        
    "0107952393" "86" 0 "Vinhlong province"     
    "0107952393" "27" 0 "Bacninh province"      
    "0107952393" "51" 0 "Quangngai province"    
    "0107952393" "79" 0 "Hochiminh city"        
    "0107952393" "87" 0 "Dongthap province"     
    "0107952393" "33" 0 "Hungyen prvince"       
    "0107952393" "80" 0 "Longan province"       
    "0107952393" "38" 0 "Thanhhoa province"     
    "0107952393" "25" 0 "Phutho province"       
    "0107952393" "26" 0 "Vinhphuc province"     
    "0107952393" "82" 0 "Tiengiang province"    
    "0107952393" "06" 0 "Backan province"       
    "0107952393" "49" 0 "Quangnam province"     
    "0107952393" "54" 0 "Phuyen province"       
    "0107952393" "24" 0 "Bacgiang province"     
    "0107952393" "77" 0 "Baria-vungtau province"
    "0107952393" "74" 0 "Binhduong province"    
    "0107952393" "72" 0 "Tayninh province"      
    "0107952393" "34" 0 "Thaibinh province"     
    "0107997813" "72" 0 "Tayninh province"      
    "0107997813" "49" 0 "Quangnam province"     
    "0107997813" "54" 0 "Phuyen province"       
    "0107997813" "86" 0 "Vinhlong province"     
    "0107997813" "24" 0 "Bacgiang province"     
    "0107997813" "31" 0 "Haiphong city"         
    "0107997813" "38" 0 "Thanhhoa province"     
    "0107997813" "30" 0 "haiduong province"     
    "0107997813" "34" 0 "Thaibinh province"     
    "0107997813" "68" 0 "Lamdong province"      
    "0107997813" "27" 0 "Bacninh province"      
    "0107997813" "83" 0 "Bentre province"       
    "0107997813" "37" 0 "Ninhbinh province"     
    "0107997813" "06" 0 "Backan province"       
    "0107997813" "75" 0 "Dongnai province"      
    "0107997813" "74" 0 "Binhduong province"    
    "0107997813" "01" 1 "Hanoi city"            
    "0107997813" "22" 0 "Quangninh province"    
    "0107997813" "19" 0 "Thainguyen province"   
    "0107997813" "36" 0 "namdinh province"      
    "0107997813" "25" 0 "Phutho province"       
    "0107997813" "70" 0 "Binhphuoc province"    
    "0107997813" "33" 0 "Hungyen prvince"       
    "0107997813" "82" 0 "Tiengiang province"    
    "0107997813" "40" 0 "Nghean province"       
    "0107997813" "51" 0 "Quangngai province"    
    "0107997813" "48" 0 "Danang city"           
    "0107997813" "80" 0 "Longan province"       
    "0107997813" "26" 0 "Vinhphuc province"     
    "0107997813" "77" 0 "Baria-vungtau province"
    "0107997813" "35" 0 "Hanam province"        
    "0107997813" "87" 0 "Dongthap province"     
    "0107997813" "79" 0 "Hochiminh city"        
    "0108058196" "70" 0 "Binhphuoc province"    
    end
    I then tried to fix by converting province_name from string to numeric by using command: encode province_name, gen(province) and run similar command.

    nlogitgen type=province(Red River Delta: Vinhphuc province|Quangninh province|Hungyen prvince|Haiduong province|Hanam province|Haiphong city|Ninhbinh province|Hanoi city|Bacninh province|Namdinh province|Thaibinh province, North Midlands: Phutho province| Thainguyen province|Bacgiang province|Backan province|Yenbai province|Langson province|Hoabinh province, North Centrals: Quangnam province|Quangngai province|Thanhhoa province|Phuyen province|Danang city|Nghean province |Khanhhoa province|Binhthuan province|Hatinh province|Quangbinh province|Quangtri province|Thuathienhue province|Binhdinh province, Central Highlands: Lamdong province, South East: Binhphuoc province|Dongnai province|Tayninh province|Hochiminh city|Binhduong province| Ba Ria -Vung Tau, Mekong River: Bentre province|Dongthap province|Longan province|Vinhlong province|Tiengiang province|Travinh province|Angiang province|Kiengiang province|Cantho city|Haugiang province|Soctrang province|Baclieu province)

    but still get the error
    (value label dereference "Vinhphuc":province not found)
    no observations for province == Vinhphuc
    r(198);


    I really look forward to your help.

    Thanks a lot.

    Sophie.

  • #2
    It seems to be mostly about spaces within the names and group names. If you take them out or replace them with an underscore, it should work. I have not used this command before but I did look at the manual you cited, it does look like their restaurant is an encoded numeric variable (aka, not string), so here I also converted them.

    And to keep the code simple, I only keep a few options for each regions, instead of listing all of them:

    Code:
    gen p_no_space = subinstr(province_name, " ", "_", .)
    encode p_no_space, gen(pname2)
    
    nlogitgen type=pname2 (RedRiverDelta: Vinhphuc_province|Quangninh_province, ///
    NorthMidlands: Phutho_province|Thainguyen_province, ///
    NorthCentrals: Quangnam_province|Quangngai_province, ///
    CentralHighlands: Lamdong_province, ///
    SouthEast: Binhphuoc_province|Dongnai_province, ///
    MekongRiver: Bentre_province|Dongthap_province)

    Comment


    • #3
      Hi Ken Chui

      Thank you so much for your reply. Did you try your code? It tried the solutions you suggested but it did not work.

      Comment


      • #4
        I can't see how Ken Chui could possibly try his code on your dataset. Please read https://www.statalist.org/forums/help#stata and then give more details on "did not work".

        Comment


        • #5
          Thanks Nick Cox. I am really sorry for my bad. I did mess up. Ken Chui's code worked for the dataset in #1. Thank you Ken Chui. I should have checked that before asking for help again.

          I realized I had tried Ken Chui's code on the modified dataset in which I take out space by not including "province" and "city" after the name. For example, "Hanoi" instead of "Hanoi city". Here is the modified dataset (no space in name)

          Code:
          * Example generated by -dataex-. To install: ssc install dataex
          clear
          input str10 tax_code str2 province_code str22 province_name
          "0101545803" "35" "Hanam "      
          "0101545803" "01" "Hanoi "      
          "0101545803" "74" "Binhduong"  
          "0101545803" "19" "Thainguyen"  
          "0101545803" "42" "Hatinh"      
          "0101545803" "72" "Tayninh"    
          "0101545803" "33" "Hungyen "    
          "0101545803" "82" "Tiengiang"  
          "0101545803" "26" "Vinhphuc"    
          "0101545803" "37" "Ninhbinh "  
          "0101545803" "83" "Bentre"      
          "0101545803" "24" "Bacgiang"    
          "0101545803" "56" "Khanhhoa"    
          "0101545803" "86" "Vinhlong"    
          "0101545803" "80" "Longan"      
          "0101545803" "60" "Binhthuan"  
          "0101545803" "34" "Thaibinh "  
          "0101545803" "51" "Quangngai"  
          "0101545803" "93" "Haugiang"    
          "0101545803" "40" "Nghean"      
          "0101545803" "22" "Quangninh"  
          "0101545803" "15" "Yenbai "    
          "0101545803" "49" "Quangnam"    
          "0101545803" "46" "Thuathienhue"
          "0101545803" "44" "Quangbinh"  
          "0101545803" "70" "Binhphuoc"  
          "0101545803" "27" "Bacninh "    
          "0101545803" "89" "Angiang"    
          "0101545803" "92" "Cantho"      
          "0101545803" "38" "Thanhhoa"    
          "0101545803" "25" "Phutho"      
          "0101545803" "95" "Baclieu"    
          "0101545803" "30" "Haiduong "  
          "0101545803" "31" "Haiphong "  
          "0101545803" "77" "Bariavungtau"
          "0101545803" "75" "Dongnai"    
          "0101545803" "79" "Hochiminh"  
          "0101545803" "36" "Namdinh "    
          "0101545803" "17" "Hoabinh"    
          "0101545803" "45" "Quangtri"    
          "0101545803" "48" "Danang"      
          "0101744855" "35" "Hanam "      
          "0101744855" "49" "Quangnam"    
          "0101744855" "27" "Bacninh "    
          "0101744855" "87" "Dongthap"    
          "0101744855" "70" "Binhphuoc"  
          "0101744855" "48" "Danang"      
          "0101744855" "01" "Hanoi "      
          "0101744855" "36" "Namdinh "    
          "0101744855" "25" "Phutho"      
          "0101744855" "74" "Binhduong"  
          "0101744855" "68" "lamdong"    
          "0101744855" "19" "Thainguyen"  
          "0101744855" "77" "Bariavungtau"
          "0101744855" "82" "Tiengiang"  
          "0101744855" "80" "Longan"      
          "0101744855" "51" "Quangngai"  
          "0101744855" "06" "Backan "    
          "0101744855" "34" "Thaibinh "  
          "0101744855" "38" "Thanhhoa"    
          "0101744855" "40" "Nghean"      
          "0101744855" "30" "Haiduong "  
          "0101744855" "86" "Vinhlong"    
          "0101744855" "31" "Haiphong "  
          "0101744855" "72" "Tayninh"    
          "0101744855" "75" "Dongnai"    
          "0101744855" "83" "Bentre"      
          "0101744855" "33" "Hungyen "    
          "0101744855" "54" "Phuyen"      
          "0101744855" "24" "Bacgiang"    
          "0101744855" "79" "Hochiminh"  
          "0101744855" "26" "Vinhphuc"    
          "0101744855" "22" "Quangninh"  
          "0101744855" "37" "Ninhbinh "  
          "0103975287" "60" "Binhthuan"  
          "0103975287" "89" "Angiang"    
          "0103975287" "20" "Langson "    
          "0103975287" "75" "Dongnai"    
          "0103975287" "46" "Thuathienhue"
          "0103975287" "83" "Bentre"      
          "0103975287" "84" "Travinh"    
          "0103975287" "80" "Longan"      
          "0103975287" "79" "Hochiminh"  
          "0103975287" "33" "Hungyen "    
          "0103975287" "70" "Binhphuoc"  
          "0103975287" "34" "Thaibinh "  
          "0103975287" "72" "Tayninh"    
          "0103975287" "25" "Phutho"      
          "0103975287" "52" "Binhdinh"    
          "0103975287" "82" "Tiengiang"  
          "0103975287" "94" "Soctrang"    
          "0103975287" "15" "Yenbai "    
          "0103975287" "40" "Nghean"      
          "0103975287" "31" "Haiphong "  
          "0103975287" "24" "Bacgiang"    
          "0103975287" "36" "Namdinh "    
          "0103975287" "17" "Hoabinh"    
          "0103975287" "74" "Binhduong"  
          "0103975287" "56" "Khanhhoa"    
          "0103975287" "45" "Quangtri"    
          end
          and then I transfer province_name from string to numeric


          Code:
          encode province_name, gen(province)
          and then run the code

          Code:
          nlogitgen type=province(RedRiverDelta: Vinhphuc|Quangninh|Hungyen|Haiduong|Hanam|Haiphong|Ninhbinh|Hanoi|Bacninh|Namdinh|Thaibinh, NorthMidlands: Phutho| Thainguyen|Bacgiang|Backan|Yenbai|Langson|Hoabinh, NorthCentrals: Quangnam|Quangngai|Thanhhoa|Phuyen|Danang|Nghean|Khanhhoa|Binhthuan|Hatinh|Quangbinh|Quangtri|Thuathienhue|Binhdinh, CentralHighlands: Lamdong, SouthEast: Binhphuoc|Dongnai|Tayninh|Hochiminh|Binhduong| BaRiaVungTau, MekongRiver: Bentre|Dongthap|Longan|Vinhlong|Tiengiang|Travinh|Angiang|Kiengiang|Cantho|Haugiang|Soctrang|Baclieu)
          The "did not work" here means the error:
          (value label dereference "Hungyen":province not found)
          no observations for province == Hungyen
          r(198)


          I do not understand why deleting "province" or "city" in the name (Which means there is no more space) did not solve the problem. Meanwhile, adding undercore (_) as Ken Chui did help.

          Thank you and look forward to your help.

          Comment


          • #6
            Thanks for the extra detail. Someone familiar with nlogitgen may now be better able to see what is wrong.

            Comment


            • #7
              Thank you Nick!

              Comment

              Working...
              X