有些情况下,预测变量中也会包含类别变量的情形。因此,本篇继续接前文多元线性回归的内容,通过一个简单示例展示带类别预测变量的线性回归在R语言中的计算方法,并解释结果中类别项的含义。
示例数据
示例数据、R代码等,可见网盘附件(提取码,24cr):
https://pan.baidu.com/s/1qdm6x4B1JtlBIOINPyBZyA
附件“plant.txt”来自某项调查研究数据,测量了生长于两个不同温度(低、高)环境中的某种植物的高度,以及土壤中的氮浓度,期望了解土壤氮浓度及温度对植物生长的影响。
带类别型预测变量的线性回归
考虑到线性关系最为直观且易于理解,这里希望通过建立线性回归,探讨植物生长高度与其所处环境中土壤氮浓度及温度的关系。
数据中,温度(temperature)并非具体的测量数值,而是以Low(低温)和High(高温)表示的,因此它就是一列类别变量。类似连续变量的线性回归,R语言中仍可通过lm()拟合带类别预测变量的线性回归,类别变量以因子(factor)添加在表达式中,并以“+”连接各预测变量表示响应变量由它们的加权和贡献。
#读取示例数据
dat
#通过线性回归探讨植物生长高度与其所处环境中土壤氮浓度及温度的关系
fit summary(fit) #展示拟合方程的简单统计
对于结果中各项的解释,可参考前文“多元线性回归”中的描述。整体而言,全模型p<0.001是非常显著的,R2=0.96非常完美,各预测变量的效应也很显著,表明植物生长高度与其所处环境中土壤氮浓度及温度存在很高的线性关联。
这种情况下,当回归中包含一个类别(或因子)预测变量时,类别变量被转换成取值为0或者1的名义变量(dummy variables)。例如,类别变量temperature有两个等级,Low(低温)和High(高温),R因此构造了一个名义变量,在上述结果中变量名为factor(temperature)Low。如果temperature=Low时其值为1,temperature=High时其值为0。
已经在结果中观察到所有预测变量都是显著的,把求得的斜率和截距项提取出来,现在拟合后的线性回归可以表示为:
其中plant是植物生长高度;N是土壤氮含量,一组连续变量;temperature为类别变量,temperature=Low时其值为1,temperature=High时其值为0。
最终可得知,土壤氮含量高时更有利于植物生长,并且该植物为喜温植物,低温将抑制其生长。
最后,可以绘制一些简单的统计图观察这种关系。
#单独观察植物生长高度与土壤氮浓度的关系,已知高度随氮浓度增加而增加
dat[which(dat$temperature == 'Low'),'color'] dat[which(dat$temperature == 'High'),'color']
plot(dat$N, dat$plant, pch = 20, col = dat$color, main = 'plant~N',
xlab = 'N', ylab = 'plant')
#单独观察植物生长高度与温度的关系,已知低温不利于植物生长
plot(dat$temperature, dat$plant, col = c('red', 'blue'), main = 'plant~temperature',
xlab = 'temperature', ylab = 'plant')
#同时展示三组变量关系的三维图
library(car)
dat[which(dat$temperature == 'Low'),'temp'] dat[which(dat$temperature == 'High'),'temp']
scatter3d(plant~N+temp, data = dat, point.col = dat$color)
友情链接
多元线性回归在R中的实现示例
简单线性回归和多项式回归在R中的实现示例
生存分析之R包survival的单变量和多变量Cox回归
生存分析之R包survival的参数生存回归模型
Pearson、Spearman、Kendall、Polychoric、Polyserial相关系数
普鲁克分析(Procrustes Analysis)评估物种-环境/功能关联度
最大信息系数(MIC)稳健量化相关强度及非线性关联网络
局部相似性分析(LSA)计算变量间关系的时滞效应
约束聚类-多元回归树及重要判别变量识别
几种常见的判别分析分类方法
支持向量机分类及在R中实现