全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2331 6
2012-04-14
想画一个gamma分布的极大似然值的3D图,

x <- rgamma(100,shape=3,scale=10)
sh<-sc <-seq(1,15)
like <- function(shx,scx) -sum(dgamma(x,shape=shx,scale=scx,log=T)) #外积函数,极大似然值
zz<-outer(sh,sc,like) #到这一步就不行了

persp(sh,sc,zz,theta=30,phi=15)


重新写了一段,可以运行
x <- rgamma(100,shape=3,scale=10)
sh<-sc <-seq(1,15,0.1)
zz <-matrix(rep(0,141*141),ncol=141)
#like <- function(shx,scx) sum(dgamma(x,shape=shx,scale=scx,log=T))
for (i in sh){
  for ( j in sc)
    zz[i,j]=sum(dgamma(x,shape=i,scale=j,log=T))

}

#zz<-outer(sh,sc)

persp(sh,sc,zz,theta=30,phi=30,expand=0.7,col="lightblue")

二维码

扫码加我 拉你入群

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

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

全部回复
2012-4-14 21:38:00
你自己已经搞定了,是吧?
二维码

扫码加我 拉你入群

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

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

2012-4-14 21:39:15
没有,上面那段程序不行
二维码

扫码加我 拉你入群

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

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

2012-4-14 22:36:41
在zz的上面加上
like <- Vectorize(like)
二维码

扫码加我 拉你入群

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

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

2012-4-15 08:33:12
谢谢啦,我想再问一下,为什么下面这段程序能运行:

#做3D图

x <- y <- seq(-2*pi,2*pi,pi/15)
f <- function(x,y) sin(x)*sin(y)
z <- outer(x,y,f)
persp(x,y,z,theta=0,phi=30,expand=0.7,col="lightblue")

Vectorize到底起什么作用?
二维码

扫码加我 拉你入群

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

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

2012-4-15 22:18:46
firelife 发表于 2012-4-15 08:33
谢谢啦,我想再问一下,为什么下面这段程序能运行:

#做3D图
因为sin已经是Vectorize过的函数了
比如sin(1:100)会得到100个结果

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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