2017-10-24 15 views
0

次のプロットでは、標準偏差の値をx軸に沿って印刷するにはどうすればよいですか?濃度プロットにラベルを付ける

Rは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") 

を印刷します。..このような

+1

あなたのプロット文でタイプミスを持っているようです。あなたが 'xact =" n "を書いたところ)' 'xaxt =" n " – G5W

答えて

1

何かありがとう:

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

x軸は、領域[-3σ、+3σ]のsd単位を示す。

1

別の方法があります。

x <- scale(x)を削除し、y <- dnorm(x, mean(x), sd(x))とすることもできます。私は何をしたのか分かりやすいと思う。

density(x)を使用するこの方法との違いは、密度の推定方法です。

パラメトリック分布を知っていれば、この場合の正規分布であり、最大尤度推定値、mean(x), sd(x)を推定することができます。密度を推定するためにそれらを使用することもできます。

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

関連する問題