Régression locale et régression du noyau (non paramétrique)

Cette question a été inspirée par une demande d'un client concernant deux de nos fonctions d'ajustement de données non paramétriques : NxLOCREG(.) et NxKREG(.). Le client a écrit :

Enquête 1 :

"J'ai besoin d'aide pour comprendre les fonctions NxLOCREG et NxKREG.

  1. Pour NxLOCREG & NxKREG - Si Y représente 100 points de données et Alpha = 0,333, cela signifie-t-il que l'algorithme examine les 33 derniers points de données ou une distribution tous les trois points ?
  2. Je ne peux utiliser que des polynômes d'ordre 3 (cubiques). Tout ce qui est supérieur est retourné sous la forme #NUM ! Les algorithmes permettent-ils d'utiliser des ordres supérieurs ?
  3. Je ne comprends pas bien la distinction entre NxLOCREG et NxKREG. Pouvez-vous me donner une brève explication ?"

La fonction NxLOCREG(.) met en œuvre un algorithme de régression localisée - LOESS, alias le filtre de Savitzky-Golay.

La fonction NxKREG(.) met en œuvre une régression pondérée des moindres carrés.

Les deux fonctions sont très similaires, mais NxLOCREG(.) a un argument supplémentaire : Alpha ou H, qui peut prendre une valeur comprise entre zéro (exclusif) et 1 (inclusif). Par conséquent, la fonction NxLOCREG sélectionne les points de données H*N les plus proches, tandis que NxKREG (.) inclut toujours l'ensemble des données (c'est-à-dire N).

Plus précisément, étant donné une valeur cible X, la procédure de régression par noyau se déroule comme suit :

  • Calculer la distance entre la valeur cible et les points de données de l'échantillon.
  • Trier les points de données en fonction de leur distance dans l'ordre croissant.
  • Sélectionnez l'ensemble de données d'entrée de la régression :
    • (cas NxLOCREG) Sélectionner les points de données H*N les plus proches (c'est-à-dire les premiers).
    • (cas NxKREG) Sélectionner l'ensemble des N points de données.
  • Calculez les poids des points de données sélectionnés à l'aide de la fonction Kernel donnée.
  • Réaliser le modèle de régression des moindres carrés pondérés.
  • Calculer la valeur de régression à la valeur X.

La procédure/l'algorithme utilise les points de données H*N les plus proches de la valeur cible, de sorte que chaque valeur construit son propre modèle de régression avec un ensemble de données (éventuellement) différent.

Si Alpha = 1.0, tous les autres arguments étant identiques, les fonctions NxKREG(.) et NxLOCREG(.) renverront des résultats identiques.

Actuellement, les fonctions NxLOCREG(.) et NxKREG(.) prennent en charge les polynômes d'ordre inférieur ou égal à 3 (cubique).

Quelle que soit la fonction de pondération choisie, nous avons besoin d'une valeur pour la largeur de bande (également appelée paramètre de lissage). NumXL utilise une méthode de sélection de la largeur de bande basée sur les données, en minimisant la RMSE pour la validation croisée.

En bref, pour une largeur de bande donnée, nous calculons la valeur de régression pour chaque point de données (à l'aide de la validation croisée) et nous calculons la RMSE entre les valeurs de régression et les valeurs réelles.

Enquête 2 :

"Ainsi, si nous avons un pic dans nos données, certains des points du pic peuvent ne pas figurer dans l'ensemble de données de régression."

Cela dépend de la définition que vous donnez à "Spike". Si Spike fait référence à une valeur aberrante (une grande valeur Y), cette méthode inclura des points de données avec des valeurs aberrantes. Toutefois, ces points de données peuvent être pondérés en fonction de leur distance euclidienne par rapport à la valeur cible.

En revanche, si Spike fait référence à un point de données éloigné le long du domaine x, ces points de données éloignés seront fortement pondérés dans la régression.

Enquête 3 :

"Il semble que le lissage standard du nuage de points d'Excel repose sur une fonction LOESS. Si je veux calculer les valeurs intermédiaires manuellement, quelle est l'approche de la fonction par défaut d'Excel pour produire ce lissage localisé ?"

Oui, nous pensons que Microsoft Excel utilise un algorithme LOESS pour générer les lignes lissées dans le nuage de points. Vous pouvez utiliser la fonction NxLOCREG(.), mais nous ne pouvons pas être sûrs des valeurs des paramètres utilisés, par exemple la fonction noyau, l'ordre polynomial ou la valeur alpha.

Télécharger un logiciel gratuit et entièrement fonctionnel Essai de 14 jours de NumXL pour tester ou appliquer ces fonctions à vos propres données.

Veillez à examiner les Conseils et astuces et Ajustement des données pour d'autres articles susceptibles de vous intéresser.

  Pièces jointes

Commentaires

Vous devez vous connecter pour laisser un commentaire.

Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0