-2

重複
の可能性:密度曲線をRのヒストグラムに適合させる

同じグラフにヒストグラムとさまざまなPDFをプロットしたいと思います。次のコード(Webで見つけたコードから採用)を使用してPDFを1つだけ試しました。

hist(data, freq = FALSE, col = "grey", breaks = "FD")
.x <- seq(0, 0.1, length.out=100)
curve(dnorm(.x, mean=a, sd=b), col = 2, add = TRUE)

エラーが発生します。アドバイスしてもらえますか?複数のPDFの場合、トリックは何ですか?そして、ヒストグラムが観測数ではなく密度(yy軸上)をプロットしているように見えることを観察しました。これを変更するにはどうすればよいですか?

どうもありがとう!

4

2 に答える 2

2

を指定したため、頻度の代わりに密度がプロットされますfreq=FALSE。あなたがそれをするように言ったことを正確にやっていると不平を言うのはあまり公平ではありません。

このcurve関数は、(。xではなく)を含む式を想定してxおり、x値を事前に計算する必要はありません。あなたはおそらく次のようなものが欲しいでしょう:

a <- 5
b <- 2
hist( rnorm(100, a, b), freq=FALSE )
curve( dnorm(x,a,b), add=TRUE )

次の質問の先頭に立つために、指定freq=TRUEして(またはデフォルトでは省略して)曲線を追加すると、曲線は下部に沿って走ります(これは、ヒストグラムを頻度ではなく密度としてプロットする目的全体です)。これを回避するcurveには、ビンの幅と合計ポイントの数によって与えられる式をスケーリングします。

out <- hist( rnorm(100, a, b) )
curve( dnorm(x,a,b)*100*diff(out$breaks[1:2]), add=TRUE )

個人的には、y軸に目盛りラベルがない最初のオプション(密度スケール)の方が理にかなっています。

于 2012-08-22T20:15:02.460 に答える
0
h<-hist(data, breaks="FD", col="red", xlab="xTitle", main="Normal pdf and     histogram")
xfit<-seq(min(data),max(data),length=100)
x.norm<-rnorm(n=100000, mean=a, sd=b)
yfit<-dnorm(xfit,mean=mean(x.norm),sd=sd(x.norm))
yfit <- yfit*diff(h$mids[1:2])*length(loose_All)
lines(xfit, yfit, col="blue", lwd=2)
于 2012-08-22T22:07:04.227 に答える