Syntax 为什么使用nl进行估算后访问系数需要的语法与其他估算命令稍有不同?

Syntax 为什么使用nl进行估算后访问系数需要的语法与其他估算命令稍有不同?,syntax,stata,Syntax,Stata,遵循Stata中的大多数估算命令(例如reg,logit,probit,等等),可以使用\u b[ParameterName]语法(或同义的\u coef[ParameterName])访问估算。例如: regress y x 接 di _b[x] 将显示x系数的估计值di\u b[\u cons]将显示估计截距的系数(假设回归命令成功),等等 但是如果我使用非线性最小二乘法命令nlI(似乎)必须做一些稍微不同的事情。现在(撇开这个示例模型绝对不需要使用NLLS回归): 后跟(注意正斜杠)

遵循Stata中的大多数估算命令(例如
reg
logit
probit
,等等),可以使用
\u b[ParameterName]
语法(或同义的
\u coef[ParameterName]
)访问估算。例如:

regress y x

di _b[x]
将显示x系数的估计值
di\u b[\u cons]
将显示估计截距的系数(假设
回归
命令成功),等等

但是如果我使用非线性最小二乘法命令
nl
I(似乎)必须做一些稍微不同的事情。现在(撇开这个示例模型绝对不需要使用NLLS回归):

后跟(注意正斜杠)

将显示x系数的估计值

为什么访问
nl
之后的参数估计值需要不同的语法?有没有需要注意的微妙之处?

“撇开这个示例模型来说,绝对没有必要使用NLLS回归”:我认为这是你在这里不能做的

问题是为什么语法是这样的。这是一个逻辑问题,也是一个历史问题。选择特定语法的原因最终是选择它的StataCorp程序员的一个问题。对你的问题,这里有一个有限的看法

回归类型模型的主要语法源于为线性回归模型设计的语法,其中默认情况下,参数包括一个截距,如您所知

非线性回归模型的原始语法(在通过非线性最小二乘法估计的意义上)符合估计用户指定的一组参数的需要,这些参数根本不需要包含截距。 否则,拦截不存在自然违约的问题;没有参数化是一种自然的默认设置,
nl
估计的每个模型都是独特的

一个有用的功能是,用户可以在Stata中作为法定名称的限制范围内,为参数选择他们认为自然的名称,例如
alpha
beta
gamma
A
b
c
,等。如果您选择
\u cons
作为
nl
中的截取,这是一个合法名称,但不是特殊名称,只是您的选择
nl
不会将其视为应该使用
回归
约定的信号

您引用的语法是通过对
nl
进行重大重新设计而得以实现的一部分,但它与最初的理念是一致的


语法是不同的,因为它需要是可能不是你寻求的答案,但我想你会得到一个更完整的答案,只有从StataCorp;开发人员确实会在Statalist上闲逛,但他们不会在这里显示自己

尼克,谢谢你抽出时间回答。但我不认为广义参数(即可能非线性)与斜率/系数/特别是线性参数的问题真正解决了我的问题:
回归
(例如)和
nl
都使用名称来标记参数估计。需要一个单独的语法来访问这样标记的参数是令人困惑的,而且文档记录也很差。也许这是有原因的。有吗?:)我想你得让StataCorp再深入一点。尽管在语法上有一定的要求,在许多风格问题上有坚定的惯例,但程序员仍然有反复无常的余地<我记得code>nl最初是由用户编写的,这可能会持续很久。我不同意“缺乏文件记录”的说法,这很公平。我想,“记录不良”是指
nl
所需的这种特殊语法既不出现在
help\U变量中,也不出现在[U]pdf的“访问系数和标准错误”部分中,也不出现在
help nl
中,也不出现在
help nl\U后估计中。在我的书中,这被称为“糟糕”。在这种情况下,我们都会使用否定词。但是,如果我们想在任何地方阅读,所有的怪癖都应该被记录在案,那只会让手册变得更长、更混乱。在教学过程中,您是否曾经因为您的解释已经比学生希望听到的更长、更困难而停止解释复杂问题?请向StataCorp技术支持部门发送一封包含建议的电子邮件。他们将知道在哪里转发它。
nl (y = {_cons} + {x}*x)
di _b[/x]