R的光环

R免费

R 资源公开(不是黑盒子,也不是吝啬鬼)

R可以在UNIX, Windows和Macintosh运行.

R 有优秀的内在帮助系统.

R有优秀的画图功能

学生能够轻松地转到商业支持的 S-Plus程序(如果需要使用商业软件)

R语言有一个强大的,容易学习的语法,有许多内在的统计函数.

R的历史

S语言在1980年代后期在AT&T实验室开发. R 项目由Auckland 大学统计系的Robert Gentleman和Ross Ihaka于1995年开始的. 它很快得到广泛用户的欢迎. 目前它是由R核心发展团队维持;它是一个由志愿者组成的工作努力的国际团队

R软件的安装

访问网站:www.r-project.org ,在CRAN栏目可以找到相应的安装文件。常规的R软件安装包 仅包含最核心的功能模块,如果需要用R做特定领域的数据分析,则需要下载对应功能包(package)。

由于R软件自带操作界面过于简单,在实际使用过程中,我们通常会安装其他的接口界面,如 RStudio。

数据导入

把其他格式存储的数据导入到R中,是数据分析的第一步。在R基础包{utils}中有函数 read.table()。read.table函数读取txt、csv等格式的文件比较有效,但是对于我们 大多数人常用的excel文件处理不太方便。有许多志愿者提供了针对Excel文件读取的 package,但是我个人认为{RODBC}包最好用。下面一段示例代码:

library(RODBC)
con = odbcConnectExcel("c:/savings.xls") #如果是2007及更高版本的Excel,用odbcConnectExcel2007()
sqlTables(con) #查看Excel文件中表单的名称
##     TABLE_CAT TABLE_SCHEM TABLE_NAME   TABLE_TYPE REMARKS
## 1 c:\\savings        <NA>    Sheet1$ SYSTEM TABLE    <NA>
## 2 c:\\savings        <NA>    Sheet2$ SYSTEM TABLE    <NA>
## 3 c:\\savings        <NA>    Sheet3$ SYSTEM TABLE    <NA>
dat1 = sqlFetch(con,"Sheet1")
odbcClose(con)
head(dat1)
##   year income savings
## 1 1970  727.1    61.0
## 2 1971  790.2    68.6
## 3 1972  855.3    63.6
## 4 1973  965.0    89.6
## 5 1974 1054.2    97.6
## 6 1975 1159.2   104.4

虽然有人指出RODBC方式也存在许多不足,但是应付计量经济学中的绝大多数数据集够用了!

利用计算机产生\(T=100\)\(i.i.d\)的标准正态分布随机变量序列,记这些序列为\(e_1,\cdots, e_{100}\)

\(Y_1=e_1\)\(Y_t = Y_{t-1}+e_t\)\(t=2,3,\cdots,100\);则

y = rep(0,100)
y[1] = e[1]
for(i in 2:100){y[i]=y[i-1]+e[i]}
plot(y,type='l')

再利用计算机产生100个i.i.d的标准正态分布新序列\(a_1,\cdots,a_100\)。令 \(X_1=a_1\)\(X_t =X_{t-1}+a_t\),\(t=2,\cdots,100\)

a = rnorm(100)
x = rep(0,100)
x[1] = a[1]
for(i in 2:100){x[i] = x[i-1]+a[i]}
plot(a,type="l")

plot(x,type="l")

\(X_t\)\(Y_t\)两个序列分别由两个毫无关系的白噪声累加而成,这两变量之间也因该毫无关系才对。 但是通过分析\(X_t\)\(Y_t\)的散点图以及回归结果,所得出的结论却与我们的判断并不一致。

library(ggplot2)
library(xtable)
qplot(x,y,geom=c("point","smooth"),method="lm")

summary(lm(y~x))$coef
##                  Estimate Std. Error      t value  Pr(>|t|)
## (Intercept)  0.4180341619  0.8245325  0.506995357 0.6132970
## x           -0.0008656732  0.1006275 -0.008602753 0.9931536

从回归的结果可以看出,解释变量系数对应的p值远小于0.05,按照经典回归分析的评价标准,此时\(X\)\(Y\)的影响“显著”!两个本无任何关系的变量,回归结果却认为他们存在“显著”的回归关系,这就是“伪回归”。

3D图形

函数\(f(x_1,x_2) = 2x_1^2+x_2^2\)

f = function(x1,x2){2*x1^2+x2^2}
x1 = x2 = seq(-3,3,length =50)
z =outer(x1,x2,f)
persp(x1,x2,z,theta = 40 ,phi=20,r=50,d=0.1,shade=0.75,col="lightgreen",
      ticktype = "detailed",nticks=7)

面板数据回归

模型的设定

面板数据模型:\(Y_{it}\) = \(X_{it}\beta +\alpha_i + u_{it}\),\(i=1,\cdots,N\), \(t = 1,\cdots,T\)\(i\)表示样本观测个体的个数,\(t\)表示样本观测期数。 \(\alpha_i\)为个体的异质性,用来反映一些不随时期变化仅在个体间有差异的影响因素。

固定效应模型

和传统的回归模型类似,面板数据模型也有一些基本假定:

1.解释变量\(X_{it}\)不存在共线性;

2.随机扰动项与解释变量无关,\(E(u_{it}|X_{it})=0\)

3.随机扰动项同方差,\(D(u_{it}|X_{it})=\sigma^2_u\)

动态面板数据

动态面板数据模型 \[\begin{equation} Y_{it} = \gamma Y_{i,t-1} + X_{it}'\beta + \alpha_i + \varepsilon_{it} \end{equation}\]

传统的估计方法都存在内生性问题。

——————————the end———————————-