stata - 使用 OLS 在 Mata 中循环
问题描述
我需要帮助在 Mata 中循环。我必须使用循环为 Mata 中的 OLS 的 Beta 系数编写代码。我不确定如何调用变量并创建代码。这是我到目前为止所拥有的。
foreach j of local X {
if { //for X'X
matrix XX = [mata:XX = cross(X,1 , X,1)]
XX
}
else {
mata:Xy = cross(X,1 , y,0)
Xy
}
我收到一条错误消息“无效的语法”。
解决方案
我不确定你需要循环做什么。也许您可以提供更多有关此的信息。但是,以下示例可能会帮助您在mata
.
从以下位置加载示例数据bcuse
:
ssc install bcuse
clear
bcuse bwght
mata
x = st_data(., ("male", "parity","lfaminc","packs"))
cons = J(rows(x), 1, 1)
X = (x, cons)
y = st_data(., ("lbwght"))
beta_hat = (invsym(X'*X))*(X'*y)
e_hat = y - X * beta_hat
s2 = (1 / (rows(X) - cols(X))) * (e_hat' * e_hat)
B = J(cols(X), cols(X), 0)
n = rows(X)
for (i=1; i<=n; i++) {
B =B+(e_hat[i,1]*X[i,.])'*(e_hat[i,1]*X[i,.])
}
V_robust = (n/(n-cols(X)))*invsym(X'*X)*B*invsym(X'*X)
se_robust = sqrt(diagonal(V_robust))
V_ols = s2 * invsym(X'*X)
se_ols = sqrt(diagonal(V_ols))
beta_hat
se_robust
end
这远不是使用mata
. 请参阅 Stata 博客了解另一个使用 的示例quadcross
,我喜欢我的示例,因为它在代码中保留了更多的矩阵代数。
推荐阅读
- python - Python 等待条件满足
- python - ubuntu容器中python subprocess.check_output() json参数解析
- php - php使用包含名称的js文件重命名文件
- powerbi - 在带有 Power Bi Desktop 图表的 DAX 中使用 IN 运算符?
- r - r : 从原始数据中获取值
- docker - ECONNREFUSED api 调用从 nextjs 使用 nginx dockerdocker 到 Strapi
- botframework - 未从 TeamsActivityHandler.onInvokeActivity 调用 onTurnError
- python - 将“axvspan”扩展到绘图的边界
- git - 'github.com/....' jenkins 的身份验证失败
- javascript - 如何从 iframe 获取当前页面 url 并显示在浏览器上