What is predict() in R?

With the predict() function in R, you can make predictions for new, unseen data. This function is an important tool for machine learning.

What is predict() in R used for?

The R function predict() is a versatile tool used in predictive modeling. It generates predictions for new or existing data points based on a previously designed statistical models, such as a linear regression, logical regression, decision trees and other modeling techniques.

What is the syntax for predict() in R?

R’s predict() function takes as arguments a trained model and the data points that the prediction should apply to. You can specify different options and parameters based on the type of model used. The result is a vector of predictions that can be useful for various analytical purposes, including evaluating the performance of a model, decision making or illustrating the resulting data.

predict(object, newdata, interval)
R
  • object: The trained model that the predictions are applied to
  • newdata: The data point for the prediction
  • interval: Optional argument for entering the type of confidence interval (confidence for mean interval, prediction for predictions)

Example of how to use predict() in R

The following example will illustrate how the predict() function in R works. We’ll use a user-defined data set with speed and distance values.

Creating and displaying data

custom_data <- data.frame(speed = c(15, 20, 25, 30, 35),
    distance = c(30, 40, 50, 60, 70))
# Displaying the custom data frame
print("Custom Data Frame:")
print(custom_data)
R

First, we’ll create a user-defined data set for evaluating the relationship between speed and distance. We’ll use the function data.frame() to create a data frame and then define the values for the variables speed and distance as c(15, 20, 25, 30, 35) and c(30, 40, 50, 60, 70) respectively.

After we’ve created the data set, we’ll display it using the print() function. That way we can check the structure and the assigned values of our new data frame.

Output:

"Custom Data Frame:"
    speed distance
1        15        30
2        20        40
3        25        50
4        30        60
5        35        70
R

Creating a linear model

# Creating a linear model for the custom data frame
custom_model <- lm(distance ~ speed, data = custom_data)
# Printing the model results
print("Model Results:")
print(summary(custom_model))
R

Output:

"Model Results:"
Call:
lm(formula = distance ~ speed, data = custom_data)
Residuals:
     1        2        3        4        5
    -2     -1        1        0        2
Coefficients:
(Intercept)     -10.00    15.81    -0.632    0.55897
speed                         2.00        0.47            4.254    0.01205
R

In the output, we see a linear model (custom_model) that was generated for the data set and models the relationship between speed and distance. We get the result of the model, including coefficients and statistical information.

Defining new speed values and making predictions

# Creating a data frame with new speed values
new_speed_values <- data.frame(speed = c(40, 45, 50, 55, 60))
# Predicting future distance values using the linear model
predicted_distance <- predict(custom_model, newdata = new_speed_values)
R

We’ve now created another data set (new_speed_values) with new values for speed. Then we used R predict() to make predictions for the corresponding distance values using the linear model we created above.

Displaying the predictions

# Displaying the predicted values
print("Predicted Distance Values:")
print(predicted_distance)
R

The output shows the distance values predicted based on speed:

"Predicted Distance Values:"
               1                2                  3                 4                   5
 80.0000     90.0000    100.0000  110.0000     120.0000
R
Tip

If you want to learn about processing strings for text manipulation and data cleaning in R, take a look at our tutorials on R gsub and sub and R substring.

Web Hosting
Fast, scalable hosting for any website
  • 99.9% uptime
  • PHP 8.3 with JIT compiler
  • SSL, DDoS protection, and backups
Was this article helpful?
We use cookies on our website to provide you with the best possible user experience. By continuing to use our website or services, you agree to their use. More Information.
Page top