找回密码
 注册
查看: 290|回复: 0

R语言 rstiefel包 rbing.Op()函数中文帮助文档(中英文对照)

[复制链接]
发表于 2012-9-28 22:23:13 | 显示全部楼层 |阅读模式
rbing.Op(rstiefel)
rbing.Op()所属R语言包:rstiefel

                                         Simulate a p*p Orthogonal Random Matrix
                                         模拟一个P * P正交随机矩阵。

                                         译者:生物统计家园网 机器人LoveR

描述----------Description----------

Simulate a p*p random orthogonal matrix from the Bingham distribution using a rejection sampler.
模拟p*p随机正交矩阵从宾汉分布的拒绝取样器。


用法----------Usage----------


rbing.Op(A, B)



参数----------Arguments----------

参数:A
a symmetric matrix.  
一个对称矩阵。


参数:B
a diagonal matrix with decreasing entries.  
下降条目的对角矩阵。


值----------Value----------

A random pxp orthogonal matrix simulated from the Bingham distribution.
随机PXP正交矩阵从宾汉分布模拟。


注意----------Note----------

This only works for small matrices, otherwise the sampler
这仅适用于小矩阵,否则采样


(作者)----------Author(s)----------



Peter Hoff




参考文献----------References----------



实例----------Examples----------


Z<-matrix(rnorm(10*5),10,5) ; A<-t(Z)%*%Z
B<-diag(sort(rexp(5),decreasing=TRUE))
U<-rbing.Op(A,B)
U<-rbing.matrix.gibbs(A,B,U)


## The function is currently defined as[#功能目前被定义为]
function (A, B)
{
    b <- diag(B)
    bmx <- max(b)
    bmn <- min(b)
    if(bmx>bmn)
    {
    A <- A * (bmx - bmn)
    b <- (b - bmn)/(bmx - bmn)
    vlA <- eigen(A)$val
    diag(A) <- diag(A) - vlA[1]
    vlA <- eigen(A)$val
    nu <- max(dim(A)[1] + 1, round(-vlA[length(vlA)]))
    del <- nu/2
    M <- solve(diag(del, nrow = dim(A)[1]) - A)/2
    rej <- TRUE
    cholM <- chol(M)
    nrej <- 0
    while (rej) {
        Z <- matrix(rnorm(nu * dim(M)[1]), nrow = nu, ncol = dim(M)[1])
        Y <- Z %*% cholM
        tmp <- eigen(t(Y) %*% Y)
        U <- tmp$vec %*% diag((-1)^rbinom(dim(A)[1], 1, 0.5))
        L <- diag(tmp$val)
        D <- diag(b) - L
        lrr <- sum(diag((D %*% t(U) %*% A %*% U))) - sum(-sort(diag(-D)) *
            vlA)
        rej <- (log(runif(1)) > lrr)
        nrej <- nrej + 1
    }
    }
    if(bmx==bmn) { U<-rustiefel(dim(A)[1],dim(A)[1]) }
    U
  }

转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。


注:
注1:为了方便大家学习,本文档为生物统计家园网机器人LoveR翻译而成,仅供个人R语言学习参考使用,生物统计家园保留版权。
注2:由于是机器人自动翻译,难免有不准确之处,使用时仔细对照中、英文内容进行反复理解,可以帮助R语言的学习。
注3:如遇到不准确之处,请在本贴的后面进行回帖,我们会逐渐进行修订。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-27 22:38 , Processed in 0.021743 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表