get_elts_ab {genscore} | R Documentation |
The R implementation to get the elements necessary for calculations for general a and b.
Description
The R implementation to get the elements necessary for calculations for general a
and b
.
Usage
get_elts_ab(
hdx,
hpdx,
x,
a,
b,
setting,
centered = TRUE,
profiled_if_noncenter = TRUE,
scale = "",
diagonal_multiplier = 1
)
Arguments
hdx |
A matrix, h(x) applied to the distance of x from the boundary of the domain, should be of the same dimension as x .
|
hpdx |
A matrix, h′(x) applied to the distance of x from the boundary of the domain, should be of the same dimension as x .
|
x |
An n by p matrix, the data matrix, where n is the sample size and p the dimension.
|
a |
A number, must be strictly larger than b/2 .
|
b |
A number, must be >= 0.
|
setting |
A string that indicates the distribution type. Returned without being checked or used in the function body.
|
centered |
A boolean, whether in the centered setting (assume μ=η=0 ) or not. Default to TRUE .
|
profiled_if_noncenter |
A boolean, whether in the profiled setting (λη=0 ) if non-centered. Parameter ignored if centered=TRUE . Default to TRUE .
|
scale |
A string indicating the scaling method. Returned without being checked or used in the function body. Default to "norm" .
|
diagonal_multiplier |
A number >= 1, the diagonal multiplier.
|
Details
Computes the Γ
matrix and the g
vector for generalized score matching.
Here, Γ
is block-diagonal, and in the non-profiled non-centered setting, the j
-th block is composed of ΓKK,j
, ΓKη,j
and its transpose, and finally Γηη,j
. In the centered case, only ΓKK,j
is computed. In the profiled non-centered case,
Γj≡ΓKK,j−ΓKη,jΓηη,j−1ΓKη⊤.
Similarly, in the non-profiled non-centered setting, g
can be partitioned p
parts, each with a p
-vector gK,j
and a scalar gη,j
. In the centered setting, only gK,j
is needed. In the profiled non-centered case,
gj≡gK,j−ΓKη,jΓηη,j−1gη,j.
The formulae for the pieces above are
ΓKK,j≡n1∑i=1nh(Xj(i))Xj(i)2a−2X(i)aX(i)a⊤,
ΓKη,j≡−n1∑i=1nh(Xj(i))Xj(i)a+b−2X(i)a,
Γηη,j≡n1∑i=1nh(Xj(i))Xj(i)2b−2,
gK,j≡n1∑i=1n(h′(Xj(i))Xj(i)a−1+(a−1)h(Xj(i))Xj(i)a−2)X(i)a+ah(Xj(i))Xj(i)2a−2ej,p,
gη,j≡n1∑i=1n−h′(Xj(i))Xj(i)b−1−(b−1)h(Xj(i))Xj(i)b−2,
where ej,p
is the p
-vector with 1 at the j
-th position and 0 elsewhere.
In the profiled non-centered setting, the function also returns t1
and t2
defined as
t1≡Γηη−1gη,t2≡Γηη−1ΓKη⊤,
so that η^=t1−t2vec(K^).
Value
A list that contains the elements necessary for estimation.
n |
The sample size.
|
p |
The dimension.
|
centered |
The centered setting or not. Same as input.
|
scale |
The scaling method. Same as input.
|
diagonal_multiplier |
The diagonal multiplier. Same as input.
|
diagonals_with_multiplier |
A vector that contains the diagonal entries of Γ after applying the multiplier.
|
setting |
The setting. Same as input.
|
g_K |
The g vector. In the non-profiled non-centered setting, this is the g sub-vector corresponding to K .
|
Gamma_K |
The Γ matrix with no diagonal multiplier. In the non-profiled non-centered setting, this is the Γ sub-matrix corresponding to K .
|
g_eta |
Returned in the non-profiled non-centered setting. The g sub-vector corresponding to η .
|
Gamma_K_eta |
Returned in the non-profiled non-centered setting. The Γ sub-matrix corresponding to interaction between K and η .
|
Gamma_eta |
Returned in the non-profiled non-centered setting. The Γ sub-matrix corresponding to η .
|
t1 , t2 |
Returned in the profiled non-centered setting, where the η estimate can be retrieved from t1−t2K^ after appropriate resizing.
|
Examples
n <- 50
p <- 30
eta <- rep(0, p)
K <- diag(p)
domain <- make_domain("R+", p=p)
x <- gen(n, setting="ab_1/2_7/10", abs=FALSE, eta=eta, K=K, domain=domain, finite_infinity=100,
xinit=NULL, seed=2, burn_in=1000, thinning=100, verbose=FALSE)
h_hp <- get_h_hp("min_pow", 1.5, 3)
h_hp_dx <- h_of_dist(h_hp, x, domain) # h and h' applied to distance from x to boundary
elts <- get_elts_ab(h_hp_dx$hdx, h_hp_dx$hpdx, x, a=0.5, b=0.7, setting="ab_1/2_7/10",
centered=TRUE, scale="norm", diag=1.5)
elts <- get_elts_ab(h_hp_dx$hdx, h_hp_dx$hpdx, x, a=0.5, b=0.7, setting="ab_1/2_7/10",
centered=FALSE, profiled_if_noncenter=TRUE, scale="norm", diag=1.7)
elts <- get_elts_ab(h_hp_dx$hdx, h_hp_dx$hpdx, x, a=0.5, b=0.7, setting="ab_1/2_7/10",
centered=FALSE, profiled_if_noncenter=FALSE, scale="norm", diag=1.9)
[Package
genscore version 1.0.2.2
Index]