본문 바로가기

MySTATA/활용팁

균등(uniform) 확률 뿌리기

// 0~1 사이의 난수를 생성해서 특정 값 뿌리기

// 일단 스타타 본래의 기능으로 불가능함.

// 그래서...... ^.^



       qui  gen rand = runiform() if gend == 1 & age == 18  // 성연령별로 0~1 사이의 난수생성


       qui  replace nps_pmon_yr =          ///

                        cond(rand <= 0.12, 1 ,   ///

                        cond(rand <= 0.21, 2 ,   ///

                        cond(rand <= 0.34, 3 ,   ///

                        cond(rand <= 0.44, 4 ,   ///

                        cond(rand <= 0.49, 5 ,   ///

                        cond(rand <= 0.87, 6 ,   ///

                        cond(rand <= 0.91, 7 , 8 ))))))) if gend == 1 & age == 18


// 0~1 사이의 값으로 생성된 난수를 위의 특정 임계값을 기준으로 1에서 8사이의 값을 뿌림.