全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 Stata专版
1534 0
2017-11-24
刚开始学stata,在研究风险态度时需要编一个简单的程序计算风险态度参数,但运行时会显示operator invalid,所以来论坛向大家求助
图中是要求解的不等式
图中是要求解的不等式,我个人的想法是只要确定上确界和下确界就能解决问题,所以用forvalues
具体的命令如下
gen a=.
gen theta=.
gen thetaup=.
gen thetadown=.
gen alphaup=.
gen alphadown=.
gen idown=.
gen iup=.
gen jdown=.
gen jup=.
if series1A>=1&series1A<=13{
  forvalues idown=0(0.01)1{
    forvalues jup=1(-0.01)0{
      if ((5^(1-idown)+(20^(1-idown)-5^(1-idown))*exp(-(-ln0.3)^jup))-(2.5^(1-idown)+(reward1A^(1-idown)-2.5^(1-idown))*exp(-(-ln0.1)^jup)))>0 & ((15^(1-idown)+(20^(1-idown)-15^(1-idown))*exp(-(-ln0.9)^jup))-(2.5^(1-idown)+(reward2A^(1-idown)-2.5^(1-idown))*exp(-(-ln0.7)^jup)))>0{
            replace thetadown=idown
                replace alphaup=jup
                break
          }
        }
  }
  forvalues iup=1(-0.01)0{
    forvalues jdown=0(0.01)1{
          if ((5^(1-iup)+(20^(1-iup)-5^(1-iup))*exp(-(-ln0.3)^iup))-(2.5^(1-iup)+(reward1B^(1-iup)-2.5^(1-iup))*exp(-(-ln0.1)^jdown)))<0 & ((15^(1-iup)+(20^(1-iup)-15^(1-iup))*exp(-(-ln0.9)^jdown))-(2.5^(1-iup)+(reward2B^(1-jdown)-2.5^(1-iup))*exp(-(-ln0.7)^jdown)))<0{
            replace thetaup=iup
            replace alphadown=jdown
            break
          }
        }
  }
  replace theta=(thetaup+thetadown)/2
  replace a=(alphaup+alphadown)/2
  break
}

个人感觉问题出在i j的变量上,本来想用临时变量,但百度许久都没有找到正确的采用方式= =
麻烦大家帮忙看一下问题出在哪里
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群