Learn R Programming

causalOT (version 1.0.3)

Measure: Measure

Description

Constructor for an R6 Measure object.

Usage

Measure(
  x,
  weights = NULL,
  probability.measure = TRUE,
  adapt = c("none", "weights", "x"),
  balance.functions = NA_real_,
  target.values = NA_real_,
  dtype = NULL,
  device = NULL
)

Value

Returns a Measure object

Arguments

x

The data points

weights

The empirical measure. If NULL, assigns equal weight to each observation

probability.measure

Is the empirical measure a probability measure? Default is TRUE.

adapt

Should we try to adapt the data ("x"), the weights ("weights"), or neither ("none"). Default is "none".

balance.functions

A matrix of functions of the covariates to target for mean balance. If NULL and target.values are provided, will use the data in x.

target.values

The targets for the balance functions. Should be the same length as columns in balance.functions.

dtype

The torch_tensor dtype or NULL.

device

The device to have the data on. Should be result of torch::torch_device() or NULL.

Public fields

balance_functions

the functions of the data that we want to adjust towards the targets

balance_target

the values the balance_functions are targeting

adapt

What aspect of the data will be adapted. One of "none","weights", or "x".

device

the torch::torch_device() of the data.

dtype

the torch::torch_dtype of the data.

n

the rows of the covariates, x.

d

the columns of the covariates, x.

probability_measure

is the measure a probability measure?

Active bindings

grad

gets or sets gradient

init_weights

returns the initial value of the weights

init_data

returns the initial value of the data

requires_grad

checks or turns on/off gradient

weights

gets or sets weights

x

Gets or sets the data.

Methods


Method detach()

generates a deep clone of the object without gradients.

Usage

Measure$detach()


Method get_weight_parameters()

Makes a copy of the weights parameters. prints the measure object

Usage

Measure$get_weight_parameters()


Method print()

Usage

Measure$print(...)

Arguments

...

Not used Constructor function


Method new()

Usage

Measure$new(
  x,
  weights = NULL,
  probability.measure = TRUE,
  adapt = c("none", "weights", "x"),
  balance.functions = NA_real_,
  target.values = NA_real_,
  dtype = NULL,
  device = NULL
)

Arguments

x

The data points

weights

The empirical measure. If NULL, assigns equal weight to each observation

probability.measure

Is the empirical measure a probability measure? Default is TRUE.

adapt

Should we try to adapt the data ("x"), the weights ("weights"), or neither ("none"). Default is "none".

balance.functions

A matrix of functions of the covariates to target for mean balance. If NULL and target.values are provided, will use the data in x.

target.values

The targets for the balance functions. Should be the same length as columns in balance.functions.

dtype

The torch::torch_dtype or NULL.

device

The device to have the data on. Should be result of torch::torch_device() or NULL.


Method clone()

The objects of this class are cloneable with this method.

Usage

Measure$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Details

An R6 class for representing empirical measures (data + weights) with optional gradient-based adaptation via torch.

Use Measure() to construct a measure. The returned object supports active bindings like $weights and $x, and methods like $detach(). See below for defined methods and fields.

Examples

Run this code
if(torch::torch_is_installed()) {
m <- Measure(x = matrix(0, 10, 2), adapt = "none")
print(m)
m$x
m$x <- matrix(1,10,2) # must have same dimensions
m$x
m$weights
m$weights <- 1:10/sum(1:10)
m$weights

# with gradients
m <- Measure(x = matrix(0, 10, 2), adapt = "weights")
m$requires_grad # TRUE
m$requires_grad <- "none" # turns off
m$requires_grad # FALSE
m$requires_grad <- "x"
m$requires_grad # TRUE
m <- Measure(matrix(0, 10, 2), adapt = "none")
m$grad # NULL
m <- Measure(matrix(0, 10, 2), adapt = "weights")
loss <- sum(m$weights * 1:10)
loss$backward()
m$grad
# note the weights gradient is on the log softmax scale
#and the first parameter is fixed for identifiability
m$grad <- rep(1,9)  
m$grad
}

Run the code above in your browser using DataLab