rbing.O2(rstiefel)
rbing.O2()所属R语言包:rstiefel
Simulate a 2*2 Orthogonal Random Matrix
模拟一个2 * 2的正交随机矩阵。
译者:生物统计家园网 机器人LoveR
描述----------Description----------
Simulate a 2*2 random orthogonal matrix from the Bingham distribution using a rejection sampler.
模拟一个2 * 2随机正交矩阵从宾汉分布的拒绝采样。
用法----------Usage----------
rbing.O2(A, B, a = NULL, E = NULL)
参数----------Arguments----------
参数:A
a symmetric matrix.
一个对称矩阵。
参数:B
a diagonal matrix with decreasing entries.
下降条目的对角矩阵。
参数:a
sum of the eigenvalues of A, multiplied by the difference in B-values.
A的特征值的总和,乘以在B值的差。
参数:E
eigenvectors of A.
特征向量A.
值----------Value----------
A random 2x2 orthogonal matrix simulated from the Bingham distribution.
随机2x2的正交矩阵从宾汉分布模拟。
(作者)----------Author(s)----------
Peter Hoff
参考文献----------References----------
实例----------Examples----------
## The function is currently defined as[#功能目前被定义为]
function (A, B, a = NULL, E = NULL)
{
if (is.null(a)) {
trA <- A[1, 1] + A[2, 2]
lA <- 2 * sqrt(trA^2/4 - A[1, 1] * A[2, 2] + A[1, 2]^2)
a <- lA * (B[1, 1] - B[2, 2])
E <- diag(2)
if (A[1, 2] != 0) {
E <- cbind(c(0.5 * (trA + lA) - A[2, 2], A[1, 2]),
c(0.5 * (trA - lA) - A[2, 2], A[1, 2]))
E[, 1] <- E[, 1]/sqrt(sum(E[, 1]^2))
E[, 2] <- E[, 2]/sqrt(sum(E[, 2]^2))
}
}
b <- min(1/a^2, 0.5)
beta <- 0.5 - b
lrmx <- a
if (beta > 0) {
lrmx <- lrmx + beta * (log(beta/a) - 1)
}
lr <- -Inf
while (lr < log(runif(1))) {
w <- rbeta(1, 0.5, b)
lr <- a * w + beta * log(1 - w) - lrmx
}
u <- c(sqrt(w), sqrt(1 - w)) * (-1)^rbinom(2, 1, 0.5)
x1 <- E %*% u
x2 <- (x1[2:1] * c(-1, 1) * (-1)^rbinom(1, 1, 0.5))
cbind(x1, x2)
}
转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。
注:
注1:为了方便大家学习,本文档为生物统计家园网机器人LoveR翻译而成,仅供个人R语言学习参考使用,生物统计家园保留版权。
注2:由于是机器人自动翻译,难免有不准确之处,使用时仔细对照中、英文内容进行反复理解,可以帮助R语言的学习。
注3:如遇到不准确之处,请在本贴的后面进行回帖,我们会逐渐进行修订。
|