- 博客(39)
- 收藏
- 关注
原创 【memo】对SSIV(bartik-IV)的思考
Bartik IV 能够避免内生性的问题,其核心在于它的工具变量的构造方式。通过结合地方行业分布的异质性和全国性行业冲击的外生性,Bartik IV 的工具变量具有与被解释变量(通常是地方经济结果变量)相关,但与误差项无关的特性,这正是一个合格工具变量所需要满足的条件。Bartik IV 通过利用全国性行业冲击的外生性和地方行业分布的异质性,构造出一个与误差项无关的工具变量,从而避免了内生性问题。这种工具变量的构造方式使得它能够在估计因果效应时避免自变量与误差项的相关性,从而确保估计的有效性。
2024-10-16 16:28:53
1493
原创 【stata】自写命令分享twfe_stgdid,一键完成staggered-DID
仿照CSDID命令一键出实证结果、出图,我写了一个命令。基于双向固定效应模型(TWFE)一键式完成staggered-DID分析。TWFE估计did estimator时难以避免负权重带来的问题(异质性处理效应)。所以,非常惭愧地说,封装这个函数的意义就是帮助初步查看(可能并不严谨的)结果。虽然可能不太严谨,但查看TWFE的结果依然是有意义的(初步查看、或者与其他方法进行对比去对比)。总之,这个命令一方面或许可以帮助大家做staggeredDD时省去一些功夫,另外也是对我上一期分享命令的补充,具体见文末。
2024-09-09 01:09:18
1222
原创 【stata】自写命令分享dynamic_est,一键生成dynamic effect
是一个用于可视化动态效应(dynamic effect)的工具。它特别适用于事件研究(event study)或双重差分(Difference-in-Differences, DID)分析。通过一句命令即可展示动态效应,帮助用户更好地理解在某变量的作用下,随时间变化其对结果变量的影响。在输出的图像中,为了让结果更加直观,我加入了各期的系数、标准误,也标注了显著性这个命令最早是我用来checkdata的,后来为了方便就写成了函数。
2024-09-09 01:07:15
1293
原创 【stata】egenmore函数速查表
egenmore是一个用于 Stata 的扩展包,包含了一组扩展的egen函数,超出了 Stata 内置的egen函数集。这些扩展函数提供了更广泛的操作,包括字符串处理、时间序列分析、数值运算、数据分组和汇总等,进一步增强了 Stata 在数据处理和分析中的功能。要使用egenmore安装后,你可以像使用内置的egen函数一样,使用egenmore提供的扩展函数。:返回第一个非缺失值。:返回整数的第一次出现。:返回整数的最后一次出现。:返回最后一个非缺失值。
2024-08-21 11:31:25
1162
原创 【python】调用openAI api接口批量处理excel中的文本
用于AI处理自然语言(非标准化数据)。调用OpenAi Api等进行自然语言处理,AI输出相应的内容。帮做dirty work
2024-08-19 17:18:12
1924
原创 【stata】求滚动波动情况
假设 2008-2010的value分别为【6.264004 】、 【11.11958】 、 【18.7657】然后求这3年内的value的平均。等于【12.049761】再用逐年的数值减去均值,而后求平方项 / 3。
2024-04-14 15:34:08
1101
原创 【推导结果】如何得到 回归均方误差 & 估计系数的标准误
对于①参数线性②不存在“严格多重共线性”③随机抽样④严格外生性⑤“球形扰动项”(条件同方差+不存在自相关)五个假定均能够满足时。OLS估计量为BLUE,最优无偏线性估计量。
2024-03-28 22:22:07
7779
2
原创 R语言setNames命令(stats)
setNames函数用于为对象设置名称,并返回带有新名称的对象。这在创建对象并希望在函数定义的末尾设置名称时非常有用,尤其是当你不希望为了分配名称而存储对象时。
2024-01-30 13:43:46
817
原创 R语言dplyr中的`cur_`系列函数
函数用于重新定义数据框的结构,包括列名、列的顺序等。它允许你指定新的列名和列的顺序,以便重新构建数据框的结构。将重新构建数据框,将列 A 重新命名为 X,列 B 重新命名为 Y,列 C 重新命名为 Z。等)中获取关于当前组或变量的信息的函数。函数主要用于在数据框中同时对多个列进行相同的操作。: 返回当前组的键,是一个tibble,每个组变量对应一列。来获取当前列的名称,然后对每列应用了相应的操作。: 返回当前组的大小,即当前组内的观测数量。返回了当前组的键,以列表形式存储。返回了当前组的行索引。
2024-01-29 11:06:33
567
原创 R语言do.call的简介及用法
do.call函数用于构造和执行一个函数调用,可以通过指定函数名称或函数对象以及一个包含参数的列表来实现。要调用的函数,可以是一个函数对象或一个非空的字符字符串,表示函数的名称。一个包含函数调用参数的列表。args列表的names属性提供参数的名称。一个逻辑值,指示是否引用参数。如果设置为FALSE(默认值),则参数在调用环境中进行评估,如果设置为TRUE,则对每个参数进行引用。一个环境,在其中进行调用的评估。如果what是一个字符字符串并且参数是符号或引用表达式,这可能会很有用。
2024-01-29 00:42:36
2305
原创 R语言数据reshape:dplyr包函数pivot_wider
pivot_wider函数1.pivot_wider 的用法:pivot_wider 用于将数据从长格式变为宽格式,增加列数,减少行数。它将某些列的值转换为新的列,并使用这些值填充新列。以下是一些关键参数:names_from: 用于指定要从中获取新列名的列。可以是一个或多个列。values_from: 用于指定要填充新列的值的来源列。可以是一个或多个列。names_prefix: 可选,添加到每个变量名的前缀字符串。names_sep: 可选,用于将 names_from 或 values_
2024-01-28 20:29:36
1692
原创 R语言数据reshape:dplyr包函数pivot_longer
上述数据框中,Math_Score_Week1 和 Math_Score_Week2 是两个不同周的数学成绩,English_Score_Week1 和 English_Score_Week2 是两个不同周的英语成绩。在这个例子中,我们使用 .value 来表示数学和英语成绩的部分,同时指定了一个额外的 Week 列。这样,原始数据的宽格式就被转换成了长格式,每个学生每周的数学和英语成绩都被整理到了新的行中。names_sep:指定用于分割列名的字符,在这里是下划线 "_”。
2024-01-28 20:22:04
1694
原创 R语言条件赋值case_when函数
来赋予不同的等级(A、B、C、D)。如果分数不符合任何条件,就返回默认值 “D”。会逐个检查条件,返回第一个满足条件的结果。如果没有条件满足,就返回默认结果。包提供的一种用于多条件条件语句的函数,它的作用类似于传统编程语言中的。用于根据一系列条件进行值的选择或替代。在这个例子中,根据不同的分数范围,使用。以下是一个简单的例子,说明了。
2024-01-27 21:42:42
1445
原创 R语言sub和gsub的使用
这个命令与第二句类似,使用正则表达式,匹配字符串中以左括号 “(” 开始的部分,然后将其替换为空字符串。表示匹配任意字符,包括空格)直到遇到冒号和空格 ": ",然后将其替换为空字符串。表示匹配左括号),然后将其替换为左括号 “(”. 这样就保留了字符串中左括号及其左侧的部分,去掉了右括号及其右侧的部分。在正则表达式中,某些字符前面需要使用反斜杠进行转义,以表示它们的字面含义。的区别在这里并不明显,因为只有一个匹配到的模式需要替换。: 这个命令使用正则表达式,匹配字符串中以左括号 “(” 开始的部分(
2024-01-27 16:46:03
802
原创 R语言lappy的用法
将包含一个列表,其中每个元素都是对应年份的文件路径。这种操作对于批量处理文件路径、文件读取等任务非常有用。是R语言中的一个函数,用于将指定的函数应用于列表的每个元素,返回一个新的列表。请帮我解释一下这一句命令, 并结合这一句,教我lapply的用法。中的每个元素(年份),并返回一个包含结果的列表。函数生成的文件路径。函数创建一个列表,其中包含了通过。返回一个列表,其中包含了将。这一句代码是用R语言中的。
2024-01-26 11:33:26
624
原创 python循环入门(Iterative)
否则,保持’value’不变。这样就实现了对’id_str’为’New York’或’Shanghai’的行的’value’列进行除以2的操作。因此,这行代码的总体效果是,对于’id_str’是’New York’或’Shanghai’的行,将’value’除以2;对于其他行,保持’value’不变。if row[‘id_str’] in [‘New York’, ‘Shanghai’]:: 这是一个条件语句,检查当前行的’id_str’列是否包含在列表[‘New York’, ‘Shanghai’]中。
2023-12-16 18:43:06
163
原创 python数据清理入门
这段代码使用了一个 for 循环,它对 shanghai_data 数据框按照 ‘transaction_type’ 进行分组。然后,对每个分组进行处理。
2023-12-16 17:51:56
78
原创 python备忘录——pandas笔记
注意,DataFrame 的列由多种数据类型组成时,该操作耗费系统资源较大,这也是 Pandas 和 NumPy 的本质区别:NumPy 数组只有一种数据类型,DataFrame 每列的数据类型各不相同。调用 DataFrame.to_numpy() 时,Pandas 查找支持 DataFrame 里所有数据类型的 NumPy 数据类型。Pandas 为频率转换时重采样提供了虽然简单易用,但强大高效的功能,如,将秒级的数据转换为 5 分钟为频率的数据。Pandas 主要用 np.nan 表示缺失数据。
2023-03-20 21:20:48
582
原创 Stata标注技巧:用for循环批量画图,标注相应文字
想用for循环批量输出结果,输出标题/label一般暂时使用数值,但结果不太直观。例如,hy2是国民经济行业分类代码。现在想要绘制每一个行业的出口额的时间趋势图。我们要做的是:将贸易额回归至时间虚拟变量上,考察lnv的时间趋势,使用如下命令。循环绘制时间趋势图,得到如下图结果。发现label是数字,不太直观。如何把数字对应的行业”文字“作为label加到图中?生成了标量s13~s45 用于储存行业代码编号。由此,我们就得到了中文label的时间趋势图。执行上述代码,sca list得到如下结果。
2023-03-17 23:23:33
1620
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人