0

これがケースです:

ヒストグラムをいくつかの分布の合計として説明したいので、これらの分布をそのヒストグラムに当てはめます。ROOT/C++ ではかなり明白ですが、私は R で同等のものを探します。

## SUM OF TWO GAUSSIANS OF DIFFERENT WIDTHS
x=rnorm(n=1000,mean=0,sd=1)
y=rnorm(n=1000,mean=0,sd=3)
z=append(x,y)
b=seq(-10,10,by=0.25)
hist(z,breaks=b)

この場合、個々の寄与 (x) と (y) は既知であり、カーネルを使用してそれらの密度曲線を抽出できます。

## NARROW GAUSSIAN
hist(x,prob=T,breaks=b)
dx=density(x,ker="epan")
lines(dx,col=3,lwd=2)

## WIDE GAUSSIAN
hist(y,prob=T,breaks=b)
dy=density(y,ker="epan")
lines(dy,col=2,lwd=2)

z~dx+dyのようなことをしたい

dx と dy の分数が適合するパラメーターになります。R のドキュメントを調べると、単回帰と平滑化への参照しか見つかりませんでした。

誰か手がかりや同情的なリンクを持っていますか?

よろしくお願いします、X.

4

1 に答える 1

0

私は方法を見つけましたが、カーネルを無視しています:

x=rnorm(n=10000,mean=0,sd=1)
y=rnorm(n=10000,mean=0,sd=3)
z=append(x,y)
x=subset(x,abs(x)<=10)
y=subset(y,abs(y)<=10)
z=subset(z,abs(z)<=10)
hx=hist(x,prob=T,breaks=b)
hy=hist(y,prob=T,breaks=b)
hz=hist(z,prob=T,breaks=b)

lm(式=as.式(hz$強度~hx$強度+hy$強度))

呼び出し: lm(formula = as.formula(hz$intensities ~ hx$intensities + hy$intensities))

係数: (切片) hx$intensities hy$intensities
4.344e-17 5.002e-01 4.998e-01

これは、テンプレート ヒストグラムが信頼できる (十分なエントリ、関連するビニング) ことを前提としています。lm(formula=as.formula(hz$intensities~dx$y+dy$y)) lm(formula=as.formula(z ~dx$y+dy$y)) エラーが発生します: 変数の長さが異なります ('dx$y' で見つかりました)

カーネルはヒストグラム hx ではなく、フル セット (x) から推定されるためです。

ありがとう、マサチューセッツによろしく!

于 2013-11-06T10:58:38.903 に答える