全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
10196 10
2016-03-08
该怎么解决呢?用加上什么参数限制吗?
附件列表
~75@)K{4([)`3NH%LXNT{YF.png

原图尺寸 62.06 KB

~75@)K{4([)`3NH%LXNT{YF.png

二维码

扫码加我 拉你入群

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

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

全部回复
2016-3-8 18:49:12
时间是一个疯子 发表于 2016-3-8 18:39
该怎么解决呢?用加上什么参数限制吗?
是否有无效数据?nan表示求根时出现了无效的数或者是负数。
二维码

扫码加我 拉你入群

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

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

2016-3-8 19:00:09
lowbrow 发表于 2016-3-8 18:49
是否有无效数据?nan表示求根时出现了无效的数或者是负数。
我把代码发给你看下。
lmdata <- function(n, theta){
  
  sigma <- sqrt(theta[length(theta)])
  bet <- theta[-length(theta)]
  
  x <- runif(n, -2, 2)  #  covariates
  e <- rnorm(n, 0, sigma)  # random error
  
  ## including intercept
  y <- as.vector(cbind(1, x) %*% bet) + e
  
  dat <- cbind(y, x)
  return(dat)
}   这个函数是为了产生随机数

下面是产生似然函数。
likfun <- function(dat, theta){
  y <- dat[, 1]
  x <- dat[, -1]
  sigma2 <- theta[length(theta)]
  bet <- theta[-length(theta)]
  xb <- as.vector(cbind(1, x) %*% bet)
  lik <- sum(log(1/sqrt(2 * pi * sigma2) *exp(-(y-xb)^2/(2*sigma2))))
  return(lik)
}


mleFun <- function(dat, theta){
  
  theta.ini <- c(0, 0, 1)
  fit <- optim(
    par = theta.ini,
    fn = function(theta){-likfun(dat, theta)},
    method = "BFGS"
  )
  
  theta.est <- fit$par
  
}
n <- 200
theta0 <- c(1, 2, 1^2)  假定三个待估参数分别为斜率,截距以及误差项的方差。
dat=lmdata(n,theta0)
mleFun(dat,theta0)

二维码

扫码加我 拉你入群

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

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

2016-3-8 19:01:10
lowbrow 发表于 2016-3-8 18:49
是否有无效数据?nan表示求根时出现了无效的数或者是负数。
然后就出现了那个结果,搞不懂,,,好像也没什么错误。
二维码

扫码加我 拉你入群

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

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

2016-3-8 19:15:31
可以在Rstudio中逐句执行。
二维码

扫码加我 拉你入群

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

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

2016-3-8 19:18:39
lowbrow 发表于 2016-3-8 19:15
可以在Rstudio中逐句执行。
在Rstudio中也是如此,,,好无语。。。
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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