R语言之线性回归分析

一、建立简单线性回归模型
可使用函数lm实现,函数是围绕公式展开的,lm接受一个公式对象作为试图建立的模型,可以通过?formula来查询通用格式,data.frame也可以被明确指定,它包括所需的数据
> library(RSADBE)
> data(IO_Time)
> IO_lm = lm(CPU_Time ~ No_of_IO,data=IO_Time)
> class(IO_lm)
> summary(IO_lm)
结果中:
F-statistic: 635.4 on 1 and 8 DF,  p-value: 6.569e-09为模型的整体检验,也就是F检验

Multiple R-squared:  0.9876,    Adjusted R-squared:  0.986 为决定系数和校正的决定系数

Estimate Std. Error t value Pr(>|t|)    
(Intercept) 0.050933   0.010033   5.077 0.000957 ***
No_of_IO    0.040758   0.001617  25.207 6.57e-09 ***
为自变量和截距的估计值和检验结果,*越多表示越显著

Residuals:
      Min        1Q    Median        3Q       Max
-0.016509 -0.011592 -0.001327  0.005279  0.024006

为残差的统计量,中位数接近0表示接近标准正态分布,因为标准正态分的中位数为0

二、多元线性回归

也使用lm函数,但是公式格式有所改变

> data(Gasoline)
> gasoline_lm = lm(y~., data=Gasoline)
> summary(gasoline_lm)

这里公式y~.表示因变量为y,其余所有变量都为自变量

三、四种残差
1.标准化残差
就是将残差进行标准化后的结果

2.半学生化残差
对标准化残差的修正

3.预测残差
是真实值与预测值之差

4.R-学生化残差
对异常值的检测很有用

通过resid函数提取残差,并进行标准化,就得到标准化残差;
通过rstandard函数得到预测残差
通过rstudetn函数得到R-学生化残差

五、异常值

异常值分为杠杆点和影响点,针对自变量的称为杠杆点,针对因变量的称为影响点
1.杠杆点
杠杆点对回归系数没有影响,但是会影响决定系数,可以通过观察帽子矩阵来识别,杠杆作用的平均值为h=p/n,p为自变量个数,n为样本量,如果一个观测值的杠杆值>2h,则应考虑为杠杆点,考虑剔除或采取措施。R中可以通过hatvalues函数计算杠杆值。
> data(Gasoline)
> gasoline_lm = lm(y~., data=Gasoline)
> hatvalues(gasoline_lm)
> which(hatvalues(gasoline_lm) > length(gasoline_lm$coefficients)/nrow(Gasoline))

2.影响点
影响点有将回归线拉向它的趋势,因此会影响回归系数的值,可以通过COOK距离来判断,R中可以通过cooks.distance函数计算每个观测值的COOK距离。根据经验,如果距离大于1,则说明观测点为影响点。

此外,还可以通过dffits函数和dfbetas函数计算相应的值,如果dffits>2/根号p/n,那么可认为是影响点,如果dfbetas>2/根号n,也可认为是影响点,p为自变量个数,n为样本量

六、多重共线性
多重共线性可能会引起的问题有
1、回归系数不可信,并且可能符号出现错误
2.t检验和F检验失效
3.某些预测值的重要性会削弱
可以通过car包和faraway包的VIF函数计算VIF值

七、模型选择
函数step可以实现基于AIC准则的模型选择,最优模型为AIC值最小的
> data(Gasoline)
> gasoline_lm = lm(y~., data=Gasoline)
> step(gasoline_lm)

时间: 2024-12-10 00:33:46

R语言之线性回归分析的相关文章

R语言 多元线性回归分析

#线性模型中有关函数#基本函数 a<-lm(模型公式,数据源) #anova(a)计算方差分析表#coef(a)提取模型系数#devinace(a)计算残差平方和#formula(a)提取模型公式#plot(a)绘制模型诊断图#predict(a)用作预测#print(a)显示#residuals()计算残差#setp()逐步回归分析#summary()提取模型资料 #多元线性回归分析 #回归系数的估计 #显著性检验: 1回归系数的显著性检验 t检验 就是检验某个变量系数是否为0 2回归方程的显

R语言之Logic回归分析

理论上,回归分析是在目标变量为连续型数据的情况下建模的,它不能处理目标变量为分类型数据的情况. 而logic回归分析的思路是把分类变量(“是否开通VIP”)转化为连续变量(“开通VIP的概率”),进而使用回归分析的方法间接地研究分类分析的问题. 一.原理 假设vip变量为分类变量,其取值只有0和1,这是分类型变量,无法通过回归分析建模. 但是,vip取值为1的概率却是一个连续型变量(prob.vip),可以使用回归分析为prob.vip建模: prob.vip=k1*x1+k2*x2+k3*x3

R语言基础知识学习(五):R中的线性回归分析

在R中线性回归分析的函数是lm(). (1)一元线性回归 我们可以根据以上数据来分析合金的强度是否与碳含量有关系. 首用以下命令把数据读取到R中: x <- c(seq(0.10,0.18,by = 0.01),0.20,0.21,0.23)y <- c(42.0,43.5,45.0,45.5,45.0,47.5,49.0,53.0,50.0,55.0,55.0,60.0)plot(x,y) 通过画图得到想x,y两个变量之间存在某种线性关系 所以,就可以用lm()函数来拟合直线,通过回归函数l

R语言之Logistic回归分析

一.probit回归模型在R中,可以使用glm函数(广义线性模型)实现,只需将选项binomial选项设为probit即可,并使用summary函数得到glm结果的细节,但是和lm不同,summary对于广义线性模型并不能给出决定系数,需要使用pscl包中的pR2函数得到伪决定系数,然后再使用summary得到细节> library(RSADBE)> data(sat)> pass_probit <- glm(Pass~Sat,data=sat,binomial(probit))&

利用R进行多元线性回归分析

对于一个因变量y,n个自变量x1,...,xn,要如何判断y与这n个自变量之间是否存在线性关系呢? 肯定是要利用他们的数据集,假设数据集中有m个样本,那么,每个样本都分别对应着一个因变量和一个n维的自变量: m个样本,就对应着一个m维的列向量Y,一个m×n维的矩阵X Y是X的每一列X1,...,Xn的函数 那么,Y与X1,...,Xn之间到底是什么关系呢?是满足Y=a1*X1+...+an*Xn这样的线性关系还是Y=f(X1,...,Xn)这样的非线性关系呢? 为了解决这个问题,可以首先利用多元

R语言-回归分析笔记

使用若干自变量并建立公式,以预测目标变量 目标变量是连续型的,则称其为回归分析 (1)一元线性回归分析 y=kx+b sol.lm<-lm(y~x,data) abline(sol.lm) 使模型误差的平方和最小,求参数k和b,称为最小二乘法 k=cov(x,y)/cov(x,x) b=mean(y)-k*mean(x) 估计参数b,k的取值范围 p元模型 p是自变量数,n是样本数 [ki-sd(ki)ta/2(n-p-1),ki+sd(ki)ta/2(n-p-1)] k0表示回归模型的b;  

R语言&amp;页游渠道分析(转)

对着满屏的游戏后台数据,需要快速了解数据特征,一种茫然无从下手的感觉? 本文在游戏后台数据中,如何通过R语言快速的了解游戏后台的数据特征,以及统计各个数据之间的相关系数,并通过相关图来发现其中相关系数较高的数据,从而通过R得到高相关系数之间的线性回归方程,最后通过矩阵散点图来初步发现数据中的一些规律解决相应的问题.附:本文需要安装corrgram和car包 具体代码如下: library(corrgram) library(car) summary(data9) cor(data9) scatt

R语言 逐步回归分析

逐步回归分析是以AIC信息统计量为准则,通过选择最小的AIC信息统计量,来达到删除或增加变量的目的. R语言中用于逐步回归分析的函数 step()    drop1()     add1() #1.载入数据 首先对数据进行多元线性回归分析 tdata<-data.frame( x1=c( 7, 1,11,11, 7,11, 3, 1, 2,21, 1,11,10), x2=c(26,29,56,31,52,55,71,31,54,47,40,66,68), x3=c( 6,15, 8, 8, 6

R语言之回归分析

数据指标建模指的是,使用若干自变量并建立公式,以预测目标变量.如果研究的目标变量是连续型的,则称其为回归分析. 一.一元线性回归分析 data.lm<- lm(height~weight,women) 计算模型 summary(data.lm) 列出模型详细信息 Call: lm(formula = height ~ weight, data = women) Residuals: Min 1Q Median 3Q Max -0.83233 -0.26249 0.08314 0.34353 0.