{"metadata":{"kernelspec":{"name":"ir","display_name":"R","language":"R"},"language_info":{"name":"R","codemirror_mode":"r","pygments_lexer":"r","mimetype":"text/x-r-source","file_extension":".r","version":"4.0.5"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":50160,"databundleVersionId":7602123,"sourceType":"competition"}],"dockerImageVersionId":30618,"isInternetEnabled":false,"language":"r","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# test metric in R\n# translated from here\n# https://www.kaggle.com/code/carloshuertas/homecreditmetrictest\n\n# actually I'm a little confused at the rankings this produces...","metadata":{"execution":{"iopub.status.busy":"2024-02-26T01:47:08.821197Z","iopub.execute_input":"2024-02-26T01:47:08.824261Z","iopub.status.idle":"2024-02-26T01:47:08.950245Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"gini_stability <- function(gini_in_time, w_fallingrate = 88.0, w_resstd = -0.5) {\n  x <- seq_along(gini_in_time)\n  y <- gini_in_time\n  lm_model <- lm(y ~ x)\n  coef_values <- coef(lm_model)\n  a <- coef_values[2]\n  b <- coef_values[1]\n  y_hat <- a * x + b\n  residuals <- y - y_hat\n  res_std <- sd(residuals)\n  avg_gini <- mean(gini_in_time)\n  return(avg_gini + w_fallingrate * min(0, a) + w_resstd * res_std)\n}","metadata":{"execution":{"iopub.status.busy":"2024-02-26T01:47:11.393809Z","iopub.execute_input":"2024-02-26T01:47:11.43774Z","iopub.status.idle":"2024-02-26T01:47:11.450897Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"best_model <- seq(0.95, 0.5045, by = -0.0045)\nbest_model","metadata":{"execution":{"iopub.status.busy":"2024-02-26T01:47:18.027873Z","iopub.execute_input":"2024-02-26T01:47:18.029575Z","iopub.status.idle":"2024-02-26T01:47:18.050742Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"poor_model = seq(0.90, 0.504, -0.004)\npoor_model","metadata":{"execution":{"iopub.status.busy":"2024-02-26T01:47:21.092048Z","iopub.execute_input":"2024-02-26T01:47:21.09371Z","iopub.status.idle":"2024-02-26T01:47:21.112751Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"gini_stability(best_model)","metadata":{"execution":{"iopub.status.busy":"2024-02-26T01:47:24.726938Z","iopub.execute_input":"2024-02-26T01:47:24.732991Z","iopub.status.idle":"2024-02-26T01:47:24.768537Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"gini_stability(poor_model)","metadata":{"execution":{"iopub.status.busy":"2024-02-26T01:47:27.621658Z","iopub.execute_input":"2024-02-26T01:47:27.623314Z","iopub.status.idle":"2024-02-26T01:47:27.647895Z"},"trusted":true},"execution_count":null,"outputs":[]}]}