get_elts_ab | R Documentation |
The R implementation to get the elements necessary for calculations for general a
and b
.
get_elts_ab(
hdx,
hpdx,
x,
a,
b,
setting,
centered = TRUE,
profiled_if_noncenter = TRUE,
scale = "",
diagonal_multiplier = 1
)
hdx |
A matrix, |
hpdx |
A matrix, |
x |
An |
a |
A number, must be strictly larger than |
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 |
profiled_if_noncenter |
A boolean, whether in the profiled setting ( |
scale |
A string indicating the scaling method. Returned without being checked or used in the function body. Default to |
diagonal_multiplier |
A number >= 1, the diagonal multiplier. |
Computes the \boldsymbol{\Gamma}
matrix and the \boldsymbol{g}
vector for generalized score matching.
Here, \boldsymbol{\Gamma}
is block-diagonal, and in the non-profiled non-centered setting, the j
-th block is composed of \boldsymbol{\Gamma}_{\mathbf{KK},j}
, \boldsymbol{\Gamma}_{\mathbf{K}\boldsymbol{\eta},j}
and its transpose, and finally \boldsymbol{\Gamma}_{\boldsymbol{\eta\eta},j}
. In the centered case, only \boldsymbol{\Gamma}_{\mathbf{KK},j}
is computed. In the profiled non-centered case,
\boldsymbol{\Gamma}_{j}\equiv\boldsymbol{\Gamma}_{\mathbf{KK},j}-\boldsymbol{\Gamma}_{\mathbf{K}\boldsymbol{\eta},j}\boldsymbol{\Gamma}_{\boldsymbol{\eta}\boldsymbol{\eta},j}^{-1}\boldsymbol{\Gamma}_{\mathbf{K}\boldsymbol{\eta}}^{\top}.
Similarly, in the non-profiled non-centered setting, \boldsymbol{g}
can be partitioned p
parts, each with a p
-vector \boldsymbol{g}_{\mathbf{K},j}
and a scalar g_{\boldsymbol{\eta},j}
. In the centered setting, only \boldsymbol{g}_{\mathbf{K},j}
is needed. In the profiled non-centered case,
\boldsymbol{g}_j\equiv\boldsymbol{g}_{\mathbf{K},j}-\boldsymbol{\Gamma}_{\mathbf{K}\boldsymbol{\eta},j}\boldsymbol{\Gamma}_{\boldsymbol{\eta\eta},j}^{-1}g_{\boldsymbol{\eta},j}.
The formulae for the pieces above are
\boldsymbol{\Gamma}_{\mathbf{KK},j}\equiv\frac{1}{n}\sum_{i=1}^nh\left(X_j^{(i)}\right){X_j^{(i)}}^{2a-2}{\boldsymbol{X}^{(i)}}^a{{\boldsymbol{X}^{(i)}}^a}^{\top},
\boldsymbol{\Gamma}_{\mathbf{K}\boldsymbol{\eta},j}\equiv-\frac{1}{n}\sum_{i=1}^nh\left(X_j^{(i)}\right){X_j^{(i)}}^{a+b-2}{\boldsymbol{X}^{(i)}}^a,
\boldsymbol{\Gamma}_{\boldsymbol{\eta\eta},j}\equiv\frac{1}{n}\sum_{i=1}^nh\left(X_j^{(i)}\right){X_j^{(i)}}^{2b-2},
\boldsymbol{g}_{\mathbf{K},j}\equiv\frac{1}{n}\sum_{i=1}^n\left(h'\left(X_j^{(i)}\right){X_j^{(i)}}^{a-1}+(a-1)h\left(X_j^{(i)}\right){X_j^{(i)}}^{a-2}\right){\boldsymbol{X}^{(i)}}^a+ah\left(X_j^{(i)}\right){X_j^{(i)}}^{2a-2}\boldsymbol{e}_{j,p},
\boldsymbol{g}_{\boldsymbol{\eta},j}\equiv\frac{1}{n}\sum_{i=1}^n-h'\left(X_j^{(i)}\right){X_j^{(i)}}^{b-1}-(b-1)h\left(X_j^{(i)}\right){X_j^{(i)}}^{b-2},
where \boldsymbol{e}_{j,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 t_1
and t_2
defined as
\boldsymbol{t}_1\equiv\boldsymbol{\Gamma}_{\boldsymbol{\eta\eta}}^{-1}\boldsymbol{g}_{\boldsymbol{\eta}},\quad\boldsymbol{t}_2\equiv\boldsymbol{\Gamma}_{\boldsymbol{\eta\eta}}^{-1}\boldsymbol{\Gamma}_{\mathbf{K}\boldsymbol{\eta}}^{\top},
so that \hat{\boldsymbol{\eta}}=\boldsymbol{t}_1-\boldsymbol{t}_2\mathrm{vec}(\hat{\mathbf{K}}).
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 |
setting |
The setting. Same as input. |
g_K |
The |
Gamma_K |
The |
g_eta |
Returned in the non-profiled non-centered setting. The |
Gamma_K_eta |
Returned in the non-profiled non-centered setting. The |
Gamma_eta |
Returned in the non-profiled non-centered setting. The |
t1 , t2 |
Returned in the profiled non-centered setting, where the |
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.