R语言绘制线性回归图

线性回归图以二维坐标系展示两个变量关系。数据点代表实际观测值,核心是线性回归线。此线通过统计方法确定,与数据点距离平方和最小。它反映变量间线性趋势,斜率正负决定相关方向。可用于预测因变量值,也能进行推断统计。在数据分析、科学研究和实际应用中广泛使用,帮助人们理解变量关系、做出决策。

0x01 使用lm()函数

r 复制代码
# 创建一些示例数据
x <- c(1:10)
y <- c(2, 4.5, 5, 7, 8.5, 9, 11, 12.5, 13, 14)

# 绘制散点图
plot(x, y, main = "线性回归图", xlab = "自变量 X", ylab = "因变量 Y")

# 进行线性回归分析
model <- lm(y ~ x)

# 在散点图上添加线性回归线
abline(model, col = "red")

# 输出回归方程
cat("回归方程:Y =", coef(model)[1], "+", coef(model)[2], "* X\n")

一、可以试用summary(model)来展示拟合的详细结果,其结果一般包含以下几个内容:

1.Call(调用信息)

显示用于创建线性回归模型的函数调用,包括模型公式和使用的数据。例如,如果使用lm(y ~ x)创建模型,这里会显示lm(formula = y ~ x)

2.Residuals(残差信息)

2.1 提供关于残差的一些基本统计信息,包括最小值、1 四分位数、中位数、3 四分位数和最大值。

2.2 残差是观测值与模型预测值之间的差异,分析残差可以帮助评估模型的拟合程度。

3.Coefficients(系数信息)

3.1 列出模型的系数估计值,包括截距(Intercept)和自变量的系数。

3.2 对于每个系数,提供估计值(Estimate)、标准误差(Std. Error)、t 值(t value)和 p 值(Pr (>|t|))。

3.3 估计值表示系数的大小,标准误差衡量估计值的不确定性。t 值用于检验系数是否显著不为零,p 值表示在原假设(系数为零)下观察到当前估计值或更极端值的概率。如果 p 值很小(通常小于某个显著性水平,如 0.05),则表明该系数在统计上是显著的。

4.Residual standard error(残差标准误差)

给出残差的标准误差估计值。它衡量了模型对数据的拟合程度,值越小表示模型拟合越好。

5.Multiple R-squared(复相关系数平方)和 Adjusted R-squared(调整后的复相关系数平方)

5.1 复相关系数平方表示因变量的变异中可以由自变量解释的比例。它的取值范围在 0 到 1 之间,值越接近 1 表示模型的拟合效果越好。

5.2 调整后的复相关系数平方考虑了模型中自变量的数量,防止随着自变量的增加而过度拟合。它在比较不同模型时更有用。

6.F-statistic(F 统计量)

用于检验整个模型的显著性。它比较了模型的解释能力与仅包含截距的模型。F 统计量大且对应的 p 值小表示模型在整体上是显著的。

总之,summary(model)提供了丰富的信息,帮助用户评估线性回归模型的质量、系数的显著性以及模型的整体拟合程度。

二、可以用fitted(model)来获取线性回归模型的拟合值。

三、可以用residuals(model)来获取线性回归模型的残差。

四、我们还可以根据我们的模型,对他进行一个随意的赋值,然后预测五门所想要的y值。

r 复制代码
# 创建一个数据框 new,包含一个值为 3.16 的列 x,用于新数据点的预测
new <- data.frame(x = 3.16)
# 使用已建立的线性回归模型 model 对新数据 new 进行预测
# interval = "prediction" 表示计算预测区间
# level = 0.95 指定预测区间的置信水平为 95%
lm.pred <- predict(model, new, interval = "prediction", level = 0.95)
# 输出预测结果,包含点预测值以及 95%预测区间的上下限
lm.pred

通常返回的内容一般包括以下内容:

1.fit:点预测值,即对于给定的新x值,预测的因变量值。

2.lwrupr:95% 预测区间的下限和上限。

0x02 使用ggplot2包

一、使用stat_smooth()函数绘制线性回归图。

r 复制代码
library(ggplot2)

# 创建一个数据框 mydata,包含两列 x 和 y,x 是从 1 到 10 的整数序列,y 是一组对应的值
mydata <- data.frame(x = c(1:10), y = c(2, 4.5, 5, 7, 8.5, 9, 11, 12.5, 13, 14))

# 创建一个 ggplot 对象 sp,以 mydata 为基础,将 x 和 y 分别映射到横纵坐标,添加散点图 geom_point()
sp <- ggplot(mydata, aes(x, y)) +
  geom_point()

# 在 sp 对象上添加基于线性回归的平滑曲线,使用 stat_smooth()函数,method = lm 表示使用线性回归方法
sp + stat_smooth(method = lm)

二、可以使用level参数指定置信区间的水平。

r 复制代码
sp + stat_smooth(method = lm, level = 0.99)

三、可以使用se = FALSE参数使绘制的线性回归图不显示标准误差带。

r 复制代码
sp + stat_smooth(method = lm, se = FALSE)

四、调整与美化

r 复制代码
# 使用 ggplot2 进行绘图
# 以数据框 mydata 为基础,将 x 列映射到横坐标,y 列映射到纵坐标
ggplot(mydata,aes(x,y)) +
  # 添加散点图,点的颜色设置为暗红色
  geom_point(colour = "darkred") +
  # 添加基于线性回归的平滑曲线,曲线颜色为黑色
  stat_smooth(method = lm,colour = "black") +
  # 设置图形的标题为"picture",横坐标标签为"year",纵坐标标签为"weight"
  labs(title = "picture",x = "year",y = "weight") +
  # 设置图形主题,使标题水平居中
  theme(plot.title = element_text(hjust = 0.5))
相关推荐
湫ccc7 分钟前
《Python基础》之pip换国内镜像源
开发语言·python·pip
fhvyxyci8 分钟前
【C++之STL】摸清 string 的模拟实现(下)
开发语言·c++·string
qq_4597300310 分钟前
C 语言面向对象
c语言·开发语言
网络真危险!!18 分钟前
【数据分析】认清、明确
数据挖掘·数据分析
菜鸟的人工智能之路18 分钟前
极坐标气泡图:医学数据分析的可视化新视角
python·数据分析·健康医疗
菜鸟学Python19 分钟前
Python 数据分析核心库大全!
开发语言·python·数据挖掘·数据分析
一个小坑货26 分钟前
Cargo Rust 的包管理器
开发语言·后端·rust
bluebonnet2731 分钟前
【Rust练习】22.HashMap
开发语言·后端·rust
古月居GYH31 分钟前
在C++上实现反射用法
java·开发语言·c++
机器人虎哥37 分钟前
【8210A-TX2】Ubuntu18.04 + ROS_ Melodic + TM-16多线激光 雷达评测
人工智能·机器学习