# Hvad er predict() i R?

Med funktionen `predict()` i R kan du lave forudsigelser for nye, usete data. Denne funktion er et vigtigt værktøj til maskinlæring.

## Hvad bruges predict() i R til?

R-funktionen `predict()` er et alsidigt værktøj, der bruges i prædiktiv modellering. Den genererer **forudsigelser for nye eller eksisterende datapunkter** baseret på tidligere designede statistiske modeller, såsom lineær regression, logisk regression, beslutningstræer og andre modelleringsteknikker.

## Hvad er syntaksen for predict() i R?

R’s `predict()` tager som argumenter **en trænet model og de datapunkter**, som forudsigelsen skal gælde for. Du kan angive forskellige indstillinger og parametre baseret på den anvendte modeltype. Resultatet er en vektor af forudsigelser, der kan være nyttige til forskellige analytiske formål, herunder evaluering af en models ydeevne, beslutningstagning eller illustration af de resulterende data.

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

- **`object`**: Den trænet model, som forudsigelserne anvendes på
- **`newdata`**: Datapunktet for forudsigelsen
- **`interval`**: Valgfrit argument til indtastning af typen af konfidensinterval (`confidence` for gennemsnitsinterval, `prediction` for forudsigelser)

## Eksempel på brug af predict() i R

Følgende eksempel illustrerer, hvordan funktionen `predict()` i R fungerer. Vi bruger et brugerdefineret datasæt med hastigheds- og afstandsværdier.

### Oprettelse og visning af data

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

Først opretter vi et **brugerdefineret datasæt** til evaluering af forholdet mellem hastighed og afstand. Vi bruger funktionen `data.frame()` til at oprette en dataramme og definerer derefter værdierne for variablerne `speed` og `distance` som henholdsvis `c(15, 20, 25, 30, 35)` og `c(30, 40, 50, 60, 70)`.

Når vi har oprettet datasættet, viser vi det ved hjælp af funktionen `print()`. På den måde kan vi kontrollere strukturen og de tildelte værdier i vores nye dataramme.

Output:

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

### Oprettelse af en lineær model

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

Output:

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

I outputtet ser vi en lineær model (`custom_model`), der blev genereret for datasættet og modellerer forholdet mellem hastighed og afstand. Vi får resultatet af modellen, herunder koefficienter og statistiske oplysninger.

### Definition af nye hastighedsværdier og udarbejdelse af prognoser

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

Vi har nu oprettet endnu et datasæt (`new_speed_values`) med nye værdier for hastighed. Derefter brugte vi R `predict()` til at lave forudsigelser for de tilsvarende afstandsværdier ved hjælp af den lineære model, vi oprettede ovenfor.

### Visning af forudsigelserne

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

Outputtet viser de afstandsværdier, der er forudsagt på baggrund af hastigheden:

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

Tip Hvis du vil lære mere om behandling af strenge til tekstmanipulation og datarensning i R, kan du se vores vejledninger om R gsub og sub samt [R substring](https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/r-delstreng/).


This is a markdown version of: [https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/r-forudsig/](https://www.ionos.com/da-dk/digitalguide/websteder/webudvikling/r-forudsig/) for AI/LLM consumption.