Estimation du kilomètre-effort à partir de données de courses

a marqué ce sujet comme résolu.

Salut à tous,

Il m’est venu aujourd’hui la question suivante : que vaut l’estimation commune du "kilomètre-effort" d’une course ?

C’est un concept primitif pour estimer la difficulté d’une course à pied. Le but est d’avoir une mesure qui prend en compte le dénivelé positif, pour avoir quelque chose de plus représentatif que simplement le nombre de kilomètres.

On prend kmkm la longueur du parcours en kilomètres et D+D\texttt{+} son dénivelé positif en mètres, et on estime :

kme=km+D+100kme = km + \frac{D\texttt{+}}{100}

En gros, on estime que 100m de D+ vaut 1km. C’est vraiment pratique comme estimation, mais c’est proche de la réalité au moins ?


J’ai eu une démarche pour calculer ça, et j’ai obtenu un résultat. Je partage ici pour avoir des retours sur la démarche. Vous voyez des erreurs ? Vous auriez pris des raccourcis ?

Voici donc la démarche :


Le problème est que kmkm est une mauvaise estimation de l’effort à fournir. Le but est de trouver une meilleure approximation à base de D+D\texttt{+}.

D’abord, il faudrait savoir ce qu’est "un effort" pour pouvoir le quantifier et y comparer différentes estimations. Le temps semble être pas mal. Si c’est facile, on va plus vite ce qui montre que l’effort est moindre. Sinon, on ralenti et on réparti notre effort sur une plus longue période. L’avantage, c’est que c’est une donnée facilement obtenable des courses.

Donc, en supposant qu’on obtient plein de triplets (km,D+,t)(km, D\texttt{+}, t), avec tt le temps passé, on en fait quoi ?

On cherche une meilleure estimation de l’effort que kmekme, mais la forme qu’il a semble logique :

kme=km+αD+100kme' = km + \frac{\alpha D\texttt{+}}{100}

On se demande si α=1\alpha = 1 est la meilleure solution. Donc, on suppose que kme×β=tkme' \times \beta = t, càd qu’ils grandissent ensemble de manière linéaire.

Pour ça, je me dis qu’on peut faire une estimation linéaire entre tt et kmekme' pour différentes valeurs de α\alpha. L’estimation qui aura la plus petite erreur sera la plus adaptée.

Donc maintenant, on passe au concret. On télécharge des données de courses du site de l'UTMB, qui recense beaucoup de course (34505 courses).

Pour chaque course, on extrait uniquement (1) la distance, (2) le D+ et (3) le temps médian. Pour ce dernier, je n’ai pas de bonne justification. Il me fallait un temps, et le médian m’a semblé le plus adapté (surtout pour éviter les extrêmes). J’ignore les courses :

  • avec moins de 50 temps,
  • de moins d’une heure,
  • de plus de 4 heures,
  • avec du D+ de moins de 10m (soucis de saisie de données).

Ensuite, pour les valeurs de α\alpha entre 0 et 1.5 avec un pas de 0.01, on fait ça :

x = data[:,2]  # t
y = (data[:,0] + (data[:,1] * alpha / 100))  # km + (dplus * alpha / 100)
_, a, _, _, _ = np.polyfit(x, y, 1, full=True)
error = a[0]

On utilise la "méthode des moindres carrés" avec un degré 1 pour viser une droite. On récupère ce que la documentation NumPy appelle "residuals – sum of squared residuals of the least squares fit".

(Une autre technique si on n’a pas un nombre décimal représentant l’erreur est de diviser y par le temps. Comme ça, on vise à minimiser le polynôme de degré 1 parce qu’on sait que l’estimation qu’on désire est une droite parallèle à l’axe des abscisse.)

Le résultat obtenu est … 0.37. L’estimation serait donc que 100m de D+ équivaut à 370m.

Voici les 25411 courses que j’ai utilisé, avec kmkm, D+D\texttt{+} et tt (heures), trié par D+D\texttt{+}. Je peux fournir plus de données et scripts au besoin. Deux bouts de Python pour jouer avec les données :

De quoi charger les données dans la variable data comme au dessus :

data = []
with open('race-stats.txt') as f:
	for line in f:
		km, dplus, h = line.split()
		km, dplus, h = float(km), float(dplus), float(h)
		if h > 1 and h < 4:
			data.append((km, dplus, h))
data = np.array(data)

Et une fonction pour dessiner un kmekme' et son estimation avec matplotlib :

import matplotlib.pyplot as plt
def draw(x, y):
	plt.figure()
	plt.xlabel('h')
	plt.ylabel('kme')
	plt.scatter(x, y)
	z = np.polyfit(x, y, 1)
	p = np.poly1d(z)
	plt.plot(x, p(x), "r--")
	plt.title("y=%.6fx+%.6f" % (z[0],z[1]))
	plt.show()

Remarques et questions :

  • Je ne sais pas réellement comment vérifier mon résultat. Je me dis que je pourrais appliquer ma formule et voir que ça donne un meilleur résultat que α=1\alpha = 1 par exemple. Mais ça reviendrai à faire exactement la même chose !

  • Vous pensez à d’autres démarches potentielles ?
    Je me dis par exemple qu’on pourrait par exemple mesurer la consommation d’énergie d’un corps humain pour des efforts qui incluent, ou non, du dénivelé. Ça a probablement déjà été fait (?).

  • Est-ce que vous voyez des méthodes pour exploiter les données individuels de coureurs ? Ça permettrait de voir si α\alpha change en fonction du niveau ou l’expérience par exemple.

  • Votre ressenti de coureur ? :-)

    Le mien : je trouve 0.37 plus réaliste que 1.0, mais je m’attendais à une valeur entre 0.5 et 0.7.

Merci, et bonne soirée !

Marrant comme sujet d’analyse ! J’ai toujours aussi été étonné du KM effort comme mesure sur les courses. Il faudrait peut être aussi se dire que d’un point de vue physiologique la répartition du dénivelé à aussi son importance : 100m de D+ sur 1Km d’un 10K et 100m de D+ repartis linéairement sur un 10K ça ne donne peut être pas le même résultat (section difficile dans le premier cas vs "faux-plat" dans le deuxième).

Aussi tu ne prends pas en compte le D- alors que je pense que ça pourrait avoir un impact. Pour une course où on revient à son point de départ c’est la même quantité que le D+ mais ce n’est pas toujours le cas. Il y a par exemple des marathons qui sont considérés comme plus roulants car comportant uniquement du D- (200m de D- sur un marathon par exemple).

Pour mon ressenti de coureur je dirais que pour moi, 100m de D+ ça doit être plutôt équivalent à 700m de plat en impact (faudrait que je recreuse certaines courses passées), donc plus proche de ta valeur d’intuition.

Après l’expérience de coureur doit énormément impacter aussi, je cours toujours uniquement sur du plat, donc forcément pas une très bonne capacité a monter ;)

La méthode des moindres carrés a un gros défaut. Quand la corrélation est faible, elle donne une pente faible.

J’explique.

Tu as un jeu de données (x,y), tu cherches un couple de réels (a,b), de telle sorte que la droite y=ax+b approche le mieux le nuage de points. Tu trouves un certain couple (a,b)

A partir du même jeu de données, on peut chercher aussi un autre couple (c,d), de telle sorte que la droite x=cy+d approche le mieux le nuage de points. Tu vas trouver un autre couple, et donc une autre droite.

La bonne droite, celle qui représente le mieux le nuage de points, c’est la bissectrice entre les 2 droites obtenues (l’une des 2 bissectrices… l’autre serait perpendiculaire à la première.

Application ici.

Tu as un jeu de données avec des triplets (t, km, D)

Tu cherches a et b tels que la droite t=a km + b D soit une bonne approximation du nuage de points. Tu as donc cherché a et b, t/km = a + b D/km soit une bonne approximation.

Tu peux aussi chercher c et d, tels que la droite D/km = c + d t/km soit une bonne approximation du nuage.

Tu vas trouver une autre droite. Et c’est la bissectrice de nos 2 droites qu’il faudra retenir.

C’est un sujet intéressant !

Il existe la formule de Naismith, qui reprend la même idée, mais avec un facteur de 0.72. Si je saisis tout, c’est pour de la randonnée, et ça ne m’étonnerait pas du tout qu’il soit plus bas pour de la course.

Ton résultat de 0.37 me semble bas aussi, mais sur les courses de l’UTMB, en général, c’est des gens très habitués, donc il y a un biais certain.

Bonjour 😁 De mon expérience je dirais que la relation entre dénivelé et effort n’est pas linéaire.

5 montée-descente de 100m, ce n’est pas pour moi le même effort qu’une montée decente de 500m

Et comme il a été dis plus haut, l’effort va également dépendre de l’inclinaison de/des montées.
Au delà de 10% d’inclinaison l’effort augmente significativement.

Le rythme aussi. À temps égal, si je cours régulièrement entre montée et descente VS je marche dans la montée et je cours dans la descente

Marrant comme sujet d’analyse ! J’ai toujours aussi été étonné du KM effort comme mesure sur les courses. Il faudrait peut être aussi se dire que d’un point de vue physiologique la répartition du dénivelé à aussi son importance : 100m de D+ sur 1Km d’un 10K et 100m de D+ repartis linéairement sur un 10K ça ne donne peut être pas le même résultat (section difficile dans le premier cas vs "faux-plat" dans le deuxième).

Hum, peut-être. Et encore, est-ce si important ? Peut-être que tes deux exemples entraînent la même augmentation de temps versus les courses avec la même distance et sans dénivelé.

Aussi tu ne prends pas en compte le D- alors que je pense que ça pourrait avoir un impact. Pour une course où on revient à son point de départ c’est la même quantité que le D+ mais ce n’est pas toujours le cas. Il y a par exemple des marathons qui sont considérés comme plus roulants car comportant uniquement du D- (200m de D- sur un marathon par exemple).

En trail, le D+ et D- sont souvent proches. Ici on essaie d’améliorer l’estimation vague utilisée au quotidien, pas de prédire un temps de course ! Le but étant de garder le calcul faisable de tête.

Pour mon ressenti de coureur je dirais que pour moi, 100m de D+ ça doit être plutôt équivalent à 700m de plat en impact (faudrait que je recreuse certaines courses passées), donc plus proche de ta valeur d’intuition.

Comment est-ce que tu estimes ça ?

Après l’expérience de coureur doit énormément impacter aussi, je cours toujours uniquement sur du plat, donc forcément pas une très bonne capacité a monter ;)

Anto59290

Ah clairement, l’expérience joue beaucoup ! Ici on parle de la médiane des temps sur trails enregistrés au prêt de utmb.world, entre 1h et 4h. La médiane de D+ est de 880m (min=21, max=2330), la distance médiane est 21km (min=3, max=38.4). Personne n’attaque ces courses sans entraînement spécifique ; je parle en connaissance de cause, les deux courses que j’ai fait ces deux dernières années rentrent dans les critères. :-)


La méthode des moindres carrés a un gros défaut. Quand la corrélation est faible, elle donne une pente faible.

elegance

Je pense avoir plutôt bien compris l’explication. Par contre, je me demande si ça a une importance dans mon cas ? Je ne cherche pas réellement à trouver une droite fiable approximant mon nuage de point. J’utilise la méthode pour benchmarker différentes solutions.

J’ai l’impression qu’en utilisant ta méthode, j’obtiendrai une meilleure approximation du nuage de point à chaque valeur de α\alpha, mais que la valeur obtenant l’erreur la plus basse sera toujours la même. C’est vrai ?

Et quelle valeur d’erreur utiliser ? La somme des deux approximations ? Une estimation basée sur la droite résultante ?

D’ailleurs, tu dis "Quand la corrélation est faible, elle donne une pente faible". Ça ne pourrait d’ailleurs pas faire que la méthode est d’autant plus adapté pour trouver le nuage de point avec le PLUS de corrélation ? L’erreur sera d’autant plus minimisé.


Il existe la formule de Naismith, qui reprend la même idée, mais avec un facteur de 0.72. Si je saisis tout, c’est pour de la randonnée, et ça ne m’étonnerait pas du tout qu’il soit plus bas pour de la course.

Intéressant !

Tu dis 0.72, mais je vois 0.792, càd "Naismith’s number" divisé par 10. J’imagine que c’est une typo.

Je ne pense pas que ça soit réellement comparable. La formule de Naismith cherche à quantifier le temps passé en randonnée. La différence avec le trail est qu’on ne régule pas sa vitesse de la même manière. En train, on peut aller 4 fois plus vite en descente si le terrain le permet. Autrement dit, en randonnée on perd du temps en montée et on n’en gagne que peu en descente (par rapport à du plat). La randonnée limite plus sur cet aspect. Il y a aussi les contraintes de l’altitude qui apparaissent plus souvent en randonnée.

Aussi, il est bien plus fréquent en randonnée de faire de la montée sur une journée sans faire de descente. En trail, on descends ce qu’on monte, donc on gagne du temps un moment.

Ton résultat de 0.37 me semble bas aussi, mais sur les courses de l’UTMB, en général, c’est des gens très habitués, donc il y a un biais certain.

Rockaround

Attention, ce ne sont pas les courses organisées par l’entreprise UTMB, mais les courses dont les résultats sont recensés sur utmb.world. Les organisateurs peuvent faire la demande puis fournir leurs résultats. L’UTMB utilise ça par la suite pour autoriser l’inscription à ses courses en fonction des antécédants des coureurs.

Ça ne change pas que ceux qui font ça s’entrainent, oui. :-)

À noter que si au lieu du temps médian on prend le 75th percentile (Q3), on obtient 0.3, et non un score plus élevé. L’impact du D+ semble donc moins important. Peut-être que l’écart entre vitesse à plat, en montée et en descente est plus faible, et donc le D+ a moins d’impact sur le temps de course ?

Ça semble montrer une limite de prendre le temps de course comme estimation de l’effort fourni : un débutant à plus tendance à sentir passer (càd souffrir) du D+ qu’une personne plus expérimentée.

Autrement dit, on ne peut sûrement pas conclure "100m de D+ vaut 370m de distance en volume d’effort" mais plutôt "en course de trail, faire 100m de D+ rajoute l’équivalent de 370m de distance niveau temps" qui n’est pas pareil !


De mon expérience je dirais que la relation entre dénivelé et effort n’est pas linéaire.

5 montée-descente de 100m, ce n’est pas pour moi le même effort qu’une montée decente de 500m

À bon, dans quel sens ? Tu prends effort dans le sens "temps passé" ou dans le sens effort physique qui se ressent sur le corps (le lendemain surtout…) ?

Et comme il a été dis plus haut, l’effort va également dépendre de l’inclinaison de/des montées.
Au delà de 10% d’inclinaison l’effort augmente significativement.

Oui, mais tu franchis le D+ plus rapidement aussi. C’est normal que l’effort augmente. Est-ce que la difficulté augmente plus vite que la quantité de dénivelé que tu franchis ?

Au dessus de 10%, tu franchis 100m de D+ tous les km. C’est beaucoup. Il n’y a pas beaucoup de courses qui ont ça pendant de long tronçons. Et tu auras la descente qui va arriver après.

Le rythme aussi. À temps égal, si je cours régulièrement entre montée et descente VS je marche dans la montée et je cours dans la descente

Drulac

Là on rentre dans de la stratégie de course ! En course je n’hésite pas à marcher dès que la question se pose. Par contre, il faut alonger sur la descente qui arrive. :-)

Après, encore une fois, la question initiale n’est pas là. On veut juste une valeur à la louche km+D+×?km + D\texttt{+} \times ? qui nous dit comment on va galérer.


Content que le sujet plaise. :D

Pour moi c’est un problème d’analyse de données — tu as plein de données de courses et tu ne sais pas, à priori, quel est le bon modèle pour prédire le temps passé pour la course.

(Je me demande au passage si le temps médian est la bonne estimation; c’est assez sensible au choix du "public" pour la course, est-ce que le meilleur temps ou la médiane des 10 meilleurs temps ne serait pas moins bruitée ? Quelle est la sensibilité de ton résultat à ce choix de "temps" pour une course ?)

Ta démarche dans ce post c’est de critiquer un choix de paramètre pour un modèle fixé (une régression linéaire), et d’essayer de le reparamétrer avec les données. On part du modèle et on le teste avec les données. Est-ce qu’il ne serait pas intéressant d’essayer de visualiser ces données avant, pour essayer de voir plus de choses et peut-être de penser à des modèles différents ou d’isoler des régions plus significatives ?

À quoi ressemble le nuage 3D des points que tu as collecté ? Y a-t-il des clusters qui se détachent ? Question plus élémentaire, quelle est la distribution des dénivelés dans tes données ? (j’imagine: beaucoup de courses assez plates, un peu de courses avec des dénivelés moyens, et un petit nombre de course avec un plus fort dénivelé). Si on fait des groupes/clusters par dénivelés différents, est-ce que le modèle prédit des paramètres proches sur chaque groupe ou au contraire des paramètres très différents ?

+1 -0

Salut,

Je me dis par exemple qu’on pourrait par exemple mesurer la consommation d’énergie d’un corps humain pour des efforts qui incluent, ou non, du dénivelé. Ça a probablement déjà été fait (?).

tleb

Oui ! Google Scholar m’a tout de suite amené sur ces papier (mots-clés : energy expenditure estimation running elevation) : Estimating Energy Expenditure during Level, Uphill, and Downhill Walking, Validated Caloric Expenditure Estimation using a Single Body-Worn Sensor. La méthode utilisée ici (si j’ai bien compris) est de la "calorimétrie indirecte" par mesure de la quantité de CO2 expiré. Des formules sont données pour prédire la consommation d’énergie (en puissance rapportée à la masse) en fonction de la vitesse de course et de la pente. On s’éloigne un peu du kmekme mais ça doit être possible d’y retomber sous quelques hypothèses.

D’autres papiers s’intéressent à la consommation d’énergie totale sur une course, après j’ai l’impression que les données sont pas simples à décortiquer.

+0 -0

Est-ce qu’on aurait des données cardiaques sur les courses ? On pourrait évaluer un coefficient de volume de sang

Holosmos

Le jeu de données que j’utilise n’en contient pas. Un exemple de course pour voir à quoi ça ressemble :

{
  "id": 67490,
  "eventName": "Backyard Ultra Paraguana 2020",
  "name": "Backyrard Ultra Paraguana 27",
  "category": "100m",
  "themeColor": "#f42525",
  "themeColorIsDark": true,
  "logoWs": "/Common/categories/qualifiers100M",
  "url": "http://descubriendoparaguana.com.ve/bupa",
  "distance": "183.90",
  "elevationGain": 1300,
  "hasResults": true,
  "uriResults": "27542.backyardultraparaguana2020backyrardultraparaguana27.2020",
  "startDate": "2020-Dec-12",
  "startCountry": "VE",
  "startPlace": "Santa Ana de Paraguana, Venezuela",
  "year": 2020,
  "level": "qualifier",
  "nbStones": 0,
  "results": {
    "ageGroups": [
        "U18", "U20", "20-34", "35-39", "40-44", "45-49", "50-54", "55-59", 
        "60-64", "65-69", "70-74", "75-79", "80+"
    ],
    "limit": 100000,
    "offset": 0,
    "nbHits": 1,
    "results": [
      {
        "runnerUri": "687277.foo.bar",
        "fullname": "Foo Bar",
        "time": "26:56:16",
        "rank": 1,
        "nationality": "Venezuela",
        "nationalityCode": "VE",
        "index": null,
        "ageGroup": "35-39",
        "gender": "H"
      }
    ],
    "isLogged": false
  }
}

Qu’est ce que tu appelles "coefficient de volume de sang" ? Une recherche sur ce terme ne donne pas de résultat exact. Est-ce qu’un électrocardiogramme fourni les informations dont tu parles ?

Je ne suis pas un coureur très connecté (pas de montre ni téléphone pendant l’effort), donc à titre personnel je n’ai pas de données. Je pense que n’importe quel coureur régulier utilisant une montre connectée pourrait être plus utile.


Pour moi c’est un problème d’analyse de données — tu as plein de données de courses et tu ne sais pas, à priori, quel est le bon modèle pour prédire le temps passé pour la course.

(Je me demande au passage si le temps médian est la bonne estimation; c’est assez sensible au choix du "public" pour la course, est-ce que le meilleur temps ou la médiane des 10 meilleurs temps ne serait pas moins bruitée ? Quelle est la sensibilité de ton résultat à ce choix de "temps" pour une course ?)

Les résultats varient : 0.47 pour le meilleur temps, 0.43 pour le deuxième, 0.40 pour le 3ème temps, 0.37 pour le 4ème temps, 0.36 pour le 5ème temps, 0.40 pour Q1, 0.37 pour la médiane, 0.35 pour Q3.

α\alpha quand on prend le temps du N-ième :

α\alpha quand on prend la moyenne de 10 temps (valeur 1 => temps 1 à 10, valeur 2 => temps 2 à 11, etc.) :

α\alpha quand on prend le Nth percentile :

Pour les deux premiers, je pense qu’on peut ignorer tout ce qui dépasse le ~20ème temps. Au dela, on est plus proche de l’aléatoire : on peut tomber sur le haut du panier d’une course tout comme on peut tomber sur la fin du classement. Faire un calcul à partir de ça n’a pas de sens.

Pour visualiser un peu les données, voici un tracé du nombre de KME d’une course par rapport au temps du premier. On trace donc le résultat de notre optimisation.

La même chose, mais cette fois en prenant le temps médian :

Ma théorie est qu’à haut niveau (càd pour le premier), l’effort moyen sur du plat est plus élevé. Quand ils arrivent donc en côte, il y a moins de marge de manoeuvre et donc plus de ralentissement. Au contraire, une personne lambda sera plus raisonné sur du plat et en aura sous le pied pour augmenter l’effort en côte. L’impact du D+ serait donc plus important à haut niveau.

On est donc en plein dans "on mesure l’impact du D+ sur le temps" et non sur l’effort. Dis autrement, le D+ entraine un effort plus grand sur la même durée. Ce n’est qu’une théorie, elle n’est pas justifiée.

Je ne m’explique pas pourquoi le 25ème percentile (Q1) est plus élevé le top 5 des résultats niveau α\alpha.

Ta démarche dans ce post c’est de critiquer un choix de paramètre pour un modèle fixé (une régression linéaire), et d’essayer de le reparamétrer avec les données. On part du modèle et on le teste avec les données. Est-ce qu’il ne serait pas intéressant d’essayer de visualiser ces données avant, pour essayer de voir plus de choses et peut-être de penser à des modèles différents ou d’isoler des régions plus significatives ?

Ce qui m’a entrainé dans la direction, c’est que le modèle commun du KM-effort semble intuitivement vrai, à l’exception du facteur d’importance du D+ que je remet en question. Ta question est bonne !

Mon intuition me dit que du D+ sur une course entraine une réduction (environ linéaire) du nombre de kilomètres parcourus. Pour vérifier ça, on peut grapher le nombre de kilomètre contre le nombre de mètre de D+, avec les deux normalisés sur la durée de course. Si la théorie est vrai, on devrait voir une droite allant de 0 D+/h avec une forte vitesse (càd haut km/h) à +++ D+/h avec une faible vitesse.

On enlève les plus de 600D+/h qui sont des formats spécifiques probablement, dans le style des "Kilomètre Vertical" (KV).

Bon, on sait déjà qu’on n’arrivera pas à prédire le temps de course à partir du km, D+ et temps. Par contre, une augmentation de D+ semble bien se traduire par une diminution de la vitesse. Donc, notre modèle pour créer une vitesse alternative qui ne change pas en fonction du D+ devrait en effet être fonction linéaire du D+.

D’ailleurs, on peut remplacer le km/h dans le graphe du dessus par le kme/h (avec alpha=0.37) pour voir la transformation qu’on a appliqué :

À quoi ressemble le nuage 3D des points que tu as collecté ? Y a-t-il des clusters qui se détachent ? Question plus élémentaire, quelle est la distribution des dénivelés dans tes données ? (j’imagine: beaucoup de courses assez plates, un peu de courses avec des dénivelés moyens, et un petit nombre de course avec un plus fort dénivelé). Si on fait des groupes/clusters par dénivelés différents, est-ce que le modèle prédit des paramètres proches sur chaque groupe ou au contraire des paramètres très différents ?

gasche

On a ici km sur D+ :

Remarque :

  • La limite basse est formée par la distance minimum pour réaliser un certain D+, avec quelques exceptions qui font beaucoup (beaucoup) de D+ en peu de distance.
  • On voit des lignes horizontales qui marquent des distances classiques, comme les nombres entiers de km, les semis, etc.
  • On a un oval qui fait la diagonale et qui représente le gros des courses, qui ont toutes un D+/km plutôt raisonnable et standard. Si on sort de celui-ci, on a les courses avec peu ou beaucoup de D+ relativement à leur distance.

À propos de cette dernière remarque, on peut vérifier en traçant D+/km en fonction du km :

On zoom en enlevant les >= 100 D+/km (c’est énorme au total sur une course) :

C’est plutôt homogène et je ne remarque pas de cluster. On a une limite haute de temps qui nous empêche d’atteindre de grandes distances ou des courses entre 20 et 40km avec beaucoup de D+.

Le seul filtre que je peux imaginer, c’est d’éviter les très extrêmes d’un point-de-vue D+/km. Mais ça, je ne vois pas comment ça peut influencer fortement les résultats. Le reste est une grande masse de courses sans séparation claire.

À noter : j’ignore les courses de moins de 4h. Ça retire donc toutes les courses d’ultra-trail.


Vous voyez des tendances ou visualisations utiles que j’ai raté ? J’ai maintenant les scripts qu’il faut pour grapher un peu tout facilement.


Oui ! Google Scholar m’a tout de suite amené sur ces papier (mots-clés : energy expenditure estimation running elevation) : Estimating Energy Expenditure during Level, Uphill, and Downhill Walking, Validated Caloric Expenditure Estimation using a Single Body-Worn Sensor. La méthode utilisée ici (si j’ai bien compris) est de la "calorimétrie indirecte" par mesure de la quantité de CO2 expiré. Des formules sont données pour prédire la consommation d’énergie (en puissance rapportée à la masse) en fonction de la vitesse de course et de la pente. On s’éloigne un peu du kmekme mais ça doit être possible d’y retomber sous quelques hypothèses.

luxera

Ah, je vais regarder ça, merci ! J’ai cette réponse en attente dans mon éditeur depuis bien trop longtemps. :-)

Oui ! Google Scholar m’a tout de suite amené sur ces papier (mots-clés : energy expenditure estimation running elevation) : Estimating Energy Expenditure during Level, Uphill, and Downhill Walking, Validated Caloric Expenditure Estimation using a Single Body-Worn Sensor. La méthode utilisée ici (si j’ai bien compris) est de la "calorimétrie indirecte" par mesure de la quantité de CO2 expiré. Des formules sont données pour prédire la consommation d’énergie (en puissance rapportée à la masse) en fonction de la vitesse de course et de la pente. On s’éloigne un peu du kmekme mais ça doit être possible d’y retomber sous quelques hypothèses.

luxera

Donc, dans la première étude (la seconde est inaccessible), ils établissent une approximation, qu’ils appellent la méthode LCDA :

EE=1.44+1.94S0.43+0.24S4+0.34SG(11.0511.1G+32)EE = 1.44 + 1.94S^{0.43} + 0.24S^4 + 0.34SG(1-1.05^{1-1.1^{G+32}})

Avec :

  • EEEE l’énergie consommée, Energy Expenditure, en Wkg1W \cdot kg^{-1} ;
  • SS la vitesse, Speed, en ms1m \cdot s^{-1} ;
  • GG la pente du terrain, surface Grade, càd D+D\texttt{+} par distance horizontal.

Graphe avec S=1S=1 (3.6km/h), S=2S=2 (7.2km/h) et S=3S=3 (10.8km/h) :

Je ne me lance pas dans une analyse, on va faire ça graphiquement. À S=3S=3, en prenant 0G500 \le G \le 50, on se rend compte que EEEE forme une droite presque parfaite :

Note : j’ai pris S=3S=3 parce que c’est une valeur ronde et une vitesse de course. J’ai pris G50G\le 50, ce qui donne 500m de D+ par kilomètre. Le KV le plus raide fait 1800m, soit G55G \simeq 55. Un KV plus standard fait ~3500m soit G28G \simeq 28.

Ça nous dit quoi ça ? Que l’énergie pour parcourir une distance à S=3S=3 et G=0G=0 est la moitié de l’énergie pour parcourir la même distance à S=3S=3 et G=23.876/1.02323.33G = 23.876 / 1.023 \simeq 23.33. Dans un cas on couvre 10.8km à plat, dans l’autre 10.8km et 2520m de D+.

À la manière de la règle de Naismith, on obtient donc l’équivalence entre distance et D+ suivante : 1km équivaut à 233m de D+.

Le ratio (α\alpha) qui nous intéresse ici est donc : 100/233=0.43100 / 233 = 0.43.

Oh ! Grosse, bonne surprise.


Étape suivante : grapher les valeurs de α\alpha en fonction de la vitesse SS. Ça sera pour un autre jour.


Édition : pour une représentation de LCDA en fonction de GG (avec trois valeurs de SS), j’avais envoyé trois images… J’ai remplacé par une seule qui contient les trois courbes.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte