R语言 删除回归模型中的截点
在这篇文章中,我们将讨论如何在R编程语言中从回归模型中移除截距。
从线性回归模型中提取截距
为了从R语言中的线性回归模型中提取截距,我们使用R语言的summary()函数。我们首先使用lm()函数创建线性回归模型。lm()函数用于在R语言中对数据框架进行线性模型拟合。它可以用来进行回归、单层方差分析和协方差分析,以预测不在数据框中的数据所对应的数值。然后我们使用summary()函数来检索该模型的统计摘要,其中也包含了拟合模型的截距信息。
语法
linear_model <- lm( formula, data )
summary( linear_model )
参数
- formula: 决定了线性模型的公式。
- data: 决定了包含数据的数据框架的名称。
例子: 这里,是R语言中的一个带截距的线性回归模型。
# sample data frame
sample_data <- data.frame( x1= c(2,3,5,4,8),
x2= c(0,3,5,6,23),
y= c(1,6,9,15,29))
# fit linear model
linear_model <- lm(y ~ x1+x2, data=sample_data)
# view summary of linear model
summary(linear_model)
输出
Call:
lm(formula = y ~ x1 + x2, data = sample_data)
Residuals:
1 2 3 4 5
-1.9974 -0.6673 -1.1100 4.6628 -0.8880
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.5032 7.4142 0.203 0.858
x1 0.7471 2.7159 0.275 0.809
x2 0.9743 0.6934 1.405 0.295
在这里,截距估计为1.5032,这可以在线性模型摘要的系数部分清楚地看到。
回归模型的可视化
为了在R语言中实现线性回归模型的可视化,我们使用plot()函数绘制数据点的散点图,然后使用abline()壶来绘制回归线。
语法
plot( datax, datay )
abline( linear_model )
参数
- datax和datay: 确定x轴和y轴的变量值。
- linear_model: 确定用于可视化的线性模型。
例子: 这里是一个有截距的线性模型的可视化。
# sample data frame
sample_data <- data.frame( x1= c(2,3,5,4,8),
x2= c(0,3,5,6,23),
y= c(1,6,9,15,29))
# fit linear model
linear_model <- lm(y ~ x1+x2, data=sample_data)
# visualize linear model
plot( sample_datax1, sample_datay, col= "blue", pch=16 )
points( sample_datax2, sample_datay, col="red", pch=16 )
abline(linear_model, col="green", lwd=2 )
输出
从线性回归模型中删除截距
为了去除线性模型中的截距,我们手动设置截距的值为零。这样一来,我们不一定能得到最佳拟合线,但保证能通过原点的线。为了将截距设置为零,我们在拟合公式前面加上0和加号。这就使截距为零。
语法
linear_model <- lm( var1 ~ 0+ formula, data )
summary( linear_model )
参数
- var1: 决定了要拟合数据的变量。
- formula: 确定线性模型的公式。
- data: 决定了包含数据的数据框的名称。
例子: 这里是R语言中一个没有截距的线性回归模型。
# sample data frame
sample_data <- data.frame( x1= c(2,3,5,4,8),
x2= c(0,3,5,6,23),
y= c(1,6,9,15,29))
# fit linear model
linear_model <- lm(y ~ 0+x1+x2, data=sample_data)
# view summary of linear model
summary(linear_model)
输出
Call:
lm(formula = y ~ 0 + x1 + x2, data = sample_data)
Residuals:
1 2 3 4 5
-1.5422 -0.3795 -1.6325 4.7831 -0.8434
Coefficients:
Estimate Std. Error t value Pr(>|t|)
x1 1.2711 0.6886 1.846 0.1621
x2 0.8554 0.3056 2.799 0.0679 .
—
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.097 on 3 degrees of freedom
Multiple R-squared: 0.9757, Adjusted R-squared: 0.9595
F-statistic: 60.22 on 2 and 3 DF, p-value: 0.003789
这里,我们在总结部分的系数中没有得到截距,因为截距被设置为零。
没有截距的线性模型的可视化
为了使没有截距的线性模型可视化,我们在拟合公式前面加上零和加(+)号。然后,我们使用plot()和abline()函数来显示线性回归模型的可视化。
例子: 这里是一个没有截距的线性回归模型图。
# sample data frame
sample_data <- data.frame( x1= c(2,3,5,4,8),
x2= c(0,3,5,6,23),
y= c(1,6,9,15,29))
# fit linear model
linear_model <- lm(y~x1+x2+0, data=sample_data)
# visualize linear model
plot( sample_datax1, sample_datay,
col= "blue", pch=16, xlim=c(0,10))
points( sample_datax2, sample_datay,
col="red", pch=16 )
abline(linear_model, col="green", lwd=2 )
输出