全部版块 我的主页
论坛 计量经济学与统计论坛 五区 计量经济学与统计软件 统计软件培训班VIP答疑区
3463 5
2010-10-19
大家好:
      我作非线形回归时的步骤如下:
        cd C:\stata11\ado\personal\Net_course_A\A5_prog
        doedit nlexpgr.ado

        (cap program drop nlexpgr
           program define nlexpgr
           version 10
           if "`1'"=="?"{global S_1 "B0 B1"
                              global B0=1
                              global B1=1
                              exit}
           replace `1'=$B0*(1-exp(-$B1*x))
           end)

          adopath + C:\stata11\ado\personal\Net_course_A\A5_prog
         use "J:\my_documents_2007_2010\2\STATA\stata 高级\1\Net_course\B3_NLS\B3_production.dta", clear
         nl expgr  lnoutput
            invalid syntax
            nlexpgr refused query, rc=198
             r(198);

请教各位,问题出在哪? 谢谢。

----------------------------------------------------------
以前的帖子如下(都已解决):

大家好:
       按照STATA网络课堂的讲解,我用STATA 11编写了相关函数的program, 然后输入命令“nl expgr lnoutput”, 结果STATA 提示“unrecognized command:  nlexpgr   nlexpgr refused query, rc=199”。 (我输入的program 存放位置没有错)
  而且,输入“doedit expgr.ado”, STATA 11 提示" expgr.ado was not found".
  
       我在学校的机器上也用STATA 11 重复了一遍,但是还是这样。是不是用于STATA 8 he  STATA 9 的命令不能用在STATA 11 上?
  请教各位,原因在哪? 谢谢。


我上次关于非线次回归的问题感谢大家给与的回复。 我按照回复的内容设置了,路径应该没有问题, 但是仍无法得到回归结果。STATA 提示为“unrecognized command:  nlexpgr    nlexpgr refused query, rc=199”。
       非线形回归在STATA 11 中是否有不同于STATA 8 和9 的命令格式?
       请教应该如何解决? 谢谢。

我全部按照个步骤输入了命令,但是结果是“invalid syntax nlexpgr refused query, rc=198".请问这是什么原因。我的ado 文件也全部统一为nlexpgr.ado.
  谢谢。
二维码

扫码加我 拉你入群

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

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

全部回复
2010-10-19 20:22:43
Brook1114 发表于 2010-10-19 02:48
大家好:
      我作非线形回归时的步骤如下:
        cd C:\stata11\ado\personal\Net_course_A\A5_prog
        doedit nlexpgr.ado

        cap program drop nlexpgr
           program define nlexpgr
           version 10
           if "`1'"=="?"{global S_1 "B0 B1"
                              global B0=1
                              global B1=1
                              exit}
           replace `1'=$B0*(1-exp(-$B1*x))
           end

          adopath + C:\stata11\ado\personal\Net_course_A\A5_prog
         use "J:\my_documents_2007_2010\2\STATA\stata 高级\1\Net_course\B3_NLS\B3_production.dta", clear
         nl expgr  lnoutput
            invalid syntax
            nlexpgr refused query, rc=198
             r(198);

请教各位,问题出在哪? 谢谢。
有两个可疑的地方:

其一,上面红色的括号不应在定义程序时出现;

其二,调用程序时,应该声明解释变量:

nl expgr  lnoutput x
二维码

扫码加我 拉你入群

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

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

2010-10-19 22:05:14

还是非线性回归的问题



我已经按照要求修改了。
但是,还是不对。
出错提示显示STATA把nl expgr 合并为一个命令即nlexpgr. 请问这是为什么?
二维码

扫码加我 拉你入群

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

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

2010-10-20 09:08:56
我查验了一下课程里的程序,版本号是 version 8.0,而你使用的是 version 10。有可能是这里出了问题。

*------------------------------------程序定义------begin----------------
*! model: y = B0*(1 - e^(-B1*x))
*! B3_NLS

     cap program drop nlexpgr
     program define nlexpgr
        version 8.0
        if "`1'" == "?"{
            global S_1 "B0 B1"
            global B0=1
            global B1=1
            exit
        }
        replace `1' = $B0*(1-exp(-$B1*x))
     end
*------------------------------------程序定义------over----------------



执行结果如下:

.   adopath + D:\stata9\ado\personal\Net_course\B3_NLS
  [1]  (UPDATES)   "D:\stata11\ado\updates/"
  [2]  (BASE)      "D:\stata11\ado\base/"
  [3]  (SITE)      "D:\stata11\ado\site/"
  [4]              "."
  [5]  (PERSONAL)  "D:\stata11\ado\personal/"
  [6]  (PLUS)      "D:\stata11\ado\plus/"
  [7]  (OLDPLACE)  "D:\stata11\ado\myado/"
  [8]              "D:\stata10\ado\personal"
  [9]              "D:\stata9\ado\personal\Net_course\B3_NLS"

.   
.   use B3_production.dta, clear

.   gen x = capital
.   nl expgr lnout  
(obs = 100)

Iteration 0:   residual SS =  728.3701
Iteration 1:   residual SS =  122.9644
Iteration 2:   residual SS =  93.64678
Iteration 3:   residual SS =  93.64484
Iteration 4:   residual SS =  93.64484
Iteration 5:   residual SS =  93.64484


      Source |       SS       df       MS            Number of obs =       100
-------------+------------------------------         F(  2,    98) =    499.08
       Model |  953.797022     2  476.898511         Prob > F      =    0.0000
    Residual |  93.6448414    98  .955559606         R-squared     =    0.9106
-------------+------------------------------         Adj R-squared =    0.9088
       Total |  1047.44186   100  10.4744186         Root MSE      =  .9775273
                                                     Res. dev.     =  277.2216
(expgr)
------------------------------------------------------------------------------
    lnoutput |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
-------------+----------------------------------------------------------------
          B0 |   3.418237   .1251254    27.32   0.000      3.16993    3.666544
          B1 |   6.806296   1.088997     6.25   0.000     4.645216    8.967376
------------------------------------------------------------------------------
(SEs, P values, CIs, and correlations are asymptotic approximations)
二维码

扫码加我 拉你入群

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

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

2010-10-21 03:19:09
我全部按照要求更改了。但是,还是无法得到非线性回归结果。STATA提示为“invalid syntax  nlexpgr refused query, rc=198   r(198);"。

请教各位该如何解决。谢谢。
二维码

扫码加我 拉你入群

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

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

2010-10-21 10:52:28
不知你能否顺利执行讲义中的相关命令?

输入 set trace on 后,执行你的命令,然后把屏幕上提示的信息贴上来。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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