R语言 如何绘制预测值
在这篇文章中,我们将讨论如何在R编程语言中绘制预测值。
线性模型是使用线性回归技术,根据自变量来预测未知变量的值。它主要用于找出变量之间的关系和进行预测。lm()函数用于在R语言中对数据框架进行线性模型拟合。我们将预测的实际值与实际值绘制在一起,以了解这两个值的差异程度,这有助于我们确定模型的准确性。要做到这一点,我们在R语言中有以下方法。
方法1:使用Base R绘制预测值
为了在R语言中绘制预测值与实际值的对比,我们首先使用lm()函数将我们的数据框装入线性回归模型。lm()函数将回归函数和数据框作为参数,并返回线性模型。然后我们可以使用predict()函数来使用该线性模型来预测任何给定数据点的值。然后,我们将使用plot()函数在预测值和实际值之间绘制散点图,然后使用abline()函数添加线性对角线,以可视化预测值和实际值之间的差异。
语法
linear_model <- lm( regression_function, df)
plot( predict( linear_model), df$y)
abline(a = 0, b = 1)
其中。
- regression_function: 决定了需要拟合的线性模型的函数。
- df: 决定了用于预测的数据框架。
- y: 决定了y轴变量。
例子: 这里是一个使用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")
输出
方法2:使用ggplot2包绘制预测值
为了在R语言中使用ggplot2包库绘制预测值与实际值的对比,我们首先使用lm()函数将我们的数据框装入线性回归模型。lm()函数将一个回归函数和数据框作为参数,并返回一个线性模型。然后我们制作一个数据框,其中包含预测值和实际值,以便绘制。为了得到预测值,我们可以使用predict()函数,使用该线性模型来预测任何给定数据点的值。然后,我们将通过使用ggplot()函数和geom_point()函数绘制预测值和实际值之间的散点图,然后使用geom_abline()函数添加一条线性对角线,以直观显示预测值和实际值之间的差异。
语法
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)
其中。
- regression_function: 决定了需要拟合的线性模型的函数。
- df: 决定了用于预测的数据框架。
- y: 决定了y轴变量。
例子: 这里是使用ggplot2包的线性回归模型绘制的实际值与预测值的对比。
# 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")
输出