我需要将一个回归结果矩阵从Stata输出到MATLAB.我尝试使用Stata命令matwrite没有成功(我收到unrecognized command错误).这是尝试:
...
*Regression 1
reg invlrevcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
lannxt lannxtsq lrlanxtsq pkgamz if invlrevcrp_CAm071~=.
reg lrevcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
lannxt lannxtsq lrlanxtsq lpkgamz
* Store results
mat coef=get(_b)
*Export to matlab
matwrite using "Z:\Thesis\data needed for 2007\matlabfile", ///
mat(coef) replace
...
Run Code Online (Sandbox Code Playgroud)
我使用Stata xml_tab将更多的成功导出到Excel,我可以将其导入到MATLAB中.但是,xml_tab给了我太多的信息.我想要导出的矩阵只是两个回归的估计系数,没有标签. xml_tab输出与回归相关的所有内容 - t统计量,p值,95%conf.间隔等,包括标签.以下是使用此方法的代码:
*===============================
* Regressions
*===============================
*Regression 1
reg invlrevcrp_CAm071 lacres_CAm071 lrainm07 lrainm07sq ///
lannxt lannxtsq lrlanxtsq pkgamz if invlrevcrp_CAm071~=.
reg lrevcrp_CAm071 lacres_CAm071 lrainm07 …Run Code Online (Sandbox Code Playgroud) 我试图从数据库(MS Access或SQL服务器)加载数据,odbc sqlfile似乎代码运行时出现任何错误,但我没有得到数据.我使用以下代码odbc sqlfile("sqlcode.sql"),dsn("mysqlodbcdata").注意,sqlcode.sql只包含sql声明SELECT.问题是相同的sql代码正在提供数据odbc load,exec(sqlstmt) dsn("mysqlodbcdata").任何人都可以建议我如何使用odbc sqlfile导入数据?这对我来说是一个很大的帮助.
谢谢乔伊
我在使用do带有本地宏的文件时在Stata中收到以下错误:
clear
capture log close
sysuse auto,clear
log using stata,text replace
local varlist price mpg rep78 weight length
reg 'varlist'
local close
Run Code Online (Sandbox Code Playgroud)
产量
local varlist price mpg rep78 weight length
reg 'varlist'
invalid name
Run Code Online (Sandbox Code Playgroud)
我知道这是一个非常微不足道的问题,但我不确定这个错误来自何处.
请注意,当我使用全局宏时,我没有收到错误.
我有以下数据集(个人级别数据):
pid year state income
1 2000 il 100
2 2000 ms 200
3 2000 al 30
4 2000 dc 400
5 2000 ri 205
1 2001 il 120
2 2001 ms 230
3 2001 al 50
4 2001 dc 400
5 2001 ri 235
.........etc.......
Run Code Online (Sandbox Code Playgroud)
我需要估算每个州每年的平均收入,and创建一个如下所示的新数据集:
state year average_income
ar 2000 150
ar 2001 200
ar 2002 250
il 2000 150
il 2001 160
il 2002 160
...........etc...............
Run Code Online (Sandbox Code Playgroud)
我已经有一个运行完全正常的代码(我有两个循环).但是,我想知道有没有更好的方式在Stata中像sql样式查询?
我想为我的数据集的子集创建一个本地宏,以用于将来的回归(请参阅循环外的宏的一些用途部分).
我开始使用以下代码:
quietly reg y x1 x2 x3
local subset if e(sample)
list Unit `subset'
reg y x1 x2 if `subset'
Run Code Online (Sandbox Code Playgroud)
x3缺少值,因此在第一个reg命令中排除了一些观察值.list命令的输出确实表明宏的内容确实是我想要的(Unit是一个标识观察的变量).
不过,我在最后一个命令后收到一条错误消息:
if not found
r(111);
Run Code Online (Sandbox Code Playgroud)
从以下信息r(111):
__________ 未找到;
没有变量定义;
该变量不存在.您可能输错了变量的名称.
我的语法有什么问题?也就是说,为什么Stata if作为变量处理?
我知道可以得到如下预测值:
reg y x1 x2 x3
predict pred_values
Run Code Online (Sandbox Code Playgroud)
假设我进行回归并存储值:
reg y x1 x2
matrix stored_b = e(b)
Run Code Online (Sandbox Code Playgroud)
然后,我进行另一次回归(无论如何)。
是否可以使用predictusing命令stored_b代替当前命令e(b)?
(当然,我可以通过基于手动计算预测值来生成预测值stored_b,但是如果系数很多,这可能会很乏味。)
我想打开一个文件"my_query.sql"并将该文件的整个文本读入一些宏变量x.
显然,我应该从以下内容开始:
file open myfile using my_query.sql
Run Code Online (Sandbox Code Playgroud)
但我的问题是,这file read myfile x不太正确,因为它只是读取第一行...
我最初的想法:
我有一个Stata程序,它输出一个空格分隔的变量名称的局部标量.
我有两个样品(两次一样运行程序dta)和工会(路口-出现在这两个标量变量名)存储为一个新的空间分隔的局部标(用于输入到另一个程序).
我无法弄清楚如何分割(每个空格)和/或测试每个变量名称的出现.
我有一个60个尺寸的嵌套循环,也就是说,我相互嵌套60个循环。在Stata中,MWE如下所示:
forvalues i = 1/60 {
forvalues j = 1/60 {
forvalues k = 1/60 {
forvalues l = 1/60 {
... imagine the 56 remaining loops here
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
R中的等效项是:
for(i in 1:60) {
for(j in 1:60) {
for(k in 1:60) {
for(l in 1:60) {
... imagine the 56 remaining loops here
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里的目的是避免在我的代码中键入所有60个级别,而是为循环结构本身创建一个循环。这个问题显得微不足道。但是由于某种原因,我正在努力提出解决方案。
感谢您的任何建议。
附加信息:
我有一个包含60个解释变量的数据集,并希望对这些变量的每种可能组合进行回归分析。更具体地说,我分别对所有60个解释变量运行因变量的单变量回归并计算某些条件。然后,将第二个回归变量添加到估计方程中,然后再次计算标准。即reg DependentVar ExplVar1 ExplVar2,reg DependentVar ExplVar1 ExplVar3,..., reg DependentVar ExplVar60 ExplVar59。取决于计算的标准,该回归树的分支可以提前,也可以终止。例如,第一个分支reg …
stata ×10
stata-macros ×3
excel ×1
local ×1
loops ×1
matlab ×1
nested-loops ×1
odbc ×1
predict ×1
r ×1
regression ×1
sql ×1
string ×1