📜  如何在 R 中绘制预测值?

📅  最后修改于: 2022-05-13 01:54:54.093000             🧑  作者: Mango

如何在 R 中绘制预测值?

在本文中,我们将讨论如何在 R 编程语言中绘制预测值。

线性模型用于使用线性回归技术根据自变量预测未知变量的值。它主要用于找出变量之间的关系和预测。 lm()函数用于将线性模型拟合到 R 语言中的数据帧。我们将预测的实际值与实际值一起绘制,以了解两个值之间的差异,这有助于我们确定模型的准确性。为此,我们在 R 语言中有以下方法。

方法 1:使用 Base R 绘制预测值

为了在 R 语言中绘制预测值与实际值,我们首先使用 lm()函数将我们的数据框拟合到线性回归模型中。 lm()函数将回归函数作为参数以及数据框并返回线性模型。然后我们可以使用 predict()函数来使用该线性模型来预测任何给定数据点的值。然后,我们将使用 plot()函数在预测值和实际值之间绘制散点图,然后使用 abline()函数添加线性对角线以可视化预测值和实际值之间的差异。

示例:这里是使用使用 Base R 方法的线性回归模型绘制的实际值与预测值的关系图。

R
# create sample data frame
x <- rnorm(100)
y <- rnorm(100) + x
sample_data <- data.frame(x, y)
  
# fit data to a linear model
linear_model <- lm(y~x, sample_data )
  
# plot predicted values and actual values
plot(predict(linear_model), sample_data$y,
     xlab = "Predicted Values",
     ylab = "Observed Values")
abline(a = 0, b = 1, lwd=2,
       col = "green")


R
# create sample data frame
x1 <- rnorm(100)
x2 <- rnorm(100)
y <- rnorm(100) + x1 + x2
sample_data <- data.frame(x1, x2, y)
  
# fit data to a linear model
linear_model <- lm(y~x1+x2, sample_data )
  
# load library ggplot2
library(ggplot2)
  
# create dataframe with actual and predicted values
plot_data <- data.frame(Predicted_value = predict(linear_model),  
                       Observed_value = sample_data$y)
  
# plot predicted values and actual values
ggplot(plot_data, aes(x = Predicted_value, y = Observed_value)) +
                  geom_point() +
                 geom_abline(intercept = 0, slope = 1, color = "green")


输出:

方法 2:使用 ggplot2 包绘制预测值

为了使用 ggplot2 包库在 R 语言中绘制预测值与实际值,我们首先使用 lm()函数将我们的数据框拟合到线性回归模型中。 lm()函数将回归函数与数据框一起作为参数,并返回线性模型。然后我们制作一个数据框,其中包含用于绘图的预测值和实际值。要获得预测值,我们可以使用 predict()函数来使用该线性模型来预测任何给定数据点的值。然后,我们将使用带有 geom_point()函数的 ggplot()函数函数线性对角线以可视化预测值和实际值之间的差异。

示例:这里是使用 ggplot2 包的线性回归模型绘制的实际值与预测值的图。

R

# create sample data frame
x1 <- rnorm(100)
x2 <- rnorm(100)
y <- rnorm(100) + x1 + x2
sample_data <- data.frame(x1, x2, y)
  
# fit data to a linear model
linear_model <- lm(y~x1+x2, sample_data )
  
# load library ggplot2
library(ggplot2)
  
# create dataframe with actual and predicted values
plot_data <- data.frame(Predicted_value = predict(linear_model),  
                       Observed_value = sample_data$y)
  
# plot predicted values and actual values
ggplot(plot_data, aes(x = Predicted_value, y = Observed_value)) +
                  geom_point() +
                 geom_abline(intercept = 0, slope = 1, color = "green")

输出: