A. DATA
Membaca Data Mengimpor data dari file Excel ke dalam R dapat dilakukan menggunakan perintah seperti berikut.
data1 <- readxl::read_xlsx("C:/Users/PAVILION/Documents/SMT 3/Statistika Ekonomi Industri/Level Risiko Investasi.xlsx")
data1
## # A tibble: 100 × 16
## Country X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AD 17.5 38675. 173. 0.68 1.22 1.79 -2.08 55 -26.5 2.86
## 2 AE 18.2 40105. 104. 1.77 0.870 2.66 -0.725 103. -13.6 353.
## 3 AE-AZ 18.7 76038. 31.0 2.63 1.49 1.85 -1.90 103. -56.2 200.
## 4 AE-RK NA 27883. 24.8 1.29 1.75 2.23 -1.14 103. 24.8 10.1
## 5 AM 14 4251. 89.6 1.44 0.256 4.75 2.33 167. 47.3 12.6
## 6 AO NA 2034. 57.1 22.4 3.34 -0.878 -5.20 34.8 15.4 62.5
## 7 AR 23.3 9203. 43.3 36.7 0.966 -0.237 -3.73 NA -5.01 375.
## 8 AT 18.6 53174. 159. 1.52 0.726 1.88 -0.300 116. 15.4 430.
## 9 AU 15.7 63972. 122. 1.65 1.48 2.45 0.0306 192. 58.0 1359.
## 10 AW 33.5 24643. 92.8 1.22 0.797 2.06 -4.72 80.5 28.1 2.38
## # ℹ 90 more rows
## # ℹ 5 more variables: X11 <dbl>, X12 <dbl>, X13 <dbl>, X14 <dbl>,
## # `Risk Level` <chr>
Deskripsi Data X1 : % Rata-rata rasio kecukupan modal 5 tahun terakhir. X2 : Produk Domestik Bruto per kapita (USD). X3 : % Rata-rata Utang Luar Negeri Bruto 5 tahun terakhir. X4 : % Rata-rata pertumbuhan harga konsumen 5 tahun terakhir. X5 : % Rata-rata pertumbuhan penduduk 5 tahun terakhir. X6 : % Rata-rata PDB riil 5 tahun terakhir. X7 : % Rata-rata pertumbuhan PDB riil per kapita 5 tahun terakhir. X8 : Rata-rata rasio pinjaman-deposit 5 tahun terakhir. X9 : % Rata-rata Utang Luar Negeri Bersih 5 tahun terakhir. X10 : Nominal PDB (US miliar). X11 : Rata-rata kredit bermasalah 5 tahun terakhir. X12 : %Rata-rata investasi domestik bruto terhadap PDB 5 tahun terakhir. X13 : % Rata-rata tabungan domestik bruto terhadap PDB 5 tahun terakhir. X14 : % Rata-rata tingkat pengangguran 5 tahun terakhir.
Mengonversi tipe data variabel respons Risk evel menjadi tipe factor unutk keperluan analisis. Penggunaan nama kolom Risk Level menjadi risk_level hanya opsional.
# mengubah tipe data peubah
data1$`Risk Level` <- as.factor(data1$`Risk Level`)
colnames(data1)[16] <- "risk_level"
library(rmarkdown)
paged_table(data1)
Ringkasan Data
library(skimr)
skim(data1)
| Name | data1 |
| Number of rows | 100 |
| Number of columns | 16 |
| _______________________ | |
| Column type frequency: | |
| character | 1 |
| factor | 1 |
| numeric | 14 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| Country | 0 | 1 | 2 | 5 | 0 | 99 | 0 |
Variable type: factor
| skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
|---|---|---|---|---|---|
| risk_level | 0 | 1 | FALSE | 2 | hig: 54, low: 46 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| X1 | 12 | 0.88 | 18.97 | 5.42 | 4.20 | 15.93 | 18.58 | 21.80 | 47.50 | ▁▇▃▁▁ |
| X2 | 0 | 1.00 | 22641.57 | 24846.18 | 434.46 | 4265.94 | 11659.10 | 34815.21 | 124340.38 | ▇▂▂▁▁ |
| X3 | 0 | 1.00 | 191.93 | 697.33 | 13.63 | 42.96 | 70.42 | 130.63 | 6908.35 | ▇▁▁▁▁ |
| X4 | 0 | 1.00 | 3.26 | 4.86 | -0.15 | 0.87 | 1.70 | 3.94 | 36.70 | ▇▁▁▁▁ |
| X5 | 0 | 1.00 | 1.20 | 1.06 | -0.89 | 0.44 | 1.14 | 1.95 | 4.40 | ▃▇▅▃▁ |
| X6 | 0 | 1.00 | 3.08 | 2.26 | -5.14 | 1.76 | 2.98 | 4.30 | 10.08 | ▁▂▇▃▁ |
| X7 | 0 | 1.00 | 0.11 | 2.58 | -9.85 | -1.19 | 0.07 | 1.94 | 6.07 | ▁▁▆▇▂ |
| X8 | 7 | 0.93 | 99.94 | 42.61 | 34.82 | 76.95 | 90.19 | 113.39 | 359.14 | ▇▅▁▁▁ |
| X9 | 0 | 1.00 | -13.58 | 217.07 | -1955.72 | -14.11 | 12.67 | 36.67 | 456.49 | ▁▁▁▂▇ |
| X10 | 0 | 1.00 | 582.32 | 1659.10 | 1.17 | 32.81 | 106.87 | 366.37 | 14866.70 | ▇▁▁▁▁ |
| X11 | 17 | 0.83 | 5.53 | 5.14 | 0.34 | 1.93 | 3.90 | 7.95 | 26.98 | ▇▃▁▁▁ |
| X12 | 0 | 1.00 | 24.96 | 6.73 | 12.67 | 20.79 | 23.40 | 28.38 | 46.83 | ▃▇▃▁▁ |
| X13 | 0 | 1.00 | 24.48 | 8.07 | 10.95 | 19.06 | 24.28 | 29.36 | 55.09 | ▅▇▅▁▁ |
| X14 | 11 | 0.89 | 8.44 | 5.29 | 0.12 | 4.82 | 6.80 | 10.50 | 24.65 | ▆▇▂▂▁ |
Dataset tingkat risiko investasi memiliki 16 variabel dan 100 observasi. Dari 16 variabel tersebut, terdapat 1 variabel karakter, 14 variabel numerik yang berperan sebagai variabel prediktor, serta 1 variabel kategorik dengan dua kategori sebagai variabel respon. Kemudian pada data diatas terdapat nilai yang hilang di beberapa variabel prediktor, yaitu variabel X1 sebanyak 12 data, X8 sebanyak 7. Untuk memungkinkan proses pemodelan dilakukan, diperlukan penanganan terhadap masalah nilai yang hilang tersebut.penanganan dilakukan dengan mengganti data yang kosong menggunkan rata-rata dari setiap kolom atau variabel.
# peubah X1
data1$X1 <- ifelse(is.na(data1$X1),
ave(data1$X1, FUN = function(x) mean(x, na.rm = TRUE)),
data1$X1)
# peubah X8
data1$X8 <- ifelse(is.na(data1$X8),
ave(data1$X8, FUN = function(x) mean(x, na.rm = TRUE)),
data1$X8)
# peubah X11
data1$X11 <- ifelse(is.na(data1$X11),
ave(data1$X11, FUN = function(x) mean(x, na.rm = TRUE)),
data1$X11)
# peubah X14
data1$X14 <- ifelse(is.na(data1$X14),
ave(data1$X14, FUN = function(x) mean(x, na.rm = TRUE)),
data1$X14)
skim(data1)
| Name | data1 |
| Number of rows | 100 |
| Number of columns | 16 |
| _______________________ | |
| Column type frequency: | |
| character | 1 |
| factor | 1 |
| numeric | 14 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| Country | 0 | 1 | 2 | 5 | 0 | 99 | 0 |
Variable type: factor
| skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
|---|---|---|---|---|---|
| risk_level | 0 | 1 | FALSE | 2 | hig: 54, low: 46 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| X1 | 0 | 1 | 18.97 | 5.08 | 4.20 | 16.10 | 18.97 | 21.43 | 47.50 | ▁▇▂▁▁ |
| X2 | 0 | 1 | 22641.57 | 24846.18 | 434.46 | 4265.94 | 11659.10 | 34815.21 | 124340.38 | ▇▂▂▁▁ |
| X3 | 0 | 1 | 191.93 | 697.33 | 13.63 | 42.96 | 70.42 | 130.63 | 6908.35 | ▇▁▁▁▁ |
| X4 | 0 | 1 | 3.26 | 4.86 | -0.15 | 0.87 | 1.70 | 3.94 | 36.70 | ▇▁▁▁▁ |
| X5 | 0 | 1 | 1.20 | 1.06 | -0.89 | 0.44 | 1.14 | 1.95 | 4.40 | ▃▇▅▃▁ |
| X6 | 0 | 1 | 3.08 | 2.26 | -5.14 | 1.76 | 2.98 | 4.30 | 10.08 | ▁▂▇▃▁ |
| X7 | 0 | 1 | 0.11 | 2.58 | -9.85 | -1.19 | 0.07 | 1.94 | 6.07 | ▁▁▆▇▂ |
| X8 | 0 | 1 | 99.94 | 41.08 | 34.82 | 77.78 | 92.35 | 112.27 | 359.14 | ▇▆▁▁▁ |
| X9 | 0 | 1 | -13.58 | 217.07 | -1955.72 | -14.11 | 12.67 | 36.67 | 456.49 | ▁▁▁▂▇ |
| X10 | 0 | 1 | 582.32 | 1659.10 | 1.17 | 32.81 | 106.87 | 366.37 | 14866.70 | ▇▁▁▁▁ |
| X11 | 0 | 1 | 5.53 | 4.68 | 0.34 | 2.40 | 4.95 | 6.45 | 26.98 | ▇▂▁▁▁ |
| X12 | 0 | 1 | 24.96 | 6.73 | 12.67 | 20.79 | 23.40 | 28.38 | 46.83 | ▃▇▃▁▁ |
| X13 | 0 | 1 | 24.48 | 8.07 | 10.95 | 19.06 | 24.28 | 29.36 | 55.09 | ▅▇▅▁▁ |
| X14 | 0 | 1 | 8.44 | 4.99 | 0.12 | 5.00 | 7.38 | 9.70 | 24.65 | ▅▇▂▁▁ |
# data setelah dilakukan penanganan missing value
paged_table(data1)
Proporsi dua kelas dalam peubah respon
prop.table(table(data1$risk_level))
##
## high low
## 0.54 0.46
Berdasarkan statistik deskriptif yang disajikan, dapat disimpulkan bahwa variabel respon memiliki proporsi anggota kelas High risk level sebanyak 0.54% dan kelas Low risk level sebesar 0.46 % dari total pengamatan.
Sebaran Data Untuk memvisualisasikan distribusi data dari setiap variabel, masing-masing variabel akan digambarkan dalam bentuk box-plot.
library(caret)
## Loading required package: ggplot2
## Loading required package: lattice
featurePlot(x = data1[, 2:15],
y = data1$risk_level,
plot = "box",
do.out = FALSE,
layout = c(5,3),
strip = strip.custom(par.strip.text=list(cex=.7)),
scales = list(x = list(relation="free"),
y = list(relation="free")))
library(caret)
featurePlot(x = data1[, 2:15],
y = data1$risk_level,
plot = "density",
do.out = FALSE,
layout = c(5,3),
strip = strip.custom(par.strip.text=list(cex=.7)),
scales = list(x = list(relation="free"),
y = list(relation="free")))
Dari box-plot dan density plot di atas, terlihat bahwa banyak variabel
prediktor memiliki distribusi data yang tidak simetris dan terdapat
sejumlah besar outlier.
B. PERSIAPAN DATA
Split Data Melakukan pembagian dataset menjadi data train dan data testing sebagai metode untuk melatih dan mengevaluasi performa model machine learning. Data training digunakan untuk membuat model, sedangkan data testing digunakan untuk evaluasi kebaikan model
set.seed(100)
# Mengambil amatan yang digunakan sebagai data train
train_index <- createDataPartition(data1$risk_level, p = 0.8, list = FALSE)
train_index # index amatan
## Resample1
## [1,] 1
## [2,] 3
## [3,] 4
## [4,] 5
## [5,] 6
## [6,] 8
## [7,] 10
## [8,] 12
## [9,] 13
## [10,] 14
## [11,] 15
## [12,] 16
## [13,] 17
## [14,] 18
## [15,] 19
## [16,] 20
## [17,] 21
## [18,] 22
## [19,] 23
## [20,] 24
## [21,] 25
## [22,] 26
## [23,] 28
## [24,] 29
## [25,] 30
## [26,] 32
## [27,] 33
## [28,] 34
## [29,] 35
## [30,] 36
## [31,] 37
## [32,] 38
## [33,] 39
## [34,] 40
## [35,] 41
## [36,] 42
## [37,] 43
## [38,] 44
## [39,] 45
## [40,] 46
## [41,] 48
## [42,] 49
## [43,] 50
## [44,] 52
## [45,] 53
## [46,] 54
## [47,] 56
## [48,] 57
## [49,] 59
## [50,] 60
## [51,] 61
## [52,] 63
## [53,] 65
## [54,] 66
## [55,] 68
## [56,] 69
## [57,] 70
## [58,] 71
## [59,] 72
## [60,] 73
## [61,] 74
## [62,] 76
## [63,] 77
## [64,] 78
## [65,] 79
## [66,] 80
## [67,] 81
## [68,] 82
## [69,] 83
## [70,] 84
## [71,] 85
## [72,] 86
## [73,] 87
## [74,] 88
## [75,] 91
## [76,] 92
## [77,] 93
## [78,] 94
## [79,] 95
## [80,] 96
## [81,] 97
# Data train
train_data <- data1[train_index,]
head(train_data)
## # A tibble: 6 × 16
## Country X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AD 17.5 38675. 173. 0.68 1.22 1.79 -2.08 55 -26.5 2.86 8
## 2 AE-AZ 18.7 76038. 31.0 2.63 1.49 1.85 -1.90 103. -56.2 200. 8.15
## 3 AE-RK 19.0 27883. 24.8 1.29 1.75 2.23 -1.14 103. 24.8 10.1 5.53
## 4 AM 14 4251. 89.6 1.44 0.256 4.75 2.33 167. 47.3 12.6 6.6
## 5 AO 19.0 2034. 57.1 22.4 3.34 -0.878 -5.20 34.8 15.4 62.5 10.3
## 6 AT 18.6 53174. 159. 1.52 0.726 1.88 -0.300 116. 15.4 430. 2.02
## # ℹ 4 more variables: X12 <dbl>, X13 <dbl>, X14 <dbl>, risk_level <fct>
# Data testing
test_data <- data1[-train_index,]
head(test_data)
## # A tibble: 6 × 16
## Country X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AE 18.2 40105. 104. 1.77 0.870 2.66 -0.725 103. -13.6 353.
## 2 AR 23.3 9203. 43.3 36.7 0.966 -0.237 -3.73 99.9 -5.01 375.
## 3 AU 15.7 63972. 122. 1.65 1.48 2.45 0.0306 192. 58.0 1359.
## 4 AZ 25.3 5083. 43.4 6.85 1.05 0.391 -1.74 111. -174. 42.6
## 5 CO 17.2 5860. 47.6 4.71 1.38 2.45 -0.888 117. 9.93 271.
## 6 CZ 21.4 27045. 79.2 1.58 0.207 3.72 1.32 76.5 -16.6 244.
## # ℹ 5 more variables: X11 <dbl>, X12 <dbl>, X13 <dbl>, X14 <dbl>,
## # risk_level <fct>
Dalam tahap pemodelan, kolom Country tidak dimanfaatkan, sehingga dihapus dari data training dan data testing.
train_data$Country <- NULL
test_data$Country <- NULL
Standarisasi Data Tahapan berikutnya adalah proses standarisasi. Proses ini penting karena skala dari setiap variabel prediktor bervariasi, sedangkan untuk mendapatkan hasil pemodelan yang optimal, diperlukan skala yang seragam. Metode standarisasi yang diterapkan adalah transformasi ke distribusi normal standar (Z).
standardize <- preProcess(train_data, method = c("center", "scale"))
train_data_s <- predict(standardize, newdata = train_data)
test_data_s <- predict(standardize, newdata = test_data)
Cross Validation Cross Validation (CV) merupakan metode untuk mengukur kinerja model. Pada studi kasus ini tipe CV yang digunakan adalah repeatedcv k-folds (validasi silang k-folds berulang) dengan folds yang digunakan adalah 5 folds dan perulangan dilakukan sebanyak 5 kali. Data dipartisi secara acak ke dalam lipatan/subset data (folds). Untuk masing-masing subset data tersebut, CV akan menggunakan empat folds untuk training dan satu fold untuk testing. Cross Validation dalam studi kasus ini digunakan untuk tuning parameter, yakni mencari parameter terbaik bagi model yang memberikan nilai kebaikan evaluasi optimal.
fit_Control <- trainControl(method = 'repeatedcv',
number = 5,
repeats = 5,
savePredictions = 'final',
classProbs = T,
summaryFunction = prSummary,
allowParallel = TRUE)
Metriks evaluasi yang ditampilkan meliputi precision, recall dan F1-score. Pada kasus ini metrik yang digunakan adalah F1-score di mana nilai terbaiknya adalah 1 dan nilai terburuknya adalah 0. F1-score yang baik mengindikasikan bahwa model klasifikasi yang dihasilan memiliki nilai precision dan recall yang baik.
C. PEMODELAN Pada studi kasus ini metode yang digunakan untuk memodelkan adalah Random Forest. Random forest merupakan model yang dibentuk dari banyak model Decission Tree baik untuk regresi maupun klasifikasi. Metode ini merupakan metode pohon gabungan. Untuk mengidentifikasi peubah prediktor yang relevan terhadap peubah respons, random forest menghasilkan ukuran tingkat kepentingan (variable importance) peubah penjelas.
Ftting Model
set.seed(100)
# library(ModelMetrics)
rf <- train(risk_level ~., data = train_data_s,
method = 'ranger',
metric = "F",
tuneLength = 10,
trControl = fit_Control,
importance = 'impurity')
## Warning in nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo,
## : There were missing values in resampled performance measures.
rf
## Random Forest
##
## 81 samples
## 14 predictors
## 2 classes: 'high', 'low'
##
## No pre-processing
## Resampling: Cross-Validated (5 fold, repeated 5 times)
## Summary of sample sizes: 64, 66, 64, 65, 65, 65, ...
## Resampling results across tuning parameters:
##
## mtry splitrule AUC Precision Recall F
## 2 gini NaN 0.8773085 0.8783333 0.8722288
## 2 extratrees NaN 0.8517071 0.8644444 0.8520097
## 3 gini NaN 0.8737529 0.8650000 0.8653492
## 3 extratrees NaN 0.8337179 0.8644444 0.8442540
## 4 gini NaN 0.8956797 0.8555556 0.8701203
## 4 extratrees NaN 0.8521974 0.8688889 0.8557736
## 6 gini NaN 0.9080891 0.8472222 0.8704817
## 6 extratrees NaN 0.8515336 0.8511111 0.8461461
## 7 gini NaN 0.9054225 0.8472222 0.8696991
## 7 extratrees NaN 0.8484545 0.8600000 0.8488444
## 8 gini NaN 0.9075556 0.8427778 0.8670140
## 8 extratrees NaN 0.8545336 0.8555556 0.8504982
## 10 gini NaN 0.9337302 0.8333333 0.8734258
## 10 extratrees NaN 0.8637273 0.8516667 0.8504309
## 11 gini NaN 0.9246190 0.8377778 0.8720140
## 11 extratrees NaN 0.8636638 0.8555556 0.8531382
## 12 gini NaN 0.9290635 0.8422222 0.8778870
## 12 extratrees NaN 0.8685336 0.8516667 0.8537624
## 14 gini NaN 0.9207302 0.8244444 0.8625369
## 14 extratrees NaN 0.8760606 0.8466667 0.8539982
##
## Tuning parameter 'min.node.size' was held constant at a value of 1
## F was used to select the optimal model using the largest value.
## The final values used for the model were mtry = 12, splitrule = gini
## and min.node.size = 1.
Dari hasil output di atas, hasil tunning parameter dengan k-fold cv berulang pada model random forest memberikan AUC (luas area di bawah kurva ROC), precision, recall dan F1-score yang tinggi (>80%), sehingga dapat dikatakan bahwa model random forest yang dibangun cukup baik. Model final diperoleh dengan parameter mtry = 12, splitrule = extratress dan min.node.size = 1.
Variabel Importance ukuran tingkat kepentingan peubah prediktor yang relevan terhadap peubah respons.
plot(varImp(rf, scale = FALSE))
Dari output di atas dapat diketahui bahwa Gross Domestic Product per
kapita (X2) merupakan variabel terpenting bagi model random forest.
Prediksi
testing_pred <- predict(rf, newdata = test_data_s)
confusionMatrix(testing_pred, test_data_s$risk_level)
## Confusion Matrix and Statistics
##
## Reference
## Prediction high low
## high 9 2
## low 1 7
##
## Accuracy : 0.8421
## 95% CI : (0.6042, 0.9662)
## No Information Rate : 0.5263
## P-Value [Acc > NIR] : 0.004362
##
## Kappa : 0.6816
##
## Mcnemar's Test P-Value : 1.000000
##
## Sensitivity : 0.9000
## Specificity : 0.7778
## Pos Pred Value : 0.8182
## Neg Pred Value : 0.8750
## Prevalence : 0.5263
## Detection Rate : 0.4737
## Detection Prevalence : 0.5789
## Balanced Accuracy : 0.8389
##
## 'Positive' Class : high
##
Berdasarkan hasil uji coba model random forest pada data testing, ditunjukkan bahwa kelas positive yang dimaksud adalah kelompok negara dengan tingkat risiko investasi tinggi (high risk level).
Interpretasi prediksi : Tingkat akurasi menggambarkan tingkat ketepatan model dalam mengklasifikasikan dengan benar. Dalam kasus ini berarti bahwa model dapat memprediksi benar negara tergolong high risk atau low risk sebesar 84,21%. Spesificity/precision/positive predictive value menggambarkan ketepatan antara data yang diminta terhadap hasil prediksi yang diberikan model. Pada kasus ini, berarti bahwa negara yang benar termasuk negara high risk dari keseluruhan negara yang diprediksi sebagai negara high risk sebesar 77,78%. Sensitivity/recall menggambarkan keberhasilan model dalam menemukan informasi. Pada kasus ini, berarti bahwa negara yang diprediksi sebagai negara high risk dibanding keseluruhan negara yang sebenarnya termasuk dalam high risk sebesar 90%.
Kesimpulan Berdasarkan proses di atas, model random forest final untuk memprediksi tingkat risiko investasi negara memberikan nilai akurasi 84,21%. Model tersebut mengelompokan kelas positif sebagai negara dengan high risk level atau negara yang memiliki risiko tinggi dalam hal investasi. Berdasarkan nilai variable importance, peubah-peubah prediktor dapat diurutikan dari yang terpenting (bagi pembangunan model) sebagai berikut: X2 : Gross per capita (USD). X9 : Percentage of gross domestic saving to GDP (%) average from last 5 years. X11 : Non-performing loans (% of gross loans) average from last 5 years. X10 : Unemployment rate (% labour force) average from last 5 years. X1 : Nominal GDP (USD bn). X12 : Growth of consumer price (%) average from last 5 years. X5 : Net External Debt (% of GDP) average from last 5 years. X14 : Growth of population (%) average from last 5 years. X13 : Capital adequacy ratio (%) average from last 5 years. X7 : Percentage of gross domestic investment to GDP (%) average from last 5 years. X4 : Growth of Real GDP per cap. (%) average from last 5 years. X8 : Loan-deposit ratio (%) average from last 5 years. X3 : Growth of Real GDP (%) average from last 5 years. X6 : Gross External Debt (% of GDP) average from last 5 years.