根据Stata中的大多数估计命令(例如reg
、logit
、probit
等),可以使用_b[ParameterName]
语法(或同义的_coef[ParameterName]
)访问估计。例如:
regress y x
然后是
di _b[x]
将显示系数x的估计值。di _b[_cons]
将显示估计截距的系数(假设regress
命令成功)等。
但如果我使用非线性最小二乘命令nl
,我(似乎)必须做一些稍微不同的事情。现在(对于这个示例模型,完全没有必要使用NLLS回归):
nl (y = {_cons} + {x}*x)
后面跟着(注意正斜杠)
di _b[/x]
将显示x系数的估计值。
为什么访问nl
之后的参数估计需要不同的语法?有什么微妙之处需要注意吗?
"撇开这个示例模型不谈,绝对没有必要使用NLLS回归":我认为这是你在这里不能做的。。。。
问题是为什么语法是这样的。这是一个逻辑问题,也是一个历史问题。为什么选择特定的语法最终是StataCorp程序员的一个问题。以下是对你的问题的一个有限的看法。
回归类型模型的主要语法源于为线性回归模型设计的语法,如您所知,在线性回归模型中,默认情况下参数包括截距。
非线性回归模型的原始语法(在由非线性最小二乘估计的意义上)与估计用户指定的一组参数的需要相匹配,这些参数根本不需要包括截距。否则,不存在拦截是自然违约的问题;无参数化是自然默认值,并且nl
估计的每个模型都是自成一体的。
一个有用的功能是,用户可以在Stata中被视为合法名称的限制范围内,为参数选择他们认为自然的名称,例如alpha
、beta
、gamma
、a
、b
、c
等。如果您在nl
中选择_cons
作为截距,这是一个合法名称,但在其他方面并不特殊,只是您的选择;nl
不会将其视为应该使用regress
约定转换的信号。
您引用的语法是nl
的重大重新设计所实现的语法的一部分,但它与最初的哲学是一致的。
语法的不同可能不是你想要的答案,但我想你只能从StataCorp得到更完整的答案;开发人员确实会在Statalist上闲逛,但他们在这里并不显眼。