TP4 – Algorithmes de Newton stochastiques¶

Objectifs du TP¶

L'objectif de ce TP est d'étudier le comportement des estimateurs de Newton stochastic dans le cadre de la régression linéaire et de la régression logistique.

In [1]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

np.random.seed(123)
n = 10000
p = 5
theta_true = np.array([-2, -1, 0, 1, 2])

1. Régression linéaire¶

On considère le modèle

$$ Y_i = X_i^T \theta + \varepsilon_i, $$

avec :

  • $\theta = (-2,-1,0,1,2)^T \in \mathbb{R}^5$,
  • $X_i \sim \mathcal{N}(0, I_5)$,
  • $\varepsilon_i \sim \mathcal{N}(0,1)$, indépendants.

On prend $n = 10000$.

  1. Générer un échantillon $(X_i, Y_i)_{i=1,\dots,n}$.
In [ ]:
 
  1. Écrire une fonction qui ressorte l'ensemble des estimateurs de Newton stochastique
In [ ]:
 
  1. Tracer l'évolution de l'erreur quadratique (|\theta_i-\theta|^2) pour un échantillon et comparer avec le gradient et sa version moyenné.
In [ ]:
 
In [ ]:
 
  1. Répéter l'expérience sur 50 échantillons indépendants et tracer l'erreur quadratique moyenne.
In [ ]:
 

3. Probème mal conditioné¶

On prend maintenant $X \sim \mathcal{N}(0, D)$ avec $D = \text{diag}\left( 10^{-2} , 10^{-1} , 1 , 10, 10^{2} \right)$. Regarder les évolutions des erreurs quadratiques moyennes pour les estimateurs de gradient stochastique et leurs versions moyennées pour différentes valeurs de $c_{\gamma}$.

In [ ]:
 
In [ ]: