Learn R Programming

sirt (version 3.12-66)

sirt-utilities: Utility Functions in sirt

Description

Utility functions in sirt.

Usage

# bounds entries in a vector
bounds_parameters( pars, lower=NULL, upper=NULL)

# improper density function which always returns a value of 1 dimproper(x)

# generalized inverse of a symmetric function ginverse_sym(A, eps=1E-8) # hard thresholding function hard_thresholding(x, lambda) # soft thresholding function soft_thresholding(x, lambda)

# power function x^a, like in Cpp pow(x, a) # trace of a matrix tracemat(A)

#** matrix functions sirt_matrix2(x, nrow) # matrix() function with byrow=TRUE sirt_colMeans(x, na.rm=TRUE) sirt_colSDs(x, na.rm=TRUE) sirt_colMins(x, na.rm=TRUE) sirt_colMaxs(x, na.rm=TRUE) sirt_colMedians(x, na.rm=TRUE)

#* normalize vector to have sum of one sirt_sum_norm(x, na.rm=TRUE) #* discrete normal distribution sirt_dnorm_discrete(x, mean=0, sd=1, ...)

# plyr::rbind.fill implementation in sirt sirt_rbind_fill(x, y)

# Fisher-z transformation, see psych::fisherz sirt_fisherz(rho) # inverse Fisher-z transformation, see psych::fisherz2r sirt_antifisherz(z)

# smooth approximation of the absolute value function sirt_abs_smooth(x, deriv=0, eps=1e-4)

# permutations with replacement sirt_permutations(r,v) #-> is equivalent to gtools::permutations(n=length(v), r=D, v=v, repeats.allowed=TRUE)

# attach all elements in a list in a specified environment sirt_attach_list_elements(x, envir)

# switch between stats::optim and stats::nlminb sirt_optimizer(optimizer, par, fn, grad=NULL, method="L-BFGS-B", hessian=TRUE, control=list(), ...)

# print objects in a summary sirt_summary_print_objects(obji, from=NULL, to=NULL, digits=3, rownames_null=TRUE, grep_string=NULL) # print package version and R session sirt_summary_print_package_rsession(pack) # print package version sirt_summary_print_package(pack) # print R session sirt_summary_print_rsession() # print call sirt_summary_print_call(CALL)

# discrete inverse function sirt_rcpp_discrete_inverse(x0, y0, y)

Arguments

pars

Numeric vector

lower

Numeric vector

upper

Numeric vector

x

Numeric vector or a matrix or a list

eps

Numerical. Shrinkage parameter of eigenvalue in ginverse_sym

a

Numeric vector

lambda

Numeric value

A

Matrix

nrow

Integer

na.rm

Logical

mean

Numeric

sd

Numeric

y

Matrix

rho

Numeric

deriv

Integer indicating the order of derivative

z

Numeric

r

Integer

v

Vector

envir

Environment

optimizer

Can be one of the following optimizers: optim, nlminb, bobyqa (from the minqa packlage), Rvmmin (from the optimx package) or nloptr (from the nloptr package using the argument opts$algorithm="NLOPT_LD_MMA").

par

Initial parameter

fn

Function

grad

Gradient function

method

Optimization method

hessian

Logical

control

Control list for R optimizers

...

Further arguments to be passed

obji

Data frame

from

Integer

to

Integer

digits

Integer

rownames_null

Logical

grep_string

String

pack

Package name

CALL

Call statement

x0

Vector

y0

Vector

Examples

Run this code
#############################################################################
## EXAMPLE 1: Trace of a matrix
#############################################################################

set.seed(86)
A <- matrix( stats::runif(4), 2,2 )
tracemat(A)
sum(diag(A))    #=sirt::tracemat(A)

#############################################################################
## EXAMPLE 2: Power function
#############################################################################

x <- 2.3
a <- 1.7
pow(x=x,a=a)
x^a            #=sirt::pow(x,a)

#############################################################################
## EXAMPLE 3: Soft and hard thresholding function (e.g. in LASSO estimation)
#############################################################################

x <- seq(-2, 2, length=100)
y <- sirt::soft_thresholding( x, lambda=.5)
graphics::plot( x, y, type="l")

z <- sirt::hard_thresholding( x, lambda=.5)
graphics::lines( x, z, lty=2, col=2)

#############################################################################
## EXAMPLE 4: Bounds on parameters
#############################################################################

pars <- c(.721, .346)
bounds_parameters( pars=pars, lower=c(-Inf, .5), upper=c(Inf,1) )

#############################################################################
## EXAMPLE 5: Smooth approximation of absolute value function
#############################################################################

x <- seq(-1,1,len=100)
graphics::plot(x, abs(x), lwd=2, col=1, lty=1, type="l", ylim=c(-1,1) )
# smooth approximation
tt <- 2
graphics::lines(x, sirt::sirt_abs_smooth(x), lty=tt, col=tt, lwd=2)
# first derivative
tt <- 3
graphics::lines(x, sirt::sirt_abs_smooth(x, deriv=1), lty=tt, col=tt, lwd=2)
# second derivative
tt <- 4
graphics::lines(x, sirt::sirt_abs_smooth(x, deriv=2), lty=tt, col=tt, lwd=2)

# analytic computation of first and second derivative
stats::deriv( ~ sqrt(x^2 + eps), namevec="x", hessian=TRUE )

if (FALSE) {
#############################################################################
## EXAMPLE 6: Permutations with replacement
#############################################################################

D <- 4
v <- 0:1
sirt::sirt_permutations(r=D, v=v)
gtools::permutations(n=length(v), r=D, v=v, repeats.allowed=TRUE)
}

Run the code above in your browser using DataLab