Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : Général » Calculer une médiane pondérée » 31/01/2018 11:25:59
Bonjour et un grand merci pour votre aide.
J'ai appliqué l'ensemble de vos solutions à ma base globale. Je connaissais le loyer médian pondéré à trouver et souhaitais pouvoir effectuer d'autres médianes (par exemple selon le type de pièce, l'âge de construction, ...).
J'ai donc appliqué vos requêtes pour calculer la médiane global que je connaissais et je retrouve bien le résultat avec le programme suivant :
WITH runsums AS (
SELECT x, SUM(y) OVER (ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS runsum,
SUM(y) OVER (ORDER BY x ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS prevsum,
SUM(y) OVER () AS total
FROM Age
)
SELECT x
FROM runsums
WHERE total / 2 BETWEEN prevsum AND runsum
J'avoue ne pas savoir pourquoi seul ce programme fonctionne mais c'est bon à savoir
Pour information, ma variable pondération étant en double précision, j'ai du modifier la fonction round du programme de damalaan
round(pond / total,2) est devenu round(pond / total)
Encore merci à vous et pour votre collaboration !!!!
#2 Re : Général » Calculer une médiane pondérée » 30/01/2018 09:58:51
Merci beaucoup pour tous ces éléments. Je vais tester tout de suite cette fonction pour voir si cela fonctionne !
Sinon, je passerai sous R qui propose effectivement comme SAS d'indiquer la présence d'une pondération via "weight"
#3 Re : Général » Calculer une médiane pondérée » 29/01/2018 10:47:51
Bonjour,
Merci pour ces premiers éléments. Pour être plus clair dans ma demande, voici un extrait simplifié de ma table brute :
Primary key loyer_m2 Ponderation
1 10.431 3.564
2 10.938 5.554
3 12.121 5.554
4 10.606 5.554
5 11.045 3.182
6 9.219 11.705
7 11.000 11.705
8 7.789 5.419
9 8.479 12.553
10 8.409 5.419
11 11.443 10.145
12 11.864 8.484
13 11.106 8.484
Comme vous le voyez, j'ai un loyer au m² pour chaque ligne qui correspond à un logement. Ces résultats provenant d'une enquête, des pondérations ont été calculées afin d'être représentatifs.
Je souhaiterais donc à partir de cette table calculer le loyer au m² médian pondéré.
Je comprends que la fonction médian que j'ai utilisé n'est pas à conserver...
Quelle requête écririez-vous pour obtenir ce résultat ?
Merci pour vos éclairages !!!!!
#4 Général » Calculer une médiane pondérée » 24/01/2018 17:39:39
- Anne-Lise B
- Réponses : 11
Bonjour,
Je souhaite calculer la médiane d'une variable à partir d'une table de données incluant une pondération.
J'ai effectué le code suivant mais le résultat n'est pas le bon (j'ai calculé la médiane en amont). Quelqu'un saurait-il d'où vient l'erreur ?
Je suppose que je n'incorpore pas ma pondération au bon moment...
with
nom_table1 as (
select (variable*ponderation)/sum(ponderation) as variable_ponderee
from table_source
group by variable, ponderation)
select median (variable_ponderee)
from nom_table1
Merci d'avance pour votre éclairage
Pages : 1