2016-02-08 4 views
2

Bien que j'ai trouvé de nombreuses réponses sur la façon de dessiner une ellipse de distribution normale bivariée sur un tracé existant, j'ai une question concernant le tracé de cette ellipse sur un existant tracé pour lequel les axes x et y sont log-transformés.Création d'une ellipse de distribution normale bivariée sur un tracé ayant des axes x et y log-transformés

Comme exemple, je l'ai données suivantes auxquelles j'ajouter une ellipse

library(mixtools) 
library(truncnorm) 
x<-rtruncnorm(n=100, a=0, b=20) 
y=1+.3*x+.3*rnorm(100) 
data<-cbind(x,y) 
mu <-c(mean(x), mean(y)) 
sigma <- var(data) 
plot(data) 
ellipse(mu, sigma, alpha=0.1, npoints = 200, newplot = FALSE) 

enter image description here

Cependant, mes données réelles exige que j'utiliser le log transformé x et y axe, comme si

plot(data,log="xy") 

Lors du traçage de la fonction "ellipse", je ne reçois une ellipse

ellipse(mu, sigma, alpha=0.1, npoints = 200, newplot = FALSE) 

enter image description here

Ajout "log" aux spécifications de la fonction ellipse est également aucune option

ellipse(mu, sigma, alpha=0.1, npoints = 200, newplot = FALSE,log="xy") 

message d'avertissement: En plot.xy (xy.coords (x, y), type = type, ...): "log" n'est pas un paramètre graphique.

Quelqu'un peut-il m'aider avec celui-ci?

Merci!

Répondre

0

Le module car peut gérer des ellipses dans un espace log-transformé. Voici un avant-goût de ce qu'il peut faire. Une ligne est sans l'argument log alors que l'ellipse presque complète est avec l'argument log.

library(car) 
plot.default(data, log = "xy") 
car::ellipse(center = log(mu), shape = sigma, radius = 3, center.pch = NULL) 

enter image description here

+0

Merci pour votre réponse. Cependant, je voudrais toujours spécifier une valeur alpha (comme dans mixtools: ellipse je peux spécifier "alpha"). Est-ce aussi possible avec la voiture: fonction ellipse? De plus, la spécification "radius" dans la fonction car: ellipse est-elle arbitraire? –

+0

Je voudrais estimer que vous auriez à calculer le bon 'rayon' qui inclurait déjà" 'alpha'". C'est probablement plus compliqué sur l'axe transformé en log. Si possible, j'éviterais de transformer complètement les données et j'utiliserais un modèle capable de gérer vos données (moyenne, variance). –