| Type: | Package | 
| Title: | Perform AnchorRegression | 
| Version: | 0.1.3 | 
| Author: | Simon Zimmermann | 
| Maintainer: | Simon Zimmermann <zimmersi@hu-berlin.de> | 
| Description: | Performs AnchorRegression proposed by Rothenhäusler et al. 2020. The code is adapted from the original paper repository. (https://github.com/rothenhaeusler/anchor-regression) The code was developed independently from the authors of the paper. | 
| License: | MIT + file LICENSE | 
| URL: | https://github.com/simzim96/AnchorRegression | 
| BugReports: | https://github.com/simzim96/AnchorRegression/issues | 
| Depends: | R (≥ 2.0.0) | 
| Imports: | glmnet (≥ 1.4), selectiveInference (≥ 1.0.0), mgcv (≥ 1.0) | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.1.1 | 
| Suggests: | knitr, rmarkdown, testthat | 
| NeedsCompilation: | no | 
| Packaged: | 2021-01-05 17:37:17 UTC; simon | 
| Repository: | CRAN | 
| Date/Publication: | 2021-01-06 14:40:02 UTC | 
anchor_prediction
Description
Perform a prediction for an Anchor Regression model as described in Rothenhäusler et al.2020
Usage
anchor_prediction(anchor_model, x, anchor, gamma, target_variable)
Arguments
| anchor_model | is the Anchor Regression model object | 
| x | is a dataframe containing the matrix x containing the independent variables | 
| anchor | is a dataframe containing the matrix anchor containing the anchor variable | 
| gamma | is the regularization parameter for the Anchor Regression | 
| target_variable | is the target variable name contained in the x dataframe | 
Value
A list of predictions.
Examples
x <- as.data.frame(matrix(data = rnorm(100),nrow = 100,ncol = 10))
anchor <- as.data.frame(matrix(data = rnorm(200),nrow = 100,ncol = 2))
colnames(anchor) <- c('X1','X2')
gamma <- 2
target_variable <- 'V2'
anchor_model <- anchor_regression(x, anchor, gamma, target_variable)
anchor_prediction(anchor_model$model, x, anchor, gamma, target_variable)
anchor_prediction
Description
Perform a prediction for an Anchor Regression model as described in Rothenhäusler et al.2020
Usage
anchor_prediction_gam(
  anchor_model,
  x,
  anchor,
  gamma,
  target_variable,
  bin_factor
)
Arguments
| anchor_model | is the Anchor Regression model object | 
| x | is a dataframe containing the matrix x containing the independent variables | 
| anchor | is a dataframe containing the matrix anchor containing the anchor variable | 
| gamma | is the regularization parameter for the Anchor Regression | 
| target_variable | is the target variable name contained in the x dataframe | 
| bin_factor | binary variable that can be transformed to a factor to partial out effects | 
Value
A list of predictions.
Examples
x <- as.data.frame(matrix(data = rnorm(10000),nrow = 1000,ncol = 10))
x$bin <- sample(nrow(x),x = c(1,0),prob = c(0.5,0.5),replace = TRUE)
anchor <- as.data.frame(matrix(data = rnorm(2000),nrow = 1000,ncol = 2))
colnames(anchor) <- c('X1','X2')
gamma <- 2
target_variable <- 'V2'
anchor_model <- anchor_regression_gam(x, anchor, gamma, target_variable,"bin")
anchor_prediction_gam(anchor_model$model, x, anchor, gamma, target_variable,"bin")
anchor_regression
Description
Perform an Anchor Regression as described in Rothenhäusler et al.2020
Usage
anchor_regression(x, anchor, gamma, target_variable, lambda = "CV")
Arguments
| x | is a dataframe containing the matrix x containing the independent variables | 
| anchor | is a dataframe containing the matrix anchor containing the anchor variable | 
| gamma | is the regularization parameter for the Anchor Regression | 
| target_variable | is the target variable name contained in the x dataframe | 
| lambda | indicates the lambda that is used in the Anchor Regression. 'CV' is used if it should be estimated by cross validation on the full subset. | 
Value
A list with coefficient values and a list with the respective names overview_print. Additionally the transformed data as x and y plus the fixed lambda coefficient.
Examples
x <- as.data.frame(matrix(data = rnorm(1000),nrow = 100,ncol = 10))
anchor <- as.data.frame(matrix(data = rnorm(200),nrow = 100,ncol = 2))
colnames(anchor) <- c('X1','X2')
gamma <- 2
target_variable <- 'V2'
anchor_regression(x, anchor, gamma, target_variable)
anchor_regression_gam
Description
Perform an Generalized Additive Anchor Regression
Usage
anchor_regression_gam(x, anchor, gamma, target_variable, bin_factor = NULL)
Arguments
| x | is a dataframe containing the matrix x containing the independent variables | 
| anchor | is a dataframe containing the matrix anchor containing the anchor variable | 
| gamma | is the regularization parameter for the Anchor Regression | 
| target_variable | is the target variable name contained in the x dataframe | 
| bin_factor | binary variable that can be transformed to a factor to partial out effects | 
Value
A list with coefficient values and a list with the respective names overview_print. Additionally the transformed data as x and y plus the fixed lambda coefficient.
Examples
x <- as.data.frame(matrix(data = rnorm(10000),nrow = 1000,ncol = 10))
x$bin <- sample(nrow(x),x = c(1,0),prob = c(0.5,0.5),replace = TRUE)
anchor <- as.data.frame(matrix(data = rnorm(2000),nrow = 1000,ncol = 2))
colnames(anchor) <- c('X1','X2')
gamma <- 2
target_variable <- 'V2'
anchor_regression_gam(x, anchor, gamma, target_variable,bin_factor =  "bin")
anchor_stability
Description
Perform an Anchor Stability Analysis as described in Rothenhäusler et al.2020
Usage
anchor_stability(
  x,
  anchor,
  target_variable,
  lambda = 0,
  alpha = 0.05,
  p_procedure = "naive"
)
Arguments
| x | is a dataframe containing the matrix x containing the independent variables | 
| anchor | is a dataframe containing the matrix anchor containing the anchor variable | 
| target_variable | is the target variable name contained in the x dataframe | 
| lambda | indicates the lambda that is used in the Anchor Regression. 'CV' is used if it should be estimated by cross validation on the full subset. | 
| alpha | significance level for test decision on coefficient significance | 
| p_procedure | procedure to estimate stability. Option 1: naive - stable if effect is non-zero in all cases; Option 2: post-lasso - post selection inference using SelectiveInference package | 
Value
A dataframe containing the stability values for each coefficient
Examples
x <- as.data.frame(matrix(data = rnorm(1000),nrow = 100,ncol = 10))
anchor <- as.data.frame(matrix(data = rnorm(200),nrow = 100,ncol = 2))
colnames(anchor) <- c('X1','X2')
gamma <- 2
target_variable <- 'V2'
anchor_stability(x, anchor, target_variable, lambda, alpha=0.05, p_procedure = "naive")
weighted_anchor_regression
Description
Perform a prediction for a Weighted Anchor Regression model
Usage
weighted_anchor_prediction(names, coeff, x, anchor, gamma, target_variable)
Arguments
| names | list of variable names corresponding to the coefficients in coeff | 
| coeff | list of coefficients corresponding to the coefficients in names | 
| x | is a dataframe containing the matrix x containing the independent variables | 
| anchor | is a dataframe containing the matrix anchor containing the anchor variable | 
| gamma | is the regularization parameter for the Anchor Regression | 
| target_variable | is the target variable name contained in the x dataframe | 
Value
A list of predictions.
Examples
   # number of observed environments
   environments <- 10
   # populate list with generated data of x and anchor
   data_x_list <- c()
   data_anchor_list <- c()
   for(e in 1:environments){
     x <- as.data.frame(matrix(data = rnorm(100),nrow = 100,ncol = 10))
     anchor <- as.data.frame(matrix(data = rnorm(200),nrow = 100,ncol = 2))
     colnames(anchor) <- c('X1','X2')
     data_x_list[[e]] <- x
     data_anchor_list[[e]]  <- anchor
   }
   # estimate model
   gamma <- 2
   target_variable <- 'V2'
   weighted_anchor_model <- weighted_anchor_regression(data_x_list,
                                                       data_anchor_list,
                                                       gamma,
                                                       target_variable,
                                                       anchor_model_pre=NULL,
                                                       test_split=0.4,
                                                       lambda=0)
   weighted_anchor_prediction(weighted_anchor_model$names,
                              weighted_anchor_model$coeff,
                              x,
                              anchor,
                              gamma,
                              target_variable)
weighted_anchor_regression
Description
Estimates weighted Anchor Regression coefficients
Usage
weighted_anchor_regression(
  data_x_list,
  data_anchor_list,
  gamma,
  target_variable,
  anchor_model_pre = NULL,
  test_split = 0.4,
  lambda = 0
)
Arguments
| data_x_list | list containing coefficient dataframes for different environments | 
| data_anchor_list | list containing anchor dataframes for different environments | 
| gamma | is the regularization parameter for the Anchor Regression | 
| target_variable | is the target variable name contained in the x dataframe | 
| anchor_model_pre | is the pre estimated model for the Anchor Regression. In case of NULL a new model is estimated. | 
| test_split | is desired test/train split for the estimation | 
| lambda | penalization coefficient for Anchor Shrinkage. Initially set to 0. | 
Value
A list estimated coefficients with names, weights and the raw coefficient matrix
Examples
   environments <- 10 # number of observed environments
   # populate list with generated data of x and anchor
   data_x_list <- c()
   data_anchor_list <- c()
   for(e in 1:environments){
     x <- as.data.frame(matrix(data = rnorm(100),nrow = 100,ncol = 10))
     anchor <- as.data.frame(matrix(data = rnorm(200),nrow = 100,ncol = 2))
     colnames(anchor) <- c('X1','X2')
     data_x_list[[e]] <- x
     data_anchor_list[[e]]  <- anchor
   }
   # estimate model
   gamma <- 2
   target_variable <- 'V2'
   weighted_anchor_regression(data_x_list,
                              data_anchor_list,
                              gamma,
                              target_variable,
                              anchor_model_pre=NULL,
                              test_split=0.4,
                              lambda=0)