全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4822 15
2012-11-20

最近仿照混合模型写了一段代码:

logistInit <- function(mCall, LHS, data) {

     xy <- sortedXyData(mCall[["x"]], LHS, data)

     if(nrow(xy) <3) {

         stop("Too few distinct input values to fit a logistic")

     }

     a <- max(abs(xy[,"y"]))

     if (a != max(xy[,"y"])) a <- -a  # negative asymptote

     b <- NLSstClosestX(xy, 0.5 * a)

value <- c(a, b)

     names(value) <- mCall[c("a", "b")]

     value

}

logist <- selfStart(logist, initial = logistInit)

class(logist)

#[1] "selfStart"

logist <- selfStart(~ a*dbh^b,

   initial = logistInit, parameters = c("a", "b"))

getInitial(total ~ logist(dbh,a, b), riben)

运行到此时出现:

错误于tapply(y, x, mean, na.rm = TRUE) : 参数的长度必需一样

不知哪位高手可以致电一下,不胜感激

二维码

扫码加我 拉你入群

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

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

全部回复
2012-11-23 16:37:45
data=read.csv("sysfit_11.csv")

logistInit <- function(mCall, LHS, data) {
     xy <- sortedXyData(mCall[["x"]], LHS, data)
     if(nrow(xy) <3) {
         stop("Too few distinct input values to fit a logistic")
     }
     a <- max(abs(xy[,"y"]))
     if (a != max(xy[,"y"])) a <- -a  # negative asymptote
     b <- NLSstClosestX(xy, 0.5 * a)
     value <- c(a, b)
     names(value) <- mCall[c("a", "b")]
     value
}

logist <- selfStart(~ a*x^b,initial = logistInit, parameters = c("a", "b"))
getInitial(TOTAL ~ logist(DBH,a, b), data)

#        a         b
#833.11000  20.76035
二维码

扫码加我 拉你入群

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

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

2012-11-23 16:47:43
epoh 发表于 2012-11-23 16:37
data=read.csv("sysfit_11.csv")

logistInit
看懂了,谢谢,如何用R做贝叶斯先验估计的95%分位点值的帖子询问可以给指点一下吗?
二维码

扫码加我 拉你入群

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

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

2012-11-23 16:51:17
epoh 发表于 2012-11-23 16:37
data=read.csv("sysfit_11.csv")

logistInit
看懂了,谢谢
二维码

扫码加我 拉你入群

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

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

2012-11-23 23:04:42
epoh 发表于 2012-11-23 16:37
data=read.csv("sysfit_11.csv")

logistInit
epoh老师,您好!
   以上程序中LHS和DBH是什么意思?
二维码

扫码加我 拉你入群

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

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

2012-11-24 08:35:44
zhangtao 发表于 2012-11-23 23:04
epoh老师,您好!
   以上程序中LHS和DBH是什么意思?
LHS : left-hand side
      simple formula log(y1) ~ x1 + x2 | I(x1^2)
      which has a single response log(y1) on the LHS
      and two parts on the RHS, separated by |.

变量DBH,TOTAL都是楼主的数据
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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