私は小さなサンプルサイズのデータを扱っています:
>dput(dat.demand2050.unique)
c(79, 56, 69, 61, 53, 73, 72, 86, 75, 68, 74.2, 80, 65.6, 60, 54)
密度分布は次のようになります。
値が 2 つの領域 (低と高) からのものであることはわかっており、基になるプロセスが正常であると仮定して、mixtools
パッケージを使用してバイモーダル分布に適合 させました。
set.seed(99)
dat.demand2050.mixmdl <- normalmixEM(dat.demand2050.unique, lambda=c(0.3,0.7), mu=c(60,70), k=2)
これにより、次の結果が得られます
(実線は曲線に適合し、破線は元の密度です)。
# get the parameters of the mixture
dat.demand2050.mixmdl.prop <- dat.demand2050.mixmdl$lambda #mix proportions
dat.demand2050.mixmdl.means <- dat.demand2050.mixmdl$mu #modal means
dat.demand2050.mixmdl.dev <- dat.demand2050.mixmdl$sigma #modal std dev
混合パラメーターは次のとおりです。
>dat.demand2050.mixmdl.prop #mix proportions
[1] 0.2783939 0.7216061
>dat.demand2050.mixmdl.means #modal means
[1] 56.21150 73.08389
>dat.demand2050.mixmdl.dev #modal std dev
[1] 3.098292 6.413906
次の質問があります。
- 基礎となる分布を近似する新しい値のセットを生成するには、私のアプローチは正しいですか、それともより良いワークフローがありますか?
- 私のアプローチが正しい場合、この結果を使用して、この混合分布からランダムな値のセットを生成するにはどうすればよいですか?