标签: stata

R和Stata中的第一差分线性面板模型方差

我想让一位同事复制一个第一差异线性面板数据模型,我用Stata和plmR(或其他一些包)中的包来估计.

在Stata中,xtreg没有第一个差异选项,所以我运行:

reg D.(y x), nocons cluster(ID)
Run Code Online (Sandbox Code Playgroud)

在R中,我正在做:

plm(formula = y ~ -1 + x, data = data, model = "fd", index = c("ID","Period"))
Run Code Online (Sandbox Code Playgroud)

系数匹配,但R中的标准误差大于Stata中的标准误差.我查看了plm帮助和pdf文档,但我必须遗漏一些东西.

r standard-error stata plm

10
推荐指数
1
解决办法
1万
查看次数

从Stata迁移到Python

一些与Stata 11斗争的同事正在寻求我的帮助,试图让他们辛勤工作的自动化.他们主要在Stata中使用3个命令:

tsset(设置时间序列分析)

如: tsset year_column, yearly

varsoc(获取VAR的滞后顺序选择统计信息)

如: varsoc column_a column_b

vec(矢量误差修正模型)

如: vec column_a column_b, trend(con) lags(1) noetable


有没有人知道我可以通过python使用任何科学库来实现同样的功能?

python statistics numpy stata

9
推荐指数
2
解决办法
1771
查看次数

如何在R中重写这个Stata代码?

Stata做得很好的一件事就是它构造新变量的方式(见下面的例子).在R中如何做到这一点?

foreach i in A B C D {  
    forval n=1990/2000 {  
       local m = 'n'-1  
       # create new columns from existing ones on-the-fly  
       generate pop'i''n' = pop'i''m' * (1 + trend'n')  
   }  
}  
Run Code Online (Sandbox Code Playgroud)

r stata

9
推荐指数
3
解决办法
2152
查看次数

R中的瓦哈卡分解

我想在R中进行瓦哈卡分解.我相信,它用于例如劳动经济学来区分解释的方差与不明原因的方差.我无法在R中找到合适的解决方案,而且我不愿意自己创建一个(我可能会搞砸它).

无论如何,这里简要解释了这个过程:

http://en.wikipedia.org/wiki/Ronald_Oaxaca

Stata很幸运,有一个相当不错的包装,但Stata对我来说并不容易.

www.stata.com/meeting/5german/SINNING_stata_presentation.pdf

请注意:我还在R-help上发布了一条消息,但它没有得到回复.我希望也可以在这个列表上发帖.

提前谢谢,Rasmus

编辑:我已经做了以下功能,这似乎产生了错误的答案(urgh).我试图按照上面的Stata链接但它没有按照我的希望:)

oaxaca <- function (fsex,frace1,frace2) {
  ## First we make regresions
  data1 <- subset(l2,sex==fsex & race==frace1)
  data2 <- subset(l2,sex==fsex & race==frace2)

  mindata1 <- subset(cbind(grade,exp,I(exp^2)),sex==fsex & race==frace1)
  mindata2 <- subset(cbind(grade,exp,I(exp^2)),sex==fsex & race==frace2)

  reg1 <- lm(log(wage)~grade+exp+I(exp^2), data=data1)
  reg2 <- lm(log(wage)~grade+exp+I(exp^2), data=data2)

  ## DECOMPOSITION
  ################

  ## Variables
  gap <- mean(log(wage[race==frace1 & sex==fsex]))-mean(log(wage[race==frace2 & sex==fsex]))

  mean1 <- colMeans(mindata1)
  mean2 <- colMeans(mindata2)

  beta1 <- summary(reg1)$coefficients[,1]
  beta2 <- summary(reg2)$coefficients[,1]
  beta1incep <- summary(reg1)$coefficients[1,1]
  beta2incep <- summary(reg2)$coefficients[1,1]
  beta1coef <- summary(reg1)$coefficients[c(2,3,4),1]
  beta2coef …
Run Code Online (Sandbox Code Playgroud)

r economics stata

9
推荐指数
2
解决办法
2773
查看次数

只读取R中Stata .DTA文件的一部分

如果在某处有一个简单的答案,我会提前道歉.这似乎是那样的事情,但我似乎无法通过搜索SO或谷歌搜索在帮助文件中找到它.

我现在正在使用几个GB的数据集.它足以适应我有权访问的其中一个集群节点的内存,但需要花费相当多的时间来加载.对于使用此数据的许多调试/编程活动,我不需要加载整个文件,只需要在前几千个观察点上有一个数据集来测试代码.我当然可以只读取整个文件和子集,但我想知道是否有办法告诉read.dta()只读前N行?这当然要快得多.

我也可以使用像.csv这样的正确格式,然后使用read.csv()'s nrows参数,但是我会丢失Stata数据集中的因子标签(并且必须从其他人的代码中重新创建相当多的GB数据.这个项目.因此首选.dta文件的直接解决方案.

r processing-efficiency stata

9
推荐指数
2
解决办法
1689
查看次数

在Stata中使用带有egen的if限定符

我正在使用Stata,而我正试图计算公司竞争对手在市场上的平均价格.我的数据看起来像:

Market    Firm   Price
----------------------
1         1      100
1         2      150
1         3      125
2         1      50
2         2      100
2         3      75
3         1      100
3         2      200
3         3      200
Run Code Online (Sandbox Code Playgroud)

而我正试图计算每家公司竞争对手的平均价格,所以我想创造一个新的领域,即市场中其他公司的平均价值.它看起来像:

Market    Firm   Price    AvRivalPrice
------------------------------------
1         1      100      137.2
1         2      150      112.5
1         3      125      125
2         1      50       87.5
2         2      100      62.5
2         3      75       75
3         1      100      200
3         2      200      150
3         3      200      150
Run Code Online (Sandbox Code Playgroud)

要按组进行平均,我可以使用egen命令:

egen AvPrice = mean(price), by(Market) …
Run Code Online (Sandbox Code Playgroud)

stata

9
推荐指数
3
解决办法
2万
查看次数

关于如何为Pygments编写词法分析器的大量文档?

我有一个Stata关键词和Stata语法的合理知识.我想花几个小时把它变成一个Stata lexer for Pygments.

但是,我找不到关于词法分析器语法的足够文档,并发现自己无法开始编写词法分析器.有人能指出为Pygments编写新词法分析器的好教程吗?

我知道Pygments API词法分析器开发页面,但老实说,对于像我这样对Python知识非常有限的人来说,这些还不够.

到目前为止,我的策略是寻找例子.我发现了很多,例如Puppet,Sass,Scala,Ada.他们帮助的只是那么多.任何有关如何从我的Stata关键字开始的帮助都将受到欢迎.

python pygments stata

9
推荐指数
1
解决办法
1644
查看次数

在Stata的do-file中将命令分成几行

我想keep在Stata 12中的do-file中运行该命令:

keep a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 c1 c2 c3 c4
Run Code Online (Sandbox Code Playgroud)

我想要的是做以下事情:

keep {a1 a2 a3 a4 a5
     b1 b2 b3 b4 b5
     c1 c2 c3 c4}
Run Code Online (Sandbox Code Playgroud)

我知道{}括号不能解决问题,但我正在寻找执行它的命令.使用#delimiter ;也不起作用.

我想这样做,因为变量亚组有自己之间的关系(我打算上面的信号通过a,bc),我想有一个清晰的在我的代码.我永久地添加和删除变量.请注意,我不想使用该drop命令(在这种情况下,解决方案是微不足道的).

command-line break stata

9
推荐指数
1
解决办法
5万
查看次数

R和Stata之间的合并命令比较

作为R用户,我现在正在使用这个资源学习Stata ,并且对这个merge命令感到困惑.

在R中,我不必担心错误地合并数据,因为它无论如何都会合并所有内容.如果公共列包含任何重复项,我不需要担心,因为Y数据帧将合并到dataframe中的每个重复行X.(使用all=FALSEmerge)

但是对于Stata,我需要X在继续合并之前删除重复的行.

是否在Stata中假设,为了merge继续,主表中的公共列必须是唯一的?

merge r stata

8
推荐指数
1
解决办法
1637
查看次数

是否有相当于Stata的egen功能?

Stata有一个非常好的命令,egen这使得计算观察组的统计数据变得容易.例如,可以计算每个组的最大值,平均值和最小值,并将它们作为变量添加到详细数据集中.Stata命令是一行代码:

by group : egen max = max(x)
Run Code Online (Sandbox Code Playgroud)

我从来没有summarisedplyr包中找到相同的命令,这使得计算每个组的统计数据变得容易,但是我必须运行一个循环来将统计数据与每个观察结果相关联:

library("dplyr")
N  <- 1000
tf  <- data.frame(group = sample(1:100, size = N, replace = TRUE), x = rnorm(N))
table(tf$group)
mtf  <- summarise(group_by(tbl_df(tf), group), max = max(x))
tf$max  <- NA
for (i in 1:nrow(mtf)) {
  tf$max[tf$group == mtf$group[i]]  <- mtf$max[i]
}
Run Code Online (Sandbox Code Playgroud)

有没有人有更好的解决方案?

r stata

8
推荐指数
1
解决办法
3807
查看次数