全文链接:http://tecdat.cn/?p=30953
读取工资数据
在excel中选取数据,复制。在R中读取数据
data=read.table("clipboard",header=T)#在excel中选取数据,复制。在R中读取数据
apply(data,2,mean)#计算每个变量的平均值
obs lnWAGE EDU WYEAR SCORE EDU_MO EDU_FA
25.5000 2.5380 13.0200 12.6400 0.0574 11.5000 12.1000
apply(data,2,sd) #求每个变量的标准偏差
obs lnWAGE EDU WYEAR SCORE EDU_MO EDU_FA
14.5773797 0.4979632 2.0151467 3.5956890 0.8921353 3.1184114 4.7734384
cor(data)#求不同变量的相关系数
可以看到wage和edu wyear score 有一定的相关关系
plot(data)#求不同变量之间的分布图
可以求出不同变量之间两两的散布图
lm=lm(lnWAGE~EDU+WYEAR+SCORE+EDU_MO+EDU_FA,data=data)#对工资进行多元线性分析
Summary(lm)#对结果进行分析
可以看到各个自变量与因变量之间的线性关系并不显著,只有EDU变量达到了0.01的显著性水平,因此对模型进行修改,使用逐步回归法对模型进行修改。
lm2=step(lm,direction="forward")#使用向前逐步回归
summary(lm2)
可以看到,由于向前逐步回归的运算过程是逐个减少变量,从该方向进行回归使模型没有得到提升,方法对模型并没有很好的改进。因此对模型进行修改,使用向前向后逐步回归。
从结果来看,该模型的自变量与因变量之间具有叫显著的线性关系,其中EDU变量达到了0.001的显著水平。R-square值也得到了一定的提高,代表模型的拟合度得到提升。然后,对本模型进行均匀分布检测。
`plot(lm3)#查看回归拟合结果 样本点的分布情况
`
1.普通残差与拟合值的残差图
- 正态QQ的残差图
- 标准化残差开方与拟合值的残差图
- cook统计量的残差图
从上图看到。样本残差值均匀的分布在中间0的水平线周围,说明样本是均匀分布的。
正态qq残差图可以看到标准残差基本上分布在斜线周围,说明样本点满足正态分布。
上图说明标准残差也均匀地分布在中间水平线周围。
上图从cook统计量的大小我们可以看到有哪些值可能是利群点,其中包括 28 ,39 ,50号样本.
`outer=which(residuals(lm2)>=2*var(residuals(lm2)))`#找出模型中残差值大于2倍方差的异常值(即分布不均匀的样本点),将其排除
data=data[-outer,]
然后进行White检测。
White test
library(lmtest)
wt=bptest(lm3, ~ EDU * WYEAR + I(EDU^2) + I(WYEAR^2), data = data)
从white检测结果来看,p值明显大于0.05,即接受原假设H0:随机误差具有相同的方差。因此。线性回归模型具有良好的统计性质。
对修正后的数据重新进行线性回归
lm5=step(lm4,data=data,direction="both")
summary(lm5)
可以看到重新拟合后的模型的R-square值得到了一定的提升,说明模型的拟合度提高。