繁体   English   中英

在 R 中创建最佳拟合线

[英]Creating a Line of Best Fit in R

在此处输入图像描述

嗨,我想知道是否有人可以帮助我如何在 R 中完成 function,因为我对这台计算机编程完全陌生。 如果这对观众来说是一个愚蠢的问题,请道歉。

所以我目前正在尝试在我的散点图上添加一条最佳拟合线,但我不太了解如何做到这一点。 我尝试了许多函数,如“abline”和“lm”,但我不确定我是否使用了正确的想法,或者我是否在函数中输入了不正确的数字。

我已经清理了工作区,只留下了我的图表和以前的工作,这样它看起来更整洁。

在此先感谢您的帮助。

可重现的数据示例:

set.seed(2348907)
x <- rnorm(100)
y <- 2*(x+rnorm(100))

那么这使得截距和斜率的线性 model :

lmodel <- lm(y ~ x)

现在包含截距( Intercept项)和斜率(作为模型中 x 变量的系数)。 以下是 model 的总结:

summary(lmodel)
Call:
lm(formula = y ~ x)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.8412 -1.0767 -0.1808  1.2216  4.1540 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   0.0454     0.1851   0.245    0.807    
x             2.1087     0.1814  11.627   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.848 on 98 degrees of freedom
Multiple R-squared:  0.5797,    Adjusted R-squared:  0.5754 
F-statistic: 135.2 on 1 and 98 DF,  p-value: < 2.2e-16

然后使用coef() function 使 plot 从线性 model 中拉出截距和斜率:

plot(x,y)  # plots the points
abline(a=coef(lmodel)[1], b=coef(lmodel)[2])  # plots the line, a=intercept, b=slope 

在此处输入图像描述

就个人而言,我更喜欢ggplot2这样的事情,就像这样:

library(ggplot2)
ggplot() + geom_point(aes(x,y)) + 
  geom_smooth(aes(x,y), method="lm", se=F)

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM