estimate_matches: Run lasso estimation on the prepared matrixes

Description Usage Arguments Value Examples

Description

Run lasso estimation on the prepared matrixes

Usage

1
2
estimate_matches(x_mat, y_mat, w_mat, x1_mat, n_near = 5,
  reduced = TRUE, n_folds = 10)

Arguments

x_mat, y_mat, w_mat

matrixes of independent, dependent variables and weights

x1_mat

matrixes of independent variables for the prediction sample

n_near

number of the nearest observations to derive a random match. If 'n_near' is greater than 'length(match_vector)', minimum out of two is used to create a sample for selecting a random match value.

reduced

if TRUE terurns reduced outpur without specific regression details.

n_folds

number of folds for cross-validation

Value

In both reduced=TRUE and reduced=FALSE forms, the function returns a list with elements. In the form reduced=TRUE only results of matching are returned:

In the not reduced form the list contains more elements:

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
library(dplyr)
library(purrr)
library(glmnet)
library(syntheticpanel)

# Run estimate of a fake data
XX <- as.matrix(mtcars[, !names(mtcars) %in% "hp"])
YY <- as.matrix(mtcars[, "hp"])
WW <- matrix(rep(1, nrow(mtcars)), ncol = 1, nrow = nrow(mtcars))
XX1 <- as.matrix(mtcars[1:10, !names(mtcars) %in% "hp"])

# Running simple estimation and returning
a <- estimate_matches(x_mat = XX, y_mat = YY, w_mat = WW, x1_mat = XX1, reduced = FALSE, n_near = 5)

# Extract regression coefficients
a$fit %>% coef()
str(a, max.level = 1)

# Developing a sample bootsrtap vector
perm_example <- purrr::map(1:5, ~ sample(1:nrow(YY), nrow(YY), TRUE))

# Running estimations on every single bootstrap permutation vector
a_boot <-
  perm_example %>%
  purrr::map(~ syntheticpanel::estimate_matches(
    x_mat = XX[.x, ],
    y_mat = YY[.x, ],
    w_mat = WW[.x, ],
    x1_mat = XX1,
    reduced = FALSE,
    n_near = 5
  ))

# Exploring the structure
a_boot %>%
  str(max.level = 1)

# Accesssing fit of a specific bootstrap iteration
a_boot[[3]]$fit

# Doing the same with each single bootstrap iteration
a_boot %>%
  map("fit")

# Extracting coefficinets from each single bootstrap iteration
a_boot %>%
  map("fit") %>%
  map(coefficients)

# Combine all coefficients in a table
a_boot %>%
  map("fit") %>%
  map(broom::tidy) %>%
  map(~ select(.x, term, estimate)) %>%
  map2(.y = 1:length(.), ~ rename_at(.x, vars(estimate), list(~ paste0(., "_", .y)))) %>%
  reduce(full_join)

EBukin/syntheticpanel documentation built on May 9, 2019, 12:02 a.m.