2017-10-24 5 views
0

Wie kann ich in der folgenden Zeichnung nur die Werte der Standardabweichung entlang der X-Achse drucken lassen?Kennzeichnung eines Dichtediagramms

R druckt 5, 7, 10, 13, 15, 19, 20, 22, 25.

x <- rnorm(3e3, 16, 3) 
plot(density(x), type = "l", lwd = 2, col = 254, 
main = "Random Variable X", xact = "n") 
axis(side = 1, at = c(7, 10, 13, 19, 22, 25), 
labels = c("7","10","13","19", "22", "25")) 
abline(v = 16, lwd = 2) 
abline(v = c(7, 10, 13, 19, 22, 25), col = "darkgreen") 

Danke ..

+1

Sie scheinen einen Tippfehler in Ihrem Plot Aussage zu haben. wo du 'xact =" n "geschrieben hast)' Ich glaube, du meintest 'xax =" n ")' – G5W

Antwort

1

Etwas wie folgt aus:

x <- rnorm(3e3, 16, 3); 
plot(
    density(x), 
    type = "l", lwd = 2, col = 254, 
    main = "Random Variable X", xaxt = "n"); 
axis(
    side = 1, 
    at = mean(x) + seq(-3, 3, by = 1) * sd(x), 
    labels = seq(-3, 3, by = 1)); 

enter image description here

Die x-Achse zeigt SD-Einheiten in der Region [-3σ, + 3σ].

1

Hier ist eine andere Methode.

Eine andere Variante desselben wäre x <- scale(x) zu entfernen und y <- dnorm(x, mean(x), sd(x)) zu haben. Ich denke, es ist leicht zu sehen, was ich getan habe.

Der Unterschied zwischen dieser Methode und density(x) ist, dass die Dichte geschätzt wird.

Wenn Sie die Verteilung in parametrisch kennen, die Normalverteilung in diesem Fall, und es möglich ist, die Maximum-Likelihood-Schätzungen mean(x), sd(x) zu schätzen, können Sie diese auch zur Schätzung der Dichte verwenden.

set.seed(42) 
rnorm(3e3, 16, 3) 

# normalize N(0, 1) 
x <- scale(x) 
# order so plotting is easy 
x <- x[order(x)] 
# density 
y <- dnorm(x) 
plot(x, y, type = "l", lwd = 2, col = 254, ylab = "density", 
    main = "Random Variable X") 

enter image description here

Verwandte Themen