Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment utiliser la fonction optim dans R (2 exemples)



Vous pouvez utiliser la fonction optim dans R pour des optimisations générales.

Cette fonction utilise la syntaxe de base suivante :

optim(par, fn, data, ...)

où:

  • par : Valeurs initiales des paramètres à optimiser sur
  • fn : Une fonction à minimiser ou à maximiser
  • data : Le nom de l’objet dans R qui contient les données

Les exemples suivants montrent comment utiliser cette fonction dans les scénarios suivants :

1. Trouvez les coefficients d’un modèle de régression linéaire.

2. Trouvez les coefficients d’un modèle de régression quadratique.

Allons-y !

Exemple 1 : Trouver des coefficients pour un modèle de régression linéaire

Le code suivant montre comment utiliser la fonction optim() pour trouver les coefficients d’un modèle de régression linéaire en minimisant la somme des carrés résiduelle :

#create data frame
df <- data.frame(x=c(1, 3, 3, 5, 6, 7, 9, 12),
                 y=c(4, 5, 8, 6, 9, 10, 13, 17))

#define function to minimize residual sum of squares
min_residuals <- function(data, par) {
                   with(data, sum((par[1] + par[2] * x - y)^2))
}

#find coefficients of linear regression model
optim(par=c(0, 1), fn=min_residuals, data=df)

$par
[1] 2.318592 1.162012

$value
[1] 11.15084

$counts
function gradient 
      79       NA 

$convergence
[1] 0

$message
NULL

En utilisant les valeurs renvoyées sous $par , nous pouvons écrire le modèle de régression linéaire ajusté suivant :

y = 2,318 + 1,162x

Nous pouvons vérifier que cela est correct en utilisant la fonction lm() intégrée dans R pour calculer les coefficients de régression :

#find coefficients of linear regression model using lm() function
lm(y ~ x, data=df)

Call:
lm(formula = y ~ x, data = df)

Coefficients:
(Intercept)            x  
      2.318        1.162

Ces valeurs de coefficient correspondent à celles que nous avons calculées à l’aide de la fonction optim() .

Exemple 2 : Trouver des coefficients pour un modèle de régression quadratique

Le code suivant montre comment utiliser la fonction optim() pour trouver les coefficients d’un modèle de régression quadratique en minimisant la somme des carrés résiduelle :

#create data frame
df <- data.frame(x=c(6, 9, 12, 14, 30, 35, 40, 47, 51, 55, 60),
                 y=c(14, 28, 50, 70, 89, 94, 90, 75, 59, 44, 27))

#define function to minimize residual sum of squares
min_residuals <- function(data, par) {
                   with(data, sum((par[1] + par[2]*x + par[3]*x^2 - y)^2))
}

#find coefficients of quadratic regression model
optim(par=c(0, 0, 0), fn=min_residuals, data=df)

$par
[1] -18.261320   6.744531  -0.101201

$value
[1] 309.3412

$counts
function gradient 
     218       NA 

$convergence
[1] 0

$message
NULL

En utilisant les valeurs renvoyées sous $par , nous pouvons écrire le modèle de régression quadratique ajusté suivant :

y = -18,261 + 6,744x – 0,101x 2

Nous pouvons vérifier que cela est correct en utilisant la fonction lm() intégrée dans R :

#create data frame
df <- data.frame(x=c(6, 9, 12, 14, 30, 35, 40, 47, 51, 55, 60),
                 y=c(14, 28, 50, 70, 89, 94, 90, 75, 59, 44, 27))

#create a new variable for x^2
df$x2 <- df$x^2

#fit quadratic regression model
quadraticModel <- lm(y ~ x + x2, data=df)

#display coefficients of quadratic regression model
summary(quadraticModel)$coef

               Estimate  Std. Error    t value     Pr(>|t|)
(Intercept) -18.2536400 6.185069026  -2.951243 1.839072e-02
x             6.7443581 0.485515334  13.891133 6.978849e-07
x2           -0.1011996 0.007460089 -13.565470 8.378822e-07

Ces valeurs de coefficient correspondent à celles que nous avons calculées à l’aide de la fonction optim() .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :

Comment effectuer une régression linéaire simple dans R
Comment effectuer une régression linéaire multiple dans R
Comment interpréter la sortie de régression dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *