Rのいずれかに既知のパラメータを持つ切り捨て正規分布を生成したいと思います。私は擬似乱数ジェネレータを求めていません。既知のパラメータを持つ切り捨て正規分布をプロットする方法R
平均5と標準偏差1の正規分布を仮定します。ポイント1と10で切り捨てられた切り捨て正規分布の値をプロットできますか?
Rのいずれかに既知のパラメータを持つ切り捨て正規分布を生成したいと思います。私は擬似乱数ジェネレータを求めていません。既知のパラメータを持つ切り捨て正規分布をプロットする方法R
平均5と標準偏差1の正規分布を仮定します。ポイント1と10で切り捨てられた切り捨て正規分布の値をプロットできますか?
この問題の解決策を見つけました。
これは以前にjuanが提案したtruncnormパッケージのdtruncnorm関数を使用して行うことができます。私は、平均5、標準偏差1、限界1と10の問題の例を使ってこれを実証します。
まず、分布からプロットする点の数のベクトルを作成する必要があります、それは等間隔になります。ですから、等間隔の分布から10点をプロットしたい場合たとえば、あなたのベクトル(「VEC」)は次のようになります。
vec=seq(from=1,by=1,length.out = 10)
上記の我々は1ずつ増加、1から始まる10点をプロットすることを保証します、値に10
まで私たちは、その後dtruncnorm()関数内でこれらを入れて、「テスト」変数に保存し、それをプロットします
test=dtruncnorm(vec,a=1,b=10,mean=5,sd=1)
plot(test)
見ての通り、これは密度をプロット離散点で。あなたは簡単にしようとすると、ポイントの数を増やすことによってプロットが連続作ることができます:
vec=seq(from=1,by=0.1,length.out = 100)
test=dtruncnorm(vec,a=1,b=10,mean=5,sd=1)
plot(test)
ご質問
次の関数は、 'd'と 'p'の両方の関数が利用できる限り、任意の分布に対して(擬似)乱数を生成します。 R
の意味では、dnorm
とpnorm
が必要であることを意味します。これは、ベースR
の一部です。
#
# random numbers for truncated distribution
#
rtrunc <- function(n, distr, lower = -Inf, upper = Inf, ...){
makefun <- function(prefix, FUN, ...){
txt <- paste(prefix, FUN, "(x, ...)", sep = "")
function(x, ...) eval(parse(text = txt))
}
if(length(n) > 1) n <- length(n)
pfun <- makefun("p", distr, ...)
qfun <- makefun("q", distr, ...)
lo <- pfun(lower, ...)
up <- pfun(upper, ...)
u <- runif(n, lo, up)
qfun(u, ...)
}
# Example:
x <- rtrunc(1, "norm", lower = 0, mean = 2, sd = 5)
ちょっと@rui、これは擬似乱数を生成するが、密度を与えない。私は分布からの乱数が好きではないでしょう。切り捨てられたノルムのサンプル空間で任意の値を選択できる必要があります。 dist。その値のそれぞれの密度を取得します。 – user5211911
密度については、上のjuanのコメントとあなたの答えに対する私の答えを見てください。 –
を持っている場合は、 'truncnorm'パッケージについて話しているコメントしてください! 'dtruncnorm'関数は密度を与えます – juan
こんにちは@元。はい、私はtruncnormパッケージについて話しています。私はdtruncnorm関数を試しましたが、密度を与えるようには見えません。たとえばvec = seq(from = 0、by = 0.01、length.out = 100)というコードを入力すると、test = dtruncnorm(vec、a = 0、b = 1、平均= 0.1、sd = 0.1) plot(test) '次に、切り捨て正規分布の正確な形を持つプロットが得られ、x値は正確です。ただし、y軸の範囲は0から5までです。これは濃度が表示されていないことを意味します(すべて1未満である必要があります)。 – user5211911
y軸の範囲が1を超えると、密度ではありません。これは、1に等しくなければならない空間(またはR、実線)上の積分です。 –