R语言学习笔记:回归分析

1.一元线性回归

lm():

 

lm(formula, data, subset, weights, na.action, method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE, contrasts = NULL, offset,...)

formula为要拟合的模型;data为数据框或列表;subset样本观察值的子集;weights权重向量,应是数字向量或NULL;na.action为对缺失值的处理方法,默认为na.fail即返回错误,na.omit表示忽略缺失值,na.pass表示返回对象不变;method表明拟合的方法,包括“qr”,“model.frame”;model表示返回合适的模型框架;x表示返回模型矩阵;y表示返回响应;qr表示返回qr分解

 

2.多元线性回归

同样使用lm(),公式改变

包括:y~x,y~x+z,y~x*z,y~(x+z+m)^2等

逐步回归:对多元回归的结果进行逐步回归

step()

 

step(object, scope, scale = 0, direction = c("both","backward","forward"),trace = 1,keep = NULL, steps = 1000, k = 2,...)

object是线性模型;scope确定逐步搜索的范围,是一个公式或包含upper、lower的列表;direction确定逐步回归的方法,默认值"both";trace若为正值,则逐步回归分析的过程将打印出来;keep选择对象元素的子集并返回;steps表示回归的最大步数;k指AIC的自由度

 

3.回归诊断

残差诊断:是否存在异常值

可用$residual提取残差,通过绘制(残差~数据序号)或(残差~拟合值)散点图像,观察是否存在异常值

影响分析:强影响点

influence.measures():提供4种分析的汇总结果

 

infulence.measures(model)

model为模型

 

多重共线性诊断:

特征根分析:存在特征根接近0,说明存在多重共线性

求特征根eigen()

 

eigen(x, symmetric, only.values = FALSE, EISPACK = FALSE)

x是待计算的矩阵;symmetric为TRUE,则假设矩阵是对称的;only.values默认返回特征根和特征向量,若为TRUE则只返回特征根。

 

x必须是经过标准化和中心化后的矩阵,主对角线元素必须为1。可以使用cor()对矩阵计算相关系数,对矩阵进行标准化。

条件数:多重共线性的严重程度

kappa()

 

kappa(z, exact = FALSE, norm = NULL, method = c("qr", "direct"),...)

z为计算的矩阵;exact表示逻辑值,若为TRUE表示精确计算条件数,默认为近似计算;method选择使用的方法,默认为qr。

 

计算结果大于1000,说明多重共线性比较严重

方差扩大因子:

vif():DAAG包

 

vif(obj,digits=5)

obj为回归分析对象,digits为小数点位数。

 

方差扩大因子大于10,说明存在多重共线性。

4.岭回归:针对多重共线性

通过绘制岭迹图选择合适的K值

lm.ridge():MASS包

 

lm.ridge(formula, data, subset, na.action, lambda = 0, model = FALSE, x = FALSE, y = FALSE, contrasts = NULL,...)

formula是回归模型公式表达式;data是数据框;subset选择子集;na.action对缺失值进行处理;lambda是领参数的标量或矢量;model、x、y分别表示结果是否返回模型框架、设计矩阵和响应变量

 

通过绘制图,选择合适的lambda,然后进行回归,可以通过select()选择合适的k值即lambda

5.广义线性模型

glm()

 

glm(formula, family = gaussian, data, weights, subset, na.action, start = NULL, etastart, mustart, offset, control = list(...),...)

formula为拟合公式;family指定分布族,包括正态(gaussian)、二项(binomial)、泊松(poisson)、伽马(Gamma),还可以通过link指定连接函数,默认为family=gaussian(link=identity);offset指定常数部分;control用于对待估参数的范围进行设置

 

具体分布及对应的连接函数可参考相关帮助。
 






 

你可能感兴趣的:(R)