二項分布と正規分布の間の二乗和を計算し、データを次の関数として表示する関数をRで記述しています。p
これが私が持っているものです:
まず、確率p(n = 100)でランダムな二項分布を生成します。
random_binom<-rbinom(100,100,p)
次に、あるランダム要素の値がnp(平均)以下である確率とsqrt(np(1-p))
、正規分布によるの標準偏差を求めます。
d_norm<-dnorm(random_binom,p*100,sqrt(100*p*(1-p)))
そして、分布のランダムな値が二項分布による平均の値以下になる確率
d_binom<-dbinom(random_binom,100,p)
最後に2を引き、正方形を取り、それを返します。
result<-sum((d_norm-d_binom)^2)
return(result)
これで、コンソール内で、次のすべての関数を作成しました。
myfunction:
function(p){
random_binom<-rbinom(100,100,p)
d_norm<-dnorm(random_binom,p*100,sqrt(100*p*(1-p)))
d_binom<-dbinom(random_binom,100,p)
result<-sum((d_norm-d_binom)^2)
return(result)
}
pのベクトルを渡したいのですがp<-(c(0:99)/100)
、これを行うと、関数は次のようになります。
inf
値のベクトルではなく。プロットできるように、Rに値のベクトルを返すようにするにはどうすればよいですか?lapplyを使用してみましたが、データが奇妙な形式で返されます。
[[95]]
[1] 0.01064091
[[96]]
[1] 0.01418807
[[97]]
[1] 0.02647295
[[98]]
[1] 0.05065813
[[99]]
[1] 0.1179141
[[100]]
[1] 0.7342808
つまり、各要素には別の要素が含まれているため、グラフ化が非常に困難になります。