Memuat Library yang diperlukan

memasukan semua library yang kita perlukan

library(readxl)
library(caTools)
library(rpart)
library(rpart.plot)
library(readxl)

Memuat dataset

memasukan excel yang akan kita analisis

data <- read_excel("D:/TUGAS/R/Level Risiko Investasi.xlsx", sheet = "Training")
data2 <- read_excel("D:/TUGAS/R/Level Risiko Investasi.xlsx", sheet = "Testing")
head(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       18.2 40105. 104.   1.77 0.870  2.66  -0.725 103.  -13.6 353.    8.15
## 3 AE-AZ    18.7 76038.  31.0  2.63 1.49   1.85  -1.90  103.  -56.2 200.    8.15
## 4 AE-RK    NA   27883.  24.8  1.29 1.75   2.23  -1.14  103.   24.8  10.1  NA   
## 5 AM       14    4251.  89.6  1.44 0.256  4.75   2.33  167.   47.3  12.6   6.6 
## 6 AO       NA    2034.  57.1 22.4  3.34  -0.878 -5.20   34.8  15.4  62.5  10.3 
## # ℹ 4 more variables: X12 <dbl>, X13 <dbl>, X14 <dbl>, `Risk Level` <chr>
head(data2)
## # A tibble: 6 × 15
##   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 SE       23.2 60338. 175.  1.62  0.676   2.47  0.353 186.    64.1 538.    0.5 
## 2 SG       16.8 62433. 410.  0.105 0.907   2.78  0.291  94.0 -201.  340.    1.31
## 3 SI       18.3 28684. 103.  0.844 0.0746  3.55  1.93   72.3   16.2  52.8   3.02
## 4 SK       19.7 21043. 103.  1.17  0.0734  3.22  1.23  112.    33.4 103.    2.53
## 5 SM       11.9 49356.  60.2 0.896 0.586   1.75 -1.13   88.6 -145.    1.49 63.5 
## 6 SV       NA    3989.  65.6 0.394 0.504   2.45 -0.125  88.9   27.3  24.6   1.57
## # ℹ 3 more variables: X12 <dbl>, X13 <dbl>, X14 <dbl>

Mengeliminasi nilai yang hilang dengan menghapus baris dengan NA (jika diperlukan)

proses ini melakukan eliminasi terhadap data data yang hilang

data <- na.omit(data)

Membagi data menjadi train_data dan test_data

membagi data mejadi 2 yaitu train dan test dengan rasio 90% dan 10%

set.seed(123)
split <- sample.split(data$`Risk Level`, SplitRatio = 0.9)
train_data <- subset(data, split == TRUE)
test_data <- subset(data, split == FALSE)

Membangun model

membangun model yang akan digunakan sya menggunakan model decision tree

model <- rpart(`Risk Level` ~ X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 + X11 + X12 + X13 + X14,data = train_data, method = "class")

Mevisualisasikan the decision tree model

digunakan untuk melihat bagaimana model kita berjalan

rpart.plot(model)

Membuat Prediksi pada test data

ini dilakukan untuk melihat apakah proses kita berjalan apa tidak

predictions <- predict(model, newdata = test_data, type = "class")

Melihat visualisasi prediksi

print(predictions)
##    1    2    3    4    5    6 
##  low high  low high  low high 
## Levels: high low

Mengevaluasi keakuratan model

accuracy <- sum(predictions == test_data$`Risk Level`) / nrow(test_data)
print(paste("Accuracy: ", accuracy))
## [1] "Accuracy:  1"

Memprediksi data excel

lalu kita memprediksi data testing yang ada di excel

prediksi <- predict(model, newdata = data2, type = "class")
print(prediksi)
##    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16 
##  low  low  low  low  low high  low high high  low  low high  low  low  low high 
##   17 
## high 
## Levels: high low
table(Predicted = predictions, Actual = test_data$`Risk Level`)
##          Actual
## Predicted high low
##      high    3   0
##      low     0   3

Melihat data dari test_data

data$X1 <- as.factor(data$X1)
print(test_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 DK       22.6 67566. 156.   0.54  0.361 2.69   1.31  359.   -5.59 355.   1.8 
## 2 JM       14.3  4939.  90.8  3.60  0.481 1.18  -1.46   88.9  38.1   13.8  2.8 
## 3 KZ       27.0 10589.  56.2  7.95  1.34  3      0.905  83.5 -38.6  171.   7.9 
## 4 NA       15.2  5051.  60.5  4.86  1.88  0.754 -3.58   91.3  19.0   10.7  6.4 
## 5 PE       15.6  6528.  35.4  2.70  1.05  3.17  -0.748 117.  -20.7  205.   4.13
## 6 RO       23.2 14982.  52.6  1.52 -0.588 4.72   3.94   74.4  18.7  249.   4.06
## # ℹ 4 more variables: X12 <dbl>, X13 <dbl>, X14 <dbl>, `Risk Level` <chr>

melihat isi train_data

print(train_data)
## # A tibble: 61 × 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 AM       14    4251.  89.6 1.44   0.256  4.75  2.33   167.   47.3    12.6 
##  4 AT       18.6 53174. 159.  1.52   0.726  1.88 -0.300  116.   15.4   430.  
##  5 AU       15.7 63972. 122.  1.65   1.48   2.45  0.0306 192.   58.0  1359.  
##  6 AW       33.5 24643.  92.8 1.22   0.797  2.06 -4.72    80.5  28.1     2.38
##  7 BD        4.2  2324.  19.7 5.81   1.06   7.39  6.07    78.4   4.92  347.  
##  8 BG       22.7 11289.  70.3 0.779 -0.710  3.62  2.70    73.0 -13.0    69.1 
##  9 BJ       10.5  1421.  49.6 0.225  2.77   4.88  2.21    81.5  20.6    15.4 
## 10 CA       16.1 51705. 118.  1.67   1.19   1.80 -0.588  107.   45.5  1722.  
## # ℹ 51 more rows
## # ℹ 5 more variables: X11 <dbl>, X12 <dbl>, X13 <dbl>, X14 <dbl>,
## #   `Risk Level` <chr>

Insight

insight dari hasil diatas adalah:

  1. Model descision tree ini medapatkan tingkat akurasi 100% yang merupakan relatif tinggi dengan training 90% dan testing 10%
  2. model descision tree ini dapat menujukan variabel dari x1 sampai 14
  3. Dataset dimuat dari file Excel bernama Level Risiko Investasi.xlsx dan dibersihkan dari nilai-nilai yang hilang (missing values) menggunakan fungsi na.omit.
  4. kelebihan Model Ini tidak perlu merubah kategori menjadi faktor