全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1662 7
2013-03-25
悬赏 20 个论坛币 已解决
急!求助!求这个函数的R语言代码
QQ截图20130327172432.jpg
以上变量均是已知的n维向量
QQ截图20130325104945.jpg

原图尺寸 15.55 KB

QQ截图20130325104945.jpg

最佳答案

IntheRed 查看完整内容

ok, it's yj, then i believe this should work: sample code: //Tvec=datat //delta=datadelta //yvec=datay //suppose your data are loaded in Tvec (for T), delta, and yvec (for y) compTij=function(ti,tj) { return(tj>=ti) } indTmat=sapply(Tvec, compTij, tj=Tvec) sumTy=function(tv,yv) { return(sum(tv*exp(yv))) } lsum=apply(indTmat,2,sumTy,yv=yvec) result=sum(delta*(yvec-log(lsum)))
二维码

扫码加我 拉你入群

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

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

全部回复
2013-3-25 10:59:23
ok, it's yj, then i believe this should work:

sample code:
//Tvec=datat
//delta=datadelta
//yvec=datay
//suppose your data are loaded in Tvec (for T), delta, and yvec (for y)

compTij=function(ti,tj) { return(tj>=ti) }
indTmat=sapply(Tvec, compTij, tj=Tvec)

sumTy=function(tv,yv) { return(sum(tv*exp(yv))) }
lsum=apply(indTmat,2,sumTy,yv=yvec)

result=sum(delta*(yvec-log(lsum)))
二维码

扫码加我 拉你入群

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

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

2013-3-26 23:14:23
没有高手吗?
二维码

扫码加我 拉你入群

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

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

2013-3-27 04:07:48
有必要用嵌套循环吗?R的vector,matrix操作非常方便,效率。直接用vector operation就好了。就是那个indicator function I(Tj>=Ti)稍微麻烦一点。

sample code:
//Tvec=datat
//delta=datadelta
//yvec=datay
//suppose your data are loaded in Tvec (for T), delta, and yvec (for y)

compTij=function(ti,tj) { return(sum(tj>=ti)) }
indTv=sapply(Tvec, compTij, tj=Tvec)

result=sum(delta*(yvec-log(indTv*exp(yvec))))

其实公式写为
sum_i deltai * [yi - log[exp(yi) sum_j I(Tj>=Ti)]]
会好一点。
二维码

扫码加我 拉你入群

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

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

2013-3-27 12:03:51
IntheRed 发表于 2013-3-27 04:07
有必要用嵌套循环吗?R的vector,matrix操作非常方便,效率。直接用vector operation就好了。就是那个indic ...
可以解释一下
return(sum(tj>=ti))
indTv=sapply(Tvec, compTij, tj=Tvec)
这两个的意思吗?
运算出来的结果和我手算的结果不符。
二维码

扫码加我 拉你入群

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

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

2013-3-27 12:14:32
F→i_d^0^猪 发表于 2013-3-27 12:03
可以解释一下
return(sum(tj>=ti))
indTv=sapply(Tvec, compTij, tj=Tvec)
tested in R, looks ok. assume
I(Tj>=Ti)=1  if Tj>=Ti
              =0  otherwise

你的公式有点奇怪,最后一项到底是 exp(yi), 还是exp(yj)?
yi 的话,为什么不放在对j求和之外?yj要换个方法算。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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