Learn R Programming

kbal (version 0.1.2)

makeK: Build the Gaussian Kernel Matrix

Description

Builds the Gaussian kernel matrix using Rcpp.

Usage

makeK(allx, useasbases = NULL, b = NULL, linkernel = FALSE, scale = TRUE)

Value

K

The kernel matrix

Arguments

allx

a data matrix containing all observations where rows are units and columns are covariates.

useasbases

a binary vector with length equal to the number of observations (rows in allx) to specify which bases to use when constructing the kernel matrix (columns of \(K\)). If not specified, the default is to use all observations.

b

Scaling factor in the calculation of Gaussian kernel distance equivalent to the entire denominator \(2\sigma^2\) of the exponent. Default is twice the number of covariates or columns in allx.

linkernel

a logical value indicating whether to use a linear kernel, \(K=XX'\), which in practice employs \(K=X\). Default is FALSE.

scale

a logical value indicating whether to standardize allx (demeaned with sd=1) before constructing the kernel matrix. Default is TRUE.

Examples

Run this code
#load and clean data a bit
# \donttest{
set.seed(123)
data("lalonde")
# Select a random subset of 500 rows
lalonde_sample <- sample(1:nrow(lalonde), 500, replace = FALSE)
lalonde <- lalonde[lalonde_sample, ]

xvars <- c("age","black","educ","hisp","married","re74","re75","nodegr","u74","u75")

#note that lalonde$nsw is the treatment vector, so the observed is 1-lalonde$nsw
#running makeK with the sampled/control units as the bases given 
#the large size of the data
K <- makeK(allx = lalonde[,xvars], useasbases = 1-lalonde$nsw) 
# }

Run the code above in your browser using DataLab