estimate_s_rss: Estimate s in 'susie_rss' Model Using Regularized LD

Description Usage Arguments Value Examples

Description

The estimated s gives information about the consistency between the z scores and LD matrix. A larger s means there is a strong inconsistency between z scores and LD matrix. The “null-mle” method obtains mle of s under z | R ~ N(0,(1-s)R + s I), 0 < s < 1. The “null-partialmle” method obtains mle of s under U^T z | R ~ N(0,s I), in which U is a matrix containing the of eigenvectors that span the null space of R; that is, the eigenvectors corresponding to zero eigenvalues of R. The estimated s from “null-partialmle” could be greater than 1. The “null-pseudomle” method obtains mle of s under pseudolikelihood L(s) = ∏_{j=1}^{p} p(z_j | z_{-j}, s, R), 0 < s < 1.

Usage

1
estimate_s_rss(z, R, r_tol = 1e-08, method = "null-mle")

Arguments

z

A p-vector of z scores.

R

A p by p symmetric, positive semidefinite correlation matrix.

r_tol

Tolerance level for eigenvalue check of positive semidefinite matrix of R.

method

a string specifies the method to estimate s.

Value

A number between 0 and 1.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
set.seed(1)
n = 500
p = 1000
beta = rep(0,p)
beta[1:4] = 0.01
X = matrix(rnorm(n*p),nrow = n,ncol = p)
X = scale(X,center = TRUE,scale = TRUE)
y = drop(X %*% beta + rnorm(n))
input_ss = compute_suff_stat(X,y,standardize = TRUE)
ss = univariate_regression(X,y)
R = cor(X)
attr(R,"eigen") = eigen(R, symmetric = TRUE)
zhat = with(ss,betahat/sebetahat)
s = estimate_s_rss(zhat, R)

susieR documentation built on Nov. 12, 2021, 5:07 p.m.