# R: función predict() para el modelado predictivo

La función `predict()` de R desempeña un papel especial en el contexto del aprendizaje automático, ya que permite hacer predicciones para nuevos datos que no se han visto anteriormente.

## ¿Qué hace la función `predict()` de R?

La función `predict()` en R sirve para hacer **predicciones para puntos de datos nuevos o existentes** basándose en un modelo estadístico previamente diseñado. Puedes crear este modelo mediante regresión lineal, regresión logística, árboles de decisión u otras técnicas de modelización.

## Así es la sintaxis de `predict()` en R

La función `predict()` requiere como argumentos el **modelo entrenado y los puntos de datos** para los cuales se realizarán las predicciones. Dependiendo del tipo de modelo, puedes especificar diferentes opciones y parámetros. El resultado es un vector de predicciones que puedes utilizar para diversos fines analíticos, como la evaluación del rendimiento del modelo, la toma de decisiones o la visualización de los datos resultantes.

```R
predict(object, newdata, interval)
```

- **object**: el modelo entrenado al que aplicarás las predicciones.
- **newdata**: los puntos de datos para las predicciones.
- **interval**: un argumento opcional que permite especificar el tipo de intervalo de confianza (`confidence` para valores medios, `prediction` para predicciones).

## Ejemplo de uso de la función `predict` en R

En el siguiente ejemplo verás cómo funciona `predict()` en R. Para ello, utiliza un conjunto de datos personalizado con valores de velocidad y distancia.

### Crear y visualizar datos

```R
# Creating a data frame with custom speed and distance values
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)
```

En el primer paso de este ejemplo, crea un **conjunto de datos personalizado** para analizar la relación entre la velocidad (`speed`) y la distancia recorrida (`distance`). Utiliza la función `data.frame()` para crear un marco de datos y establece valores concretos para las variables `speed` y `distance` utilizando `c(15, 20, 25, 30, 35)` y `c(30, 40, 50, 60, 70)`.

Una vez creado el conjunto de datos, visualízalos utilizando la función `print()` para comprobar la estructura y los valores asignados al nuevo marco de datos.

Resultado:

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

### Crear modelo lineal

```R
# 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))
```

Resultado:

```R
"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
```

Desarrolla un modelo lineal (`custom_model`) para el conjunto de datos que modela la relación entre velocidad y distancia. Obtén los resultados del modelo, incluyendo los coeficientes y la información estadística.

### Definir nuevos valores de velocidad y hacer predicciones

```R
# 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)
```

Define otro conjunto de datos (`new_speed_values`) con nuevos valores de velocidad. A continuación, utiliza la función `predict()` en R para hacer predicciones de los valores de distancia asociados utilizando el modelo lineal que has creado previamente.

### Mostrar predicciones

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

La salida te muestra los valores de distancia previstos en función de la velocidad:

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

Consejo Consulta los tutoriales [R gsub y sub](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/sub-y-gsub-en-r/) y [R substring](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/r-substring/) de nuestra Digital Guide para aprender a editar strings o cadenas de caracteres en R, para manipular texto o limpiar datos.


This is a markdown version of: [https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/predict-en-r/](https://www.ionos.com/es-us/digitalguide/paginas-web/desarrollo-web/predict-en-r/) for AI/LLM consumption.