# Regression - Save Variable(s) - Propensity Weight

Creates a new variable containing the Propensity Weights for each case in the data from a model that is a binary classifier (e.g., a Machine Learning or Regression model that has an outcome variable with only two categories such as a Binary Logit regression).

## Technical details

Assume the outcome variable [math]\displaystyle{ Y }[/math] is an ordinal or nominal variable that has two categories (classes) labelled 0 and 1, with 1 being the label for the positive class. The propensity score is calculated based off the estimated probabilities of being in the positive class [math]\displaystyle{ \widehat{p}(x) = P(Y = 1 |X = x) }[/math] where [math]\displaystyle{ X }[/math] denotes all the predictor variables used in the Regression or Machine Learning model and [math]\displaystyle{ x }[/math] being the observed predictors for each case. Then the propensity weight is calculated based off the observed category each case belongs to in the outcome variable. Cases with [math]\displaystyle{ Y = 1 }[/math] are allocated a weight of [math]\displaystyle{ 1/\widehat{p}(x) }[/math] while cases with [math]\displaystyle{ Y = 0 }[/math] are allocated a weight of [math]\displaystyle{ 1/(1 - \widehat{p}(x)) }[/math].

## How to apply this QScript

- Start typing the name of the QScript into the
**Search features and data**box in the top right of the Q window. - Click on the QScript when it appears in the
**QScripts and Rules**section of the search results.

*OR*

- Select
**Automate > Browse Online Library**. - Select this QScript from the list.

## Customizing the QScript

This QScript is written in JavaScript and can be customized by copying and modifying the JavaScript.

### Customizing QScripts in Q4.11 and more recent versions

- Start typing the name of the QScript into the
**Search features and data**box in the top right of the Q window. - Hover your mouse over the QScript when it appears in the
**QScripts and Rules**section of the search results. - Press
**Edit a Copy**(bottom-left corner of the preview). - Modify the JavaScript (see QScripts for more detail on this).
- Either:
- Run the QScript, by pressing the blue triangle button.
- Save the QScript and run it at a later time, using
**Automate > Run QScript (Macro) from File**.

### Customizing QScripts in older versions

## JavaScript

```
includeWeb('QScript R Output Functions');
let required_input_type = 'Binary Classification model (Logistic regression or Machine Learning ' +
'classification model with a binary outcome variable)';
let question_type = 'Number';
let is_weight = true;
let variable_name = 'propensity.weight';
let allowed_r_classes = ['BinaryLogitRegression', 'MultinomialLogitRegression', 'DeepLearning',
'SupportVectorMachine', 'GradientBoost', 'LDA', 'CART'];
saveVariables('Propensity weights', required_input_type, 'PropensityWeights(', ')',
question_type, is_weight, variable_name, allowed_r_classes);
```

## See also

- QScript for more general information about QScripts.
- QScript Examples Library for other examples.
- Online JavaScript Libraries for the libraries of functions that can be used when writing QScripts.
- QScript Reference for information about how QScript can manipulate the different elements of a project.
- JavaScript for information about the JavaScript programming language.
- Table JavaScript and Plot JavaScript for tools for using JavaScript to modify the appearance of tables and charts.

Displayr - Regression

Extensions

Q Technical Reference

Q Technical Reference

Q Technical Reference > Multivariate Statistics

Q Technical Reference > Setting Up Data > Creating New Variables

Q Technical Reference > Updating and Automation > Automation Online Library

Q Technical Reference > Updating and Automation > JavaScript > QScript > QScript Examples Library > QScript Online Library

R Online Library

User Interface > Create Regression

User Interface > Regression