全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3178 1
2015-01-28
最大似然估计,此处有500 sets of data, size n=100,用了如下的代码。


library(stats4)
muhat <- NULL
sigmahat <- NULL
mu <- 2
sigma <- 2
k <- 500
n <- 100

# Calculate alpha and beta for k times (do k times simulation, each with n data points)
for (j in 1:k) {
        y <- rnorm(n, mu, sigma) # True value and sample size
        # MOM estimates
        mu.mom <- mean(y)
        sigma.mom <- (var(y))^0.5
        # Negative loglikelihood function (to be minimised)
        nloglike <- function(mu, sigma) {
                llikei <- suppressWarnings(dnorm(y, mu, sigma))
                -sum(log(llikei))
        }
        # Output
        normal.mle <- mle(nloglike, start = list(mu = mu.mom,
                                                 sigma = sigma.mom))
        muhat[j] <- coef(normal.mle)[[1]]
        sigmahat[j] <- coef(normal.mle)[[2]]
}

如果需要用不同的样本量和数据个数做多次模拟,比如样本量为n <- c(20, 30, ... , 100),数据个数k <- c(100, 200, 500),该怎么修改?谢谢

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-1-28 09:17:42
将计算封装进一个function,然后可以多次调用(使用不同参数)。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群