sm.density.compare()
を使用する場合は、density()
を使用しないでください。
sm.density.compare()
密度推定を行っています。具体的には、グループ化されたデータの密度推定を行っているため、異なるグループの密度を同じグラフにプロットすることができます。ここで
はあなたが本当に何をする必要があるかです:
## three groups, each of length: length(x), length(y), length(z)
group.index <- rep(1:3, c(length(x), length(y), length(z)))
## collect data together and use sm.density.compare()
den <- sm.density.compare(c(x,y,z), group = group.index, model = "equal")
## plot will be generated automatically

model = "equal"
を使用する場合は、sm.density.compare()
は値を戻しました。 str(den)
を見て:estimaate
は密度推定値の、マトリックスである一方、
List of 4
$ p : num 0
$ estimaate : num [1:3, 1:50] 2.37e-07 3.81e-06 6.06e-10 2.17e-06 2.26e-05 ...
$ eval.points: num [1:50] -4.12 -3.94 -3.76 -3.58 -3.4 ...
$ h : num 0.376
h
は、すべての密度推定のために使用される帯域幅が含まれ、eval.points
は、推定ポイントが含まれています。 (エイドリアンにはタイプミスがあります。「見積もり」でなく「見積もり」でなくてはならない、LOL)。
sm
からのすべての機能は、接頭辞sm.
から始まり、を受け入れ、sm.options
に渡されます。 ?sm.options
をお読みください。カラー表示、ラインの種類と線幅、帯域幅の選択方法などを完全に制御できます。
リファレンスバンドは2つのグループのデータにのみ追加されます。つまり、ペアワイズの比較のためには、sm.density.compare()
がもっとできます。例えば:lower
とupper
が基準バンド/信頼領域のバウンドを与える
den2 <- sm.density.compare(c(x,y), group = rep(1:2, c(length(x), length(y))),
model = "equal")

> str(den2)
List of 6
$ p : num 0.22
$ estimate : num [1:2, 1:50] 4.92e-06 2.70e-05 2.51e-05 1.00e-04 1.09e-04 ...
$ eval.points: num [1:50] -4.12 -3.94 -3.76 -3.58 -3.4 ...
$ upper : num [1:50] 0.00328 0.00373 0.00459 0.00614 0.00886 ...
$ lower : num [1:50] 0 0 0 0 0 ...
$ h : num 0.44
。あなたがdensity()
を使用している場合
、そしてこのような状況ではsm.density.compare()
## set universal estimation range
xlim <- range(x, y, z)
dx <- density(x, from = xlim[1], to = xlim[2], n = 200)
dy <- density(y, from = xlim[1], to = xlim[2], n = 200)
dz <- density(z, from = xlim[1], to = xlim[2], n = 200)
を使用していない、各グループの密度推定が独立して行われます。各「密度」オブジェクトがリストされ、例えば:
> str(dx)
List of 7
$ x : num [1:200] -2.64 -2.61 -2.58 -2.55 -2.52 ...
$ y : num [1:200] 0.023 0.026 0.0291 0.0323 0.0356 ...
$ bw : num 0.31
$ n : int 100
$ call : language density.default(x = x, n = 200, from = xlim[1], to = xlim[2])
$ data.name: chr "x"
$ has.na : logi FALSE
- attr(*, "class")= chr "density"
x
は、評価点、y
が推定される密度、bw
が使用する帯域幅です。独立した推定のため、dx$bw
、dy$bw
およびdz$bw
が異なることがわかります。ただし、density()
を呼び出すときは、bw
という引数を使用して、汎用のbw
を手動で指定できます。 ?density
を参照してください。ここでは例を示しません。
これらの密度プロットをオーバーレイするには、自分で行う必要があります。
## set global plotting range
ylim <- range(dx$y, dy$y, dz$y)
## make plot
plot(dx$x, dx$y, col = 1, lwd = 2, type = "l", xlim = xlim, ylim = ylim)
lines(dy$x, dy$y, col = 2, lwd = 2)
lines(dz$x, dz$y, col = 3, lwd = 2)

ハズレ!その完璧な、それは働いた!ありがとう! –