将从具有形状参数 alpha 和速率参数 beta 的伽马分布生成大小为 n 的 iter 样本的函数
Function that will generate iter samples of size n from a gamma distribution with shape parameter alpha and rate parameter beta
函数需要return每个样本的均值和标准差。
这是我的:
sample_gamma <- function(alpha, beta, n, iter) {
mean = alpha/beta
var = alpha/(beta)^2
sd = sqrt(var)
gamma = rgamma(n,shape = alpha, scale = 1/beta)
sample_gamma = data.frame(mean = replicate(n = iter, expr = mean))
}
对此我很迷茫。我还需要为此功能创建一个数据框。
感谢您的宝贵时间。
编辑:
sample_gamma <- function(alpha, beta, n, iter) {
output <- rgamma(iter, alpha, 1/beta)
output_1 <- matrix(output, ncol = iter)
means <- apply(output_1, 2, mean)
sds <- apply(output_1, 2, sd)
mystats <- data.frame(means, sds)
return(mystats)
}
这对 sds 除外。 returning NA。
我不太清楚你想要什么。但是假设你想创建 10 个大小为 1000、alpha = 1、beta = 2 的样本。然后你可以创建一个 rgamma 实现流,将它们维度化为一个矩阵,然后使用 apply 获取你的统计数据,最后创建一个数据框使用这些向量:
output <- rgamma(10*1000, 1, 1/2)
output <- matrix(output, ncol = 10)
means <- apply(output, 2, mean)
sds <- apply(output, 2, sd)
mystats <- data.frame(means, sds)
您可以围绕该代码包装您的函数,用参数替换硬值。
函数需要return每个样本的均值和标准差。
这是我的:
sample_gamma <- function(alpha, beta, n, iter) {
mean = alpha/beta
var = alpha/(beta)^2
sd = sqrt(var)
gamma = rgamma(n,shape = alpha, scale = 1/beta)
sample_gamma = data.frame(mean = replicate(n = iter, expr = mean))
}
对此我很迷茫。我还需要为此功能创建一个数据框。
感谢您的宝贵时间。
编辑:
sample_gamma <- function(alpha, beta, n, iter) {
output <- rgamma(iter, alpha, 1/beta)
output_1 <- matrix(output, ncol = iter)
means <- apply(output_1, 2, mean)
sds <- apply(output_1, 2, sd)
mystats <- data.frame(means, sds)
return(mystats)
}
这对 sds 除外。 returning NA。
我不太清楚你想要什么。但是假设你想创建 10 个大小为 1000、alpha = 1、beta = 2 的样本。然后你可以创建一个 rgamma 实现流,将它们维度化为一个矩阵,然后使用 apply 获取你的统计数据,最后创建一个数据框使用这些向量:
output <- rgamma(10*1000, 1, 1/2)
output <- matrix(output, ncol = 10)
means <- apply(output, 2, mean)
sds <- apply(output, 2, sd)
mystats <- data.frame(means, sds)
您可以围绕该代码包装您的函数,用参数替换硬值。