大样本OLS模型假设及R实现

本文介绍了大样本线性回归模型的假设,包括线性、独立性、同方差性和满秩假设。针对异方差性问题,讨论了其后果、检验方法如bptest和ncv.test,以及处理方式如使用稳健标准误和加权最小二乘法。同时,提到了多重共线性、极端值的判断和处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 回归模型及假设

1. 回归模型:
https://blog.csdn.net/dataxc/article/details/107047611

2. 大样本OLS假设
(1)线性假设
(2) K +1维随机过程{Yi,Xi1,Xi2,……,Xik}为渐近独立的平稳过程(即统计特性如期望、方差等不随时间改变),故适用大数定律(频率趋近于概率)与中心极限定理(样本均值的分布趋近于正态分布)。
(3)所有解释变量(自变量)均为“前定”(predetermined),也称“同期外生”
(contemporaneously exogenous),即它们与同期(同方程)的扰动项正交,即Xik与Ei不相关。
(4)自变量Xi系数构成的矩阵 X 满列秩,即X 中没有多余(可由其他变量线性表出)的解释变量,即不存在严格多重共线性。

2. 回归模型的检验及处理

1. 异方差

在这里插入图片描述
1. 异方差的后果
(1) OLS 估计量依然无偏、一致且渐近正态。因为在证明这些性质时,并未用到“同方差”的假定。
(2) OLS 估计量方差表达式不再是原表达式,t检验,F检验失效;也就是说,你的得到的t值,F值错误。
在这里插入图片描述
(3) 高斯-马尔可夫定理不再成立,OLS 不再是 BLUE(最佳线性无偏估计)。也就是得到的方程不是最佳的。

2. 异方差的检验
(1)直观法——绘制残差图
(2)R提供了非常多种检验异方差的包。如,扩展包lmtest中采用bptest()函数;car包中采用ncv.test()函数

model1 <- lm( y ~ X1 + X2 + …… + Xn)  # 构建回归模型
library(lmtest)
bptest(model1)  #bp检验
bptest(model1,studentize=FALSE) #不采用学生化残差进行修正

3. 异方差的处理
(1)使用OLS+稳健标准误。一般的,我们使用white一致标准误来做假设检验。 为了计算异方差一致性的协方差矩阵,我们可以利用car包中的hccm()函数; sandwich包中的vcovHC()命令可以实现同样的功能。同时利用vcovHAC()或者NeweyWest()函数可以进行异方差和自相关稳健性Newey—West估计。

library(sandwich)
model1 <- lm( y ~ X1 + X2 + …… + Xn)
summary (model1) 
NeweyWest(model1)
result1 <- coeftest (model1, vcov = NeweyWest(model1))
print (result1)  #计算稳健标准误
summary (model1)

(2)加权最小二乘法(WLS)、可行加权最小二乘法(FWLS)等

2. 多重共线性:

判断:
(1)方差膨胀因子
一般标准:
①当0<VIF≤5时,没有多重共线性;
②当5<VIF≤10时,有较弱的多重共线性;
③当10<VIF≤100时,有中等或较强的多重共线性;
④当VIF>100时,有非常严重的多重共线性。
vif>=10时 , 就说明自变量Xi与其他变量之间有严重的多重共线性,且这种多重共线性可能会过度地影响最小二乘估计值。

data(swiss)
head(TRUE)
model1 <- lm(Fertility~ Agriculture + Examination + Education, data=swiss)
summary(model1)
library(car)
vif(model1)

(2)特征根判定法
通常认为条件数kappa;100k<100时,设计矩阵XX多重共线性的程度很小;100≤k≤1000100≤k≤1000时,设计矩阵XX存在较强的多重共线性;k>1000k>1000时,存在严重的多重共线性。

data(swiss)
head(TRUE)
model1 <- lm(Fertility~ Agriculture + Examination + Education, data=swiss)
kappa(model1,exact=TRUE)

根据条件数大于1000,说明自变量之间存在严重的多重共线性。为找出哪些变量是多重共线性的,需要计算矩阵的特征值和相应的特征向量,在R命令窗口下面代码:

eigen(model1)   #需要方阵才能判断哪些变量存在多重共线性行?

(1)如在模型中引入解释变量的平方项、过多交互项,则易引起多重共线性,因为X与X^2,较相关。
(2)在模型中加入哑变量也容易引起多重共线性,因哑变量之间较相关。

多重共线性处理方法:
(1)如不关心具体的回归系数,只关心整个方程的预测能力,可不必理会多重共线性(假设整个方程显著)。多重共线性的主要后果是使得对单个变量的贡献估计不准,但所有变量的整体效应仍可较准确地估计。
(2) 如关心具体的回归系数,但多重共线性并不影响所关心变量的显著性,也可不必理会。在方差膨胀的情况下,系数依然显著;如没有多重共线性,只会更显著。
(3)如多重共线性影响所关心变量的显著性,应设法进行处理。比如,增大样本容量,剔除导致严重共线性的变量,将变量标准化(详见下文),或对模型设定进行修改。
(4)解释变量之间的相关性普遍存在,在一定程度上也是允许的。处理多重共线性的最常见方法是“无为而治”(do nothing)。

3. 极端值:

判断:
(1)绘制散点图;
(2)outlierTest()等,如果p>0.05,可以认为没有离群点;若p<0.05,则存在离群点。
(2)回归过后发现无法解释的地方,如系数相反了、不显著了……
在这里插入图片描述极端值的处理方法:
(1)应检查是否因数据输入有误导致极端观测值。
(2)对极端观测值的个体进行背景调查,看是否由与研究课
题无关的特殊现象所致,必要时可删除极端数据。
(3)比较稳健的做法是同时汇报“全样本”(full sample)与删
除极端数据后的“子样本”(subsample)的回归结果,让读者自己
做判断。

4. 其他问题

(1)缺失值
在进行分析时,软件会会自动将缺失的观测值从样本中去掉,导致样本容量损失。
回归的时候需要特意看一下实际回归分析的样本数

(2)变量单位(数量级)的选择
例:假如分析、年龄等收入(日元)对心理健康评分的影响。
影响:
(1)收入的系数会很小,保留小数时会出现系数为0的情况;
(2)数据矩阵X中某列的数值是另一列的很多倍,可能使计算机在对矩阵进行数值计算时出现较大误差。

(3)自相关
可能存在自相关的情形
(1)时间序列数据
(2)空间自相关(如传染病数据)
(3)对数据的人为处理:如果数据中包含移动平均数(moving
average)、内插值或季节调整时,可从理论上判断存在自相关。
自相关的后果:同异方差
处理:见https://blog.csdn.net/dataxc/article/details/107047611

**参考:
陈强:《高级计量经济学》
Robert I. Kabacoff ,高涛等:《R语言实战》
其他互联网资料https://blog.csdn.net/u013524655/article/details/41219283

### 双重固定效应模型的概念 双重固定效应模型是一种用于分析面板数据的方法,旨在控制不可观测的时间不变个体特征和时间变化的整体趋势。这种方法通过引入两个维度的固定效应——个体固定效应和时间固定效应——来消除潜在的混杂因素影响[^3]。 具体而言,在经济学研究中,当存在未观察到的异质性可能同时影响自变量和因变量时,可以通过加入这些固定效应回归来减少偏差。例如: - **个体固定效应**:捕捉每个个体特有的属性(如个人的性格特质或企业的管理风格),假设它们随时间保持恒定。 - **时间固定效应**:反映所有个体共同经历的变化(如宏观经济环境或政策变动),假设这种变化对所有个体的影响相同。 这两种固定效应能够有效分离出净处理效应,从而提高估计的一致性和可靠性。 --- ### 在Stata中的实现方法 #### 数据准备 在运行任何回归之前,需确保数据结构适合面板数据分析。通常情况下,数据应为长格式(long format)。如果尚未设置面板数据集,则可使用 `xtset` 命令指定面板标识符和时间变量: ```stata xtset id time ``` 其中 `id` 是个体唯一标识符,`time` 表示时间序列变量。 #### 回归命令 以下是几种常见的实现方式: 1. **混合OLS回归** 这是最基础的形式,但无法考虑固定效应的存在。仅适用于验证是否存在显著差异的情况。 ```stata regress y x1 x2 ``` 2. **单向固定效应模型** 如果只关注某一类固定效应(比如个体固定效应),可以采用如下形式: - 使用 `areg` 或 `regress` 加入哑变量表示个体固定效应: ```stata areg y x1 x2, absorb(id) ``` - 时间固定效应则可以用因子变量表示: ```stata regress y x1 x2 i.time ``` 3. **双向固定效应模型** 结合个体固定效应和时间固定效应,完整的双固定效应模型可通过以下方式进行估计: ```stata regress y x1 x2 i.id i.time ``` 此处 `i.id` 和 `i.time` 分别代表个体和时间的虚拟变量集合。注意,随着样本规模增大,直接创建大量虚拟变量可能导致内存占用过高;此时推荐改用更高效的替代方案。 4. **基于面板数据的FE估计器** 利用专门设计的面板数据命令执行固定效应估计更为高效可靠: ```stata xtreg y x1 x2, fe vce(cluster id) ``` 上述代码实现了标准误差聚类调整后的固定效应估计,特别适于解决组间相关性问题。 5. **滚动窗口或递归估计** 对动态过程感兴趣的研究人员还可以尝试利用 `rolling` 预设前缀完成子区间内的重复计算操作[^5]: ```stata rolling _b, window(10): reg y x1 x2 ``` 以上每种方法都有其适用场景及局限之处,实际选用取决于特定研究目标与数据特性。 --- ### 示例代码展示 下面提供一段综合运用上述技术的具体实例演示如何构建并解读一个典型的双向固定效应模型: ```stata * 导入模拟数据 webuse nlswork, clear * 设置面板数据结构 xtset idcode year * 构建核心方程 gen age_sq = age^2 label variable age_sq "Age Squared" * 执行双向固定效应回归 xi: regress ln_wage age age_sq tenure south i.year, robust cluster(idcode) * 输出结果概览 estimates table, b se p stats(r2_a N_clust) ``` --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值