R中对数正态分布中Mu的置信区间

时间:2014-02-18 03:27:21

标签: r distribution confidence-interval mu

假设我们从具有参数mu和sigma的对数正态分布中得到大小为n = 8的随机样本。由于它是一个小样本,从非正常人群中我将使用t置信区间。我进行了模拟,以确定90%t-CI的真实(模拟)CI,其中mu = 1,sigma = 1.5

我的问题是我的代码遵循NORMAL分布,它需要是对数正态分布。 我知道rnorm必须变成rlnorm,以便随机变量来自日志分布。但我需要改变mu和sigma。正态分布中的Mu和sigma在日志分布中不相同。

对数分布中的Mu = exp(μ+ 1 /2σ^ 2)。 sigma是exp(2(μ+ sigma ^ 2)) - exp2(μ+ sigma ^ 2)

我只是对如何将这两个方程式合并到我的代码中感到困惑。

顺便说一下 - 如果你还没有猜到,我对R非常新。任何帮助都将不胜感激!


MC <- 10000 # Number of samples to simulate
result <- c(1:MC)
mu <- 1
sigma <- 1.5
n <- 8; # Sample size
alpha <- 0.1 # the nominal confidence level is 100(1-alpha) percent

    t_criticalValue <- qt(p=(1-alpha/2), df=(n-1))

    for(i in 1:MC){
    mySample <- rlnorm(n=n, mean=mu, sd=sigma)
    lowerCL <- mean(mySample)-t_criticalValue*sd(mySample)/sqrt(n)
    upperCL <- mean(mySample)+t_criticalValue*sd(mySample)/sqrt(n)
    result[i] <- ((lowerCL < mu) & (mu < upperCL))
    }

SimulatedConfidenceLevel <- mean(result)
编辑:所以我尝试用各自的公式替换mu和sd ......

(mu = exp(μ+ 1 /2σ2) Sigma = exp(2μ+σ2)(exp(σ2)-1)

我的模拟信心水平为5000.

1 个答案:

答案 0 :(得分:0)

这是一些可重复的样本数据:

(x <- rlnorm(8, 1, 1.5))
## [1]  3.5415832  0.3563604  0.5052436  3.5703968  7.3696985  0.7737094 12.9768734 35.9143985

您对关键值的定义是正确的:

n <- length(x)
alpha <- 0.1 
t_critical_value <- qt(1 - alpha / 2, n - 1)

ggplot2绘图包中有一个实用程序函数,用于计算均值和标准误差。在这种情况下,您可以将其应用于数据日志,以查找mu及其置信区间。

library(ggplot2)
mean_se(log(x), t_critical_value)    
##          y         ymin     ymax
## 1 1.088481 -0.006944755 2.183907