Stata 如何正确使用egen均值函数计算时间序列的平均差?
我有以下格式的面板数据: |交易|城市| id |周| tr | cw| ,其中tr_cw是为每个城市每周计算的一些度量 我试图使用egen计算每个城市指标的平均增长:Stata 如何正确使用egen均值函数计算时间序列的平均差?,stata,data-manipulation,Stata,Data Manipulation,我有以下格式的面板数据: |交易|城市| id |周| tr | cw| ,其中tr_cw是为每个城市每周计算的一些度量 我试图使用egen计算每个城市指标的平均增长: egen tag_cw = tag(city_id week) sort tag_cw city_id week by tag_cw city_id: egen tr_speed = mean(tr_cw[_n]-(tr_cw[_n-1])) if tag_cw 但是,结果不同于更复杂的计算(数值上看起来更有效): 我在使用e
egen tag_cw = tag(city_id week)
sort tag_cw city_id week
by tag_cw city_id: egen tr_speed = mean(tr_cw[_n]-(tr_cw[_n-1])) if tag_cw
但是,结果不同于更复杂的计算(数值上看起来更有效):
我在使用egen时遗漏了什么?是否有一个很好的教程来了解正确的用法?对于
egen
的帮助非常明确:
“显式订阅(使用\N
和\N
)通常与生成一起使用,不应与egen
一起使用。”
原因是,egen
经常临时更改排序顺序以执行它所做的操作,因此下标不一定表示您所想的内容
因此,您需要先创建自己的增长变量,然后使用egen
将您的问题简化为每个城市和每周的一笔交易,并假设每个小组内没有时间间隔,也没有遗漏,这就足够了:
bysort city_id (week) : gen tr_diff = tr_cw - tr_cw[_n-1]
by city_id: egen tr_speed = mean(tr_diff)
egen tag = tag(city_id)
l city tr_speed if tag
对于多个事务,您需要将其复杂化。你不清楚如何将它们结合起来 egen的帮助非常明确:
“显式订阅(使用\N
和\N
)通常与生成一起使用,不应与egen
一起使用。”
原因是,egen
经常临时更改排序顺序以执行它所做的操作,因此下标不一定表示您所想的内容
因此,您需要先创建自己的增长变量,然后使用egen
将您的问题简化为每个城市和每周的一笔交易,并假设每个小组内没有时间间隔,也没有遗漏,这就足够了:
bysort city_id (week) : gen tr_diff = tr_cw - tr_cw[_n-1]
by city_id: egen tr_speed = mean(tr_diff)
egen tag = tag(city_id)
l city tr_speed if tag
对于多个事务,您需要将其复杂化。你不清楚如何将它们结合起来 尼克的回答应该能满足你的需要
回答您的后续问题
为什么在“bysort city_id(week)”的括号中有week
手册中对bysort
引用手册
它验证数据是否按varlist1 varlist2排序,然后执行“按”,就好像只指定了varlist1一样
尼克的回答应该能满足你的需要
回答您的后续问题
为什么在“bysort city_id(week)”的括号中有week
手册中对bysort
引用手册
它验证数据是否按varlist1 varlist2排序,然后执行“按”,就好像只指定了varlist1一样
为什么周在“bysort city_id(week)”的括号中?PS您的解决方案假设city week唯一地标识观察结果,每个城市每周都有许多事务,这就是我在egenbtw中使用“if tag”的原因,如果编译器警告所有使用eGen的人您是正确的,我忽略了您的transaction\u id
变量,那就太好了。我已经编辑了我的答案,使之明确。您可能需要先对数据进行折叠
,以便每个城市和每周都有独特的观察结果。注意,没有Stata编译器;这是解释代码。Stata的回答是,如果用户阅读帮助,那就太好了。Pablo关于Stata陷阱的观点这无疑是一个有趣的问题egen
调用\n
和/或\n
的请求目前属于法律语法的范畴,但这是一个坏主意,该公司的目的是在帮助中警告您,而不是添加额外的代码来捕获它。为什么week在“bysort city\u id(week)”的括号中?PS您的解决方案假设city week唯一地标识观察结果,每个城市每周都有许多事务,这就是为什么我在egenbtw中使用“if tag”,如果编译器警告所有与Egen一起使用的人您是正确的,我忽略了您的事务id
变量,那就太好了。我已经编辑了我的答案,使之明确。您可能需要先对数据进行折叠
,以便每个城市和每周都有独特的观察结果。注意,没有Stata编译器;这是解释代码。Stata的回答是,如果用户阅读帮助,那就太好了。Pablo关于Stata陷阱的观点这无疑是一个有趣的问题egen
调用\n
和/或\n
的请求目前属于法律语法的范畴,但这是一个坏主意,该公司的目的是在帮助中警告您,而不是添加额外的代码。