R语言与回归分析学习笔记(应用回归小结)(2)

本文通过R语言介绍了异常点与强影响点的概念,利用模拟数据展示了如何使用outlierTest和influencePlot进行判断。讨论了异常点的处理方法,并强调对异常点的重视。此外,文章提到了回归模型的改进,如岭回归、主成分回归应对复共线性,以及box-cox变换解决异方差性。最后,探讨了变量选择,推荐使用全子集回归和subsets函数,并提醒读者谨慎对待变量变换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三、异常点

        所谓的异常点一般指有着很大残差(绝对值)的点,如果对模型的参数估计值影响出现了比例失衡,那么我们称之为强影响点。为了说明异常点与强影响点的判别,我们特意采用模拟的数据来证实它。

       为了简单起见,我们采用一元模型来说明问题。

       模拟数据:(模型:y=0.5+1.7*x+e)

x<-rexp(100,0.2)
e<-rnorm(100)
y<-0.5+1.7*x+e

      我们来看看这个回归结果

lm(y~x)

     输出结果:

Call:

lm(formula= y ~ x)

Coefficients:

(Intercept)            x 

     0.5489       1.7955 

     我们来改变其中的一个点:

y[50]<-0.7+0.2*x[50]+e[50]

      那么他是异常点吗?这个改变毕竟不大,能被观测出来吗?我们可以先看看回归系数发生了什么样的改变?

lm.reg1<-lm(y~x)
lm.reg1

Call:

lm(formula= y ~ x)

Coefficients:

(Intercept)            x 

     0.3827       1.7404

         我们通过qq图进行初步判断:


         显然初步判断它没有成为一个异常点。我们也可以通过car包里的outlierTest()来判断。

outlierTest(lm.reg1)

       输出结果:

NoStudentized residuals with Bonferonni p < 0.05

Largest|rstudent|:

        rstudent        unadjusted p-value         Bonferonni p

36    2.285984           0.024431                       NA

        也就是说没有异常点,其中残差最大的点是36号点。这也告诉我们不是所有的不合

### R语言回归分析的学习方法示例 #### 1. 简单线性回归 简单线性回归是研究两个连续型变量之间关系的一种基本方法。在R语言中,可以通过`lm()`函数来实现这一过程。该函数的核心语法为 `lm(formula, data)`,其中`formula`表示因变量和自变量的关系表达式,通常写成`y ~ x`的形式。 以下是简单的线性回归代码示例: ```r # 加载数据集 data(mtcars) # 创建简单线性回归模型 model <- lm(mpg ~ wt, data = mtcars) # 查看模型摘要 summary(model) ``` 此代码片段展示了如何利用汽车重量(`wt`)预测每加仑行驶英里数(`mpg`)的简单线性回归模型[^4]。 --- #### 2. 多元线性回归 当存在多个自变量时,可以使用多元线性回归来探索它们因变量之间的关系。同样,在R语言中也可以通过`lm()`函数完成这项任务。 下面是一个多元线性回归的例子: ```r # 创建多元线性回归模型 model_multi <- lm(mpg ~ wt + hp, data = mtcars) # 输出模型结果 summary(model_multi) ``` 在此例子中,除了车重(`wt`)外,还加入了马力(`hp`)作为另一个自变量来共同影响燃油效率(`mpg`)的结果。 --- #### 3. Logistic回归 对于分类问题,Logistic回归是非常重要的工具之一。它可以用来估计事件发生的概率。在R语言中,可借助`glm()`函数执行逻辑回归操作,其核心语句形式类似于`glm(y ~ x, family = binomial(), data)`。 这里给出一个具体的实例: ```r # 导入内置鸢尾花数据集并转换目标列到因子类型 data(iris) iris$Species_binary <- as.numeric(iris$Species == "versicolor") # 构造logistic回归模型 model_logit <- glm(Species_binary ~ Sepal.Length + Petal.Width, family = binomial(link='logit'), data=iris) # 显示模型详情 summary(model_logit) ``` 这段脚本演示了基于花瓣宽度以及萼片长度两项特征去判断某朵花卉是否属于“Versicolor”品种的过程[^1]。 --- #### 4. 模型评估优化 为了衡量所构建模型的好坏程度,有必要引入一些评价指标比如均方根误差(RMSE),决定系数($R^2$)等;另外还可以采用诸如K折交叉验证这样的技术手段进一步提升泛化能力。 以下是如何计算RMSE的一个示范程序: ```r library(Metrics) # 预测新样本值 predicted_values <- predict(model, newdata = mtcars) # 计算实际值预测值间的差异度量——均方根误差 rmse_value <- rmse(mtcars$mpg, predicted_values) print(rmse_value) ``` 同时关于交叉验证部分,则推荐查阅专门讨论这部分内容的文章以获得更深入的理解。 --- ### 总结 以上就是有关于怎样运用R软件包来进行各类常见类型的回归分析介绍及其对应的实际编码展示。希望对你有所帮助!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值