Remove extreme weights from the long data.frame generated by generate_ccw() to avoid influential observations. Uses stats::quantile().

winsorize_ccw_weights(df, quantiles = c(0.01, 0.99), per_clone = FALSE)

Arguments

df

A data.frame with one row per clone per observation period that contains weights for each patient-period as returned by generate_ccw()

quantiles

A vector of two values between 0 and 1 that define the lower and upper quantiles to use for winsorization. Default is c(0.01, 0.99).

per_clone

Boolean indicating whether to winsorize the weights according to quantiles per clone (TRUE) or across all clones (FALSE). Default is FALSE. Weights get winsorized for all patient-periods in both cases.

Value

The same data.frame with weights winsorized.

Examples


# Load the toy dataset
data(toy_df)

# Create clones
clones <- create_clones(toy_df, 
                        id = "id", 
                        event = "death", 
                        time_to_event = "fup_obs", 
                        exposure = "surgery", 
                        time_to_exposure = "timetosurgery", 
                        ced_window = 365.25/2)

clones_long <- cast_clones_to_long(clones)
clones_long_w <- generate_ccw(clones_long, predvars = c("age"))
clones_long_w_wins <- winsorize_ccw_weights(clones_long_w)