R语言 删除回归模型中的截点

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)
R

输出

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
R

在这里,截距估计为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 )
R

输出

在R语言中删除回归模型中的截点

从线性回归模型中删除截距

为了去除线性模型中的截距,我们手动设置截距的值为零。这样一来,我们不一定能得到最佳拟合线,但保证能通过原点的线。为了将截距设置为零,我们在拟合公式前面加上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)
R

输出

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
Bash

这里,我们在总结部分的系数中没有得到截距,因为截距被设置为零。

没有截距的线性模型的可视化

为了使没有截距的线性模型可视化,我们在拟合公式前面加上零和加(+)号。然后,我们使用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 )
R

输出

在R语言中删除回归模型中的截点

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册