Softwares for Economics

Published:

An economics student is a jack of all trades and master of none.

今天尧尧和我分享了一则推文 ,恰好我之前用过Julia-Pluto;之后正在找实习的Boyi和我分享了他的简历:熟悉使用Word、PowerPoint等办公软件,曾使用Excel和Stata收集分析上万条数据,并对文件管理非常熟悉。我指出业界可能不太用Stata,并且他需要提升一些编程能力;十一期间去北京实习的凯凯说他们要会SQL

适逢今天诺贝尔经济学奖公布,虽然和物化不同与AI无关,但21世纪经济学习需要一定的计算和编程能力,下面将盘点经济学都会用到的软件:

编程软件C++PythonRJulia
我大一刚入学时(理工科)学的就是C++,大二转向(经管类)学的Python,致使我一段时间不太适应这种语法转变。例如交换两个数的值,C++里需要一个临时变量,可以看作有三个盒子,先把a中的小球放入t,再把b中的小球放入a,最后把t中原来a的小球放入b,实现两个数的对调:

#include<iostream>
using namespace std;
int main()
{
	int a = 5;
	int b = 10;
	int t = a;
	a = b;
	b = t;
	cout << "a: " << a << endl;
	cout << "b: " << b << endl;
	system("pause");
	return 0;
}

Python一句话就能写完:

x,y=5,10
x,y=y,x
print(x,y)

Python更简洁,但C++在编程的底层逻辑上更强,所以工科还是先学CC++

踪家峰老师在他的《区域与城市经济学》一书中指出经济学本科生需要掌握Stata,研究生需要在Stata的基础上在PythonR中掌握一个。计算机领域的学者更熟悉Python,统计学领域的学者更熟悉R;机器学习两者都可选择,但从陈强老师两本书的销量来看还是选择Python的更多。

Julia是由MIT开发的,学习可参见Interactive Computational Thinking — MIT

经济数据分析StataSPSSEViewsMATLAB
经济学跑回归离不开Stata,其重要性不言自明;
SPSS在统计学上机时会用到,但之后就不用了,更多的是管理学和社会学做相关分析、因子分析等会用到;
EViews作为时间序列分析的工具,计量上机时有的老师会选择;
MATLAB在经济学数值分析、高宏DSGE相关部分会用到,美赛通常也是使用PythonMATLAB

社会网络分析UCINetGephi
社会网络分析软件种类繁多、功能强大,UCINet是最知名和最经常被使用的处理社会网络数据的分析程序,能够处理矩阵格式的数据,并提供了大量数据管理和转化工具,但可视化功能不强,需要联动搭配NetDrawMagePajek使用。
Gephi是一款网络分析领域的数据可视化处理软件,开源免费,界面优美,被誉为“数据可视化领域的Photoshop”,应用场景广泛,包括社交网络分析、舆情分析、知识图谱、生物科学等领域,主要用于各种网络和复杂系统的动态和分层图的交互可视化与探测。
Stata作为经管邻域最常用的计量分析软件,近年来在社会网络分析领域第三方包也不断完善,可视化功能日趋完备,但处理数据量有限,一般是经过上述专业社会网络分析软件处理计算后,得到相应指标进行改进作为解释变量,再用Stata进行分析。

地理信息系统ArcGISGeoDa

文字排版处理: \(\LaTeX\) 、Markdown

TeX Live+TeXstudio需要配环境且太大了,个人更偏好Overleaf;可参考一份不太简短的LATEX2ε介绍
Markdown是一种轻量级标记语言,可做网页、笔记、演示文稿等,可在VS CodeObsidian里编译,改改就能用Marp做slides;可参考Awesome-Marp.

附录1:投入产出分析在Excel中的操作主要有:

1.矩阵乘法(MMULT):函数——>数学和三角函数(Maths & Trig),array1、array2分别选择左乘和右乘的矩阵
2.函数嵌套:MMULT(MMULT(A,B),C)等价于MMULT(A,MMULT(B,C))
3.矩阵转置(TRANSPOSE):Excel粘贴时能实现行/列向量、矩阵的转置
4.矩阵求逆(MINVERS)
5.固定行/列:在字母前加$表示固定列只改变行的位置,在数字前加$表示固定行只改变列的位置
6.构造矩阵:使用IF(logical_test,value_if true,value_if false)

附录2:不同编程语言注释总结

//C++
//Word里直接加两条斜杠不等于删除!
#Python
#使用一个井字符进行单行注释
'''
使用一对三个英文单引号进行多行注释
'''
"""
或者使用一对三个英文双引号进行多行注释
"""
*Stata
*单行注释
reg y $x, r //行后注释
/*
多行注释
*/
%LaTeX
%使用百分号进行注释,正常打百分号需加转义符