Stata中的非线性最小二乘法,如何对变量/集合求和?

时间:2013-09-15 10:06:24

标签: stata nls

我想使用Stata通过非线性最小二乘估计以下函数:

The nonlinear function i would like to estimate

我正在测试另一个papper的结果,并且想要使用Stata,因为它与我正在复制的论文中使用的软件/解算器相同,并且因为它比使用GAMS更容易。

我的问题是我找不到任何方法来写出上面等式的总和部分。在我的数据中,我所拥有的是一个单独的观察,其中j的值在单独的变量中。我可以用以下方式写出整个表达式(对于三个观察/我):

nl (ln_wage = {alpha0} + {alpha0}*log( ((S_over_H_1)^{alpha2})*exp({alpha3}*distance_1) + ((S_over_H_2)^{alpha2})*exp({alpha3}*distance_2) + ((S_over_H_1)^{alpha2})*exp({alpha3}*distance_1) ))

是否有一种简单的方法可以告诉Stata对一组给定数字的表达式/变量求和,例如在GAMS中你可以编写:

lnwage(i) = alpha0 + alpha1*ln(sum((j), power(S_over_H(i,j),alpha2) * exp(alpha3 * distance(i,j))))

1 个答案:

答案 0 :(得分:5)

你引用的GAMS符号中Stata没有直接的等价物,但你可以这样做

forval j = 1/3 {
    local call `call' S_over_H_`j'^({alpha2}) * exp({alpha3} * distance_`j')
}

nl (ln_wage = {alpha0} + {alpha1} * ln(`call')

P.S。请解释一下GAMS是什么。