如何在 R 中绘制预测值?
在本文中,我们将讨论如何在 R 编程语言中绘制预测值。
线性模型用于使用线性回归技术根据自变量预测未知变量的值。它主要用于找出变量之间的关系和预测。 lm()函数用于将线性模型拟合到 R 语言中的数据帧。我们将预测的实际值与实际值一起绘制,以了解两个值之间的差异,这有助于我们确定模型的准确性。为此,我们在 R 语言中有以下方法。
方法 1:使用 Base R 绘制预测值
为了在 R 语言中绘制预测值与实际值,我们首先使用 lm()函数将我们的数据框拟合到线性回归模型中。 lm()函数将回归函数作为参数以及数据框并返回线性模型。然后我们可以使用 predict()函数来使用该线性模型来预测任何给定数据点的值。然后,我们将使用 plot()函数在预测值和实际值之间绘制散点图,然后使用 abline()函数添加线性对角线以可视化预测值和实际值之间的差异。
Syntax:
linear_model <- lm( regression_function, df)
plot( predict(linear_model), df$y)
abline(a = 0, b = 1)
where,
- regression_function: determines the function on which linear model has to be fitted.
- df: determines the data frame that is used for prediction.
- y: determines the y-axis variable.
示例:这里是使用使用 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()函数函数线性对角线以可视化预测值和实际值之间的差异。
Syntax:
linear_model <- lm( regression_function, df)
plot_data <- data.frame( predicted_data = predict(linear_model), actual_data= df$y )
ggplot( plot_data, aes( x=predicted_data, y=actual_data ) ) + geom_point()+ geom_abline(intercept =0, slope=1)
where,
- regression_function: determines the function on which linear model has to be fitted.
- df: determines the data frame that is used for prediction.
- y: determines the y-axis variable.
示例:这里是使用 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")
输出: