# R: função predict() para modelagem preditiva

A função `predict()` de R desempenha um papel especial no contexto da aprendizagem automática, pois permite fazer previsões para novos dados que não foram vistos anteriormente.

## O que faz a função `predict()` do R?

A função `predict()` em R serve para fazer **previsões para pontos de dados novos ou existentes** com base num modelo estatístico previamente concebido. Pode criar este modelo através de regressão linear, regressão logística, árvores de decisão ou outras técnicas de modelação.

## Esta é a sintaxe do `predict()` em R

A função `predict()` requer como argumentos o **modelo treinado e os pontos de dados** para os quais as previsões serão feitas. Dependendo do tipo de modelo, pode especificar diferentes opções e parâmetros. O resultado é um vetor de previsões que pode utilizar para diversos fins analíticos, como avaliação do desempenho do modelo, tomada de decisões ou visualização dos dados resultantes.

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

- **object**: o modelo treinado ao qual você aplicará as previsões.
- **newdata**: os pontos de dados para as previsões.
- **interval**: um argumento opcional que permite especificar o tipo de intervalo de confiança (`confidence` para valores médios, `prediction` para previsões).

## Exemplo de utilização da função `predict` em R

No exemplo a seguir, você verá como `predict()` funciona no R. Para isso, ele usa um conjunto de dados personalizado com valores de velocidade e distância.

### Criar e visualizar dados

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

Na primeira etapa deste exemplo, crie um **conjunto de dados personalizado** para analisar a relação entre a velocidade (`speed`) e a distância percorrida (`distance`). Use a função `data.frame()` para criar uma estrutura de dados e defina valores específicos para as variáveis `speed` e `distance` usando `c(15, 20, 25, 30, 35)` e `c(30, 40, 50, 60, 70)`.

Depois de criar o conjunto de dados, visualize-os utilizando a função `print()` para verificar a estrutura e os valores atribuídos ao novo quadro de dados.

Resultado:

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

### Criar modelo linear

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

Desenvolva um modelo linear (`custom_model`) para o conjunto de dados que modela a relação entre velocidade e distância. Obtenha os resultados do modelo, incluindo os coeficientes e as informações estatísticas.

### Definir novos valores de velocidade e fazer previsões

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

Defina outro conjunto de dados (`new_speed_values`) com novos valores de velocidade. Em seguida, utilize a função `predict()` no R para fazer previsões dos valores de distância associados, utilizando o modelo linear que criou anteriormente.

### Mostrar previsões

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

A saída mostra os valores de distância previstos em função da velocidade:

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

Dica Consulte os tutoriais R gsub e sub e [R substring](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/r-substring/) do nosso Guia Digital para aprender a editar strings ou cadeias de caracteres no R, para manipular texto ou limpar dados.


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/predict-em-r/](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/predict-em-r/) for AI/LLM consumption.