作者:郑连虎,在数学学院取得理学学位的文科生,中国人民大学硕博连读生在读,山东大学管理学学士、理学学士
个人公众号:阿虎定量笔记
本期介绍:
线性回归、逻辑回归、泊松回归、多层线性模型的R语言实战技术
常用命令:
lm或lm.fit:
线性模型的拟合(fit linear models)
predict.lm:
线性回归的预测(for prediction)
lm.influence:
线性模型的回归诊断(for regression diagnostics)
lm.wfit:
加权线性模型的拟合(for weighted regression fitting)
plm:
面板数据的线性回归分析(Linear models for panel data)
glm:
广义线性模型的拟合(fit generalized linear models)
lme:
线性混合效应模型的拟合(fits a linear mixed-effects model)
实例演示:
### 线性回归
## 数据准备
# 设置工作目录
setwd('D:/R_regression')
# 读取数据
data1 = read.csv("cassady.csv", header=T)
## 回归分析
# 考察大学平均绩点(GPA)与学业的认知焦虑(CTA.tot)、生理焦虑(BStotal)之间是否存在关系(注意命令lm)
model1_1 <- lm(GPA ~ CTA.tot + BStotal, data1)
# 报告回归分析结果
summary(model1_1)
# 报告方差分析结果
anova(model1_1)
# 考虑交互项
model1_2 <- lm(GPA ~ CTA.tot + BStotal + CTA.tot*BStotal, data1)
# 报告含有交互项的拟合结果
summary(model1_2)
## 检验线性回归的经典假设条件
# 安装并加载car程序包
install.packages("car")
library(car)
# 正态性检验
qqPlot(model1_1)
# 同方差检验
residualPlots(model1_1)
### 逻辑回归
## 数据准备
# 设置工作目录
setwd('D:/R_regression')
# 读取数据
data2 = read.csv("coronaryArtery.csv", header=T)
## 回归分析
# 考察冠心病状态(group)与步行至疲劳的时间(time)之间是否存在关系(注意参数family)
model2<- glm(group~time, data= data2, family = binomial)
# 报告回归分析结果
summary(model2)
# 卡方检验
model2_p = 1-pchisq(deviance(model2), df.residual(model2))
model2_p
[1] 0.7936135
### 泊松回归
## 数据准备
# 设置工作目录
setwd('D:/R_regression')
# 读取数据
data3 = read.csv("babies.csv", header=T)
## 回归分析
# 考察一个家庭的社会经济地位(sei)与居住在家中6个月以下的儿童数量(babies)之间是否存在关系(注意参数family)
model3<- glm(babies~sei, data= data3, family = poisson)
# 报告回归分析结果
summary(model3)
# 卡方检验
model3_p= 1-pchisq(deviance(model3), df.residual(model3))
model3_p
[1] 0.9849675
### 多层线性模型
## 数据准备
# 设置工作目录
setwd('D:/R_regression')
# 读取数据
data4 = read.csv("Achieve.csv", header=T)
## 回归分析
# 安装并加载nlme程序包
install.packages("nlme")
library(nlme)
# 考察学生的词汇测试得分在多大程度上可以预测一般阅读成绩(学生是嵌套在学校里的,需要用HLM(MLM)来分析具有层次结构的数据)
model4 <- lme(fixed = geread~1, random = ~1|school, data = data4)
# 报告回归分析结果
summary(model4)
# 计算类内方差与类间方差
estVar = VarCorr(model4)
tausq = as.numeric(estVar [1,1])
sigmasq = as.numeric(estVar [2,1])
# 报告ICC结果
estICC = tausq/(tausq+sigmasq)
estICC
[1] 0.07201576
参考文献:
Ding-Geng Chen. Statistical Modelling and Computing using R. University of North Carolina-Chapel Hill, USA
公众号后台回复关键字即可学习
回复 爬虫 爬虫三大案例实战
回复 Python 1小时破冰入门回复 数据挖掘 R语言入门及数据挖掘
回复 人工智能 三个月入门人工智能
回复 数据分析师 数据分析师成长之路
回复 机器学习 机器学习的商业应用
回复 数据科学 数据科学实战
回复 常用算法 常用数据挖掘算法