Conseils pour identifier la forme d'une courbe à l'aide de quantreg

10

J'utilise le package quantreg pour créer un modèle de régression en utilisant le 99e centile de mes valeurs dans un ensemble de données. Sur la base des conseils d'une question de stackoverflow précédente que j'ai posée, j'ai utilisé la structure de code suivante.

mod <- rq(y ~ log(x), data=df, tau=.99)    
pDF <- data.frame(x = seq(1,10000, length=1000) ) 
pDF <- within(pDF, y <- predict(mod, newdata = pDF) )

que je montre tracé au-dessus de mes données. J'ai tracé cela en utilisant ggplot2, avec une valeur alpha pour les points. Je pense que la queue de ma distribution n'est pas suffisamment prise en compte dans mon analyse. Cela est peut-être dû au fait qu'il existe des points individuels, qui sont ignorés par la mesure de type centile.

Un des commentaires a suggéré que

La vignette du package comprend des sections sur la régression quantile non linéaire ainsi que des modèles avec splines de lissage, etc.

Sur la base de ma question précédente, j'ai supposé une relation logarithmique, mais je ne suis pas sûr que ce soit correct. Je pensais que je pouvais extraire tous les points à l'intervalle du 99e centile puis les examiner séparément, mais je ne sais pas comment faire cela, ou si c'est une bonne approche. J'apprécierais tout conseil sur la façon d'améliorer l'identification de cette relation.

entrez la description de l'image ici

celenius
la source
Il y a quelques bonnes questions sur le site qui parlent déjà de la transformation de données comme celle-ci, voir stats.stackexchange.com/q/1444/1036 ou stats.stackexchange.com/q/298/1036
Andy W
Pouvez-vous mettre à jour le graphique pour ajouter la médiane conditionnelle? cela me semble plus être un problème de passage de quantile qu'un problème de transformation de données ...
user603
@ user603 Que voulez-vous dire par la médiane conditionnelle? (J'ai cherché en ligne mais je ne sais pas comment le calculer)
celenius
tau = 0,5 dans la fonction rq ().
user603
1
Si votre objectif est précisément d'estimer le 99e centile conditionnel, je voterais pour la régression quantile non linéaire (en quelque sorte - je ne connais pas bien les packages R), car il ne semble pas que vous connaissiez la véritable forme fonctionnelle . Cependant, je ne savais toujours pas clairement à partir de votre question précédente quel était l'objectif réel, donc je voudrais réitérer le commentaire sur votre question précédente de Spacedman 4 janvier à 17h01
David M Kaplan

Réponses:

1

Tous les modèles sont faux, mais certains sont utiles (George Box). Vous forcez une forme logrithmique à votre courbe ajustée, et honnêtement, cela ne semble pas si mal. L'ajustement est médiocre à la queue car il y a moins de points là-bas; les deux paramètres que vous avez autorisés s'adapteront à la majeure partie des données. En d'autres termes, sur une échelle logarithmique, cette queue n'est pas assez éloignée de la majeure partie de vos données pour fournir un effet de levier. Cela n'a pas à voir avec la nature quantile de la régression; OLS ignorerait également ces points (en particulier sur l'échelle logarithmique).

Il est assez facile de permettre une plus grande non-linéarité. Je n'aime pas les splines naturelles, mais encore une fois, tous les modèles sont faux:

library(splines)
mod <- rq(y ~ ns(log(x), df=6), data=df, tau=.99)

Le quantregpaquet contient des crochets spéciaux pour les splines monotones si cela vous concerne.

Parkes de karité
la source