R获得概率分布

R获得概率分布,r,R,我有一段关系: y=a+b+c 我有a、b和c的平均值和标准差 我想得到y的概率分布 从这一点出发,采用蒙特卡罗模拟 有没有一个函数、包或简单的方法可以用来实现这一点?我假设你的输入a、b和c是正态分布的,因为你说你可以用均值和标准偏差来定义它们。如果是这样的话,你不需要任何特殊的软件包就可以很快完成 mu.a=33 mu.b=32 mu.c=13 sigma.a=22 sigma.b=22 sigma.c=222 n= a.large.number=10^5 a=rnorm(n,

我有一段关系: y=a+b+c

我有a、b和c的平均值和标准差 我想得到y的概率分布 从这一点出发,采用蒙特卡罗模拟


有没有一个函数、包或简单的方法可以用来实现这一点?

我假设你的输入a、b和c是正态分布的,因为你说你可以用均值和标准偏差来定义它们。如果是这样的话,你不需要任何特殊的软件包就可以很快完成

 mu.a=33
 mu.b=32
 mu.c=13
 sigma.a=22
 sigma.b=22
 sigma.c=222

n= a.large.number=10^5
a=rnorm(n,mu.a,sigma.a)
b=rnorm(n,mu.b,sigma.b)
c=rnorm(n,mu.c,sigma.c)
y=a+b+c
plot(density(y))
mean(y)
sd(y)
确保了解我们对
y
a
b
c
所做的所有假设。 如果你想做一些更复杂的事情,比如算出y均值的抽样方差。然后多次执行此步骤,收集平均值并绘制它

mysimfun=function(n,mu,sigma,stat.you.want='mean') 
   #  mu is length 3 and sigma is too.

{
n= a.large.number=10^5
    a=rnorm(n,mu[1],sigma[1])
    b=rnorm(n,mu[2],sigma[2])
    c=rnorm(n,mu[3],sigma[3])
    y=a+b+c
    plot(density(y))


return(ifelse(stat.you.want=='mean',mean(y),sd(y))
}


mu=c(mu.a,my.b,mu.c)
sigma=c(sigma.a,sigma.b,sigma.c)
mi=rep(NA,100)
然后在某种循环中运行它

for(i in 1:100) {mi[i]=mysimfun(10,mu,sigma,stat.you.want='mean') }

par(mfrow=c(2,1)
hist(mi)
plot(density(mi))

mean(mi)
sd(mi)

我假设你的输入a,b和c是正态分布的,因为你说你可以用均值和标准差来定义它们。如果是这样的话,你不需要任何特殊的软件包就可以很快完成

 mu.a=33
 mu.b=32
 mu.c=13
 sigma.a=22
 sigma.b=22
 sigma.c=222

n= a.large.number=10^5
a=rnorm(n,mu.a,sigma.a)
b=rnorm(n,mu.b,sigma.b)
c=rnorm(n,mu.c,sigma.c)
y=a+b+c
plot(density(y))
mean(y)
sd(y)
确保了解我们对
y
a
b
c
所做的所有假设。 如果你想做一些更复杂的事情,比如算出y均值的抽样方差。然后多次执行此步骤,收集平均值并绘制它

mysimfun=function(n,mu,sigma,stat.you.want='mean') 
   #  mu is length 3 and sigma is too.

{
n= a.large.number=10^5
    a=rnorm(n,mu[1],sigma[1])
    b=rnorm(n,mu[2],sigma[2])
    c=rnorm(n,mu[3],sigma[3])
    y=a+b+c
    plot(density(y))


return(ifelse(stat.you.want=='mean',mean(y),sd(y))
}


mu=c(mu.a,my.b,mu.c)
sigma=c(sigma.a,sigma.b,sigma.c)
mi=rep(NA,100)
然后在某种循环中运行它

for(i in 1:100) {mi[i]=mysimfun(10,mu,sigma,stat.you.want='mean') }

par(mfrow=c(2,1)
hist(mi)
plot(density(mi))

mean(mi)
sd(mi)

有两种方法:自举法,我认为这就是你所说的蒙特卡洛法,或者如果你对这个理论更感兴趣,而不是从经验分布、Disr包和它的朋友的Distrim和Distrest构建估计值

require(引导)

ax有两种方法:自举法,我认为这就是你所说的蒙特卡罗法,或者如果你对这个理论更感兴趣,而不是根据经验分布、Disr包及其朋友的Distrim和Distrest构建估计值

require(引导)

那太棒了。非常感谢,太好了。非常感谢。