MEMBUAT DAN MEMERIKSA DATA UNTUK DI CLEANING

data <- read.csv("uas sei.csv")
str(data)
## 'data.frame':    100 obs. of  16 variables:
##  $ Country   : chr  "AD" "AE" "AE-AZ" "AE-RK" ...
##  $ X1        : num  17.5 18.2 18.7 NA 14 ...
##  $ X2        : num  38675 40105 76038 27883 4251 ...
##  $ X3        : num  172.8 103.5 31 24.8 89.6 ...
##  $ X4        : num  0.68 1.77 2.63 1.29 1.44 ...
##  $ X5        : num  1.221 0.87 1.489 1.753 0.256 ...
##  $ X6        : num  1.79 2.66 1.85 2.23 4.75 ...
##  $ X7        : num  -2.084 -0.725 -1.901 -1.135 2.332 ...
##  $ X8        : num  55 103 103 103 167 ...
##  $ X9        : num  -26.5 -13.6 -56.2 24.8 47.3 ...
##  $ X10       : num  2.86 352.91 199.93 10.11 12.65 ...
##  $ X11       : num  8 8.15 8.15 NA 6.6 ...
##  $ X12       : num  23.1 24.9 20.4 21.7 19.4 ...
##  $ X13       : num  26.9 32.5 31 17.3 15.1 ...
##  $ X14       : num  3 2.45 NA NA 18.5 ...
##  $ Risk.Level: chr  "low" "low" "low" "low" ...
summary(data)
##    Country                X1              X2                 X3         
##  Length:100         Min.   : 4.20   Min.   :   434.5   Min.   :  13.63  
##  Class :character   1st Qu.:15.93   1st Qu.:  4265.9   1st Qu.:  42.96  
##  Mode  :character   Median :18.58   Median : 11659.1   Median :  70.42  
##                     Mean   :18.97   Mean   : 22641.6   Mean   : 191.94  
##                     3rd Qu.:21.80   3rd Qu.: 34815.2   3rd Qu.: 130.63  
##                     Max.   :47.50   Max.   :124340.4   Max.   :6908.35  
##                     NA's   :12                                          
##        X4               X5                X6               X7          
##  Min.   :-0.151   Min.   :-0.8862   Min.   :-5.135   Min.   :-9.84530  
##  1st Qu.: 0.869   1st Qu.: 0.4419   1st Qu.: 1.765   1st Qu.:-1.18720  
##  Median : 1.700   Median : 1.1402   Median : 2.984   Median : 0.07155  
##  Mean   : 3.263   Mean   : 1.2019   Mean   : 3.076   Mean   : 0.10804  
##  3rd Qu.: 3.939   3rd Qu.: 1.9502   3rd Qu.: 4.305   3rd Qu.: 1.94108  
##  Max.   :36.703   Max.   : 4.4021   Max.   :10.076   Max.   : 6.07120  
##                                                                        
##        X8               X9                X10                 X11         
##  Min.   : 34.82   Min.   :-1955.72   Min.   :    1.171   Min.   : 0.3357  
##  1st Qu.: 76.95   1st Qu.:  -14.11   1st Qu.:   32.813   1st Qu.: 1.9250  
##  Median : 90.19   Median :   12.67   Median :  106.872   Median : 3.9000  
##  Mean   : 99.94   Mean   :  -13.58   Mean   :  582.318   Mean   : 5.5346  
##  3rd Qu.:113.39   3rd Qu.:   36.67   3rd Qu.:  366.370   3rd Qu.: 7.9500  
##  Max.   :359.14   Max.   :  456.49   Max.   :14866.703   Max.   :26.9780  
##  NA's   :7                                               NA's   :17       
##       X12             X13             X14          Risk.Level       
##  Min.   :12.67   Min.   :10.95   Min.   : 0.120   Length:100        
##  1st Qu.:20.79   1st Qu.:19.06   1st Qu.: 4.818   Class :character  
##  Median :23.40   Median :24.28   Median : 6.800   Mode  :character  
##  Mean   :24.96   Mean   :24.48   Mean   : 8.441                     
##  3rd Qu.:28.38   3rd Qu.:29.36   3rd Qu.:10.500                     
##  Max.   :46.83   Max.   :55.09   Max.   :24.650                     
##                                  NA's   :11
colSums(is.na(data))
##    Country         X1         X2         X3         X4         X5         X6 
##          1         12          0          0          0          0          0 
##         X7         X8         X9        X10        X11        X12        X13 
##          0          7          0          0         17          0          0 
##        X14 Risk.Level 
##         11          0
Baris ini digunakan untuk membaca file CSV ke dalam R dan menyimpannya dalam variabel data.

MENANGANI MISING VALUES

data_clean <- na.omit(data)
for(i in 2:15){
  data [is.na(data[,i]), i] <- mean(data[,i], na.rm = TRUE)
}
library(naniar)
vis_miss(data)

##### Langkah di atas Menghapus seluruh baris yang memiliki missing values, menciptakan dataset data_clean yang bersih tanpa missing values. Loop untuk mengisi missing values: Untuk kolom 2 hingga 15, nilai-nilai yang hilang (NA) diisi dengan rata-rata kolom tersebut. Ini adalah alternatif untuk menghapus missing values, di mana kita tetap mempertahankan baris yang hilang dengan mengisi data.

MENANGANI OUTLIER

detect_outliers <- function(x) {
  Q1 <- quantile(x, 0.25, na.rm = TRUE)  # Kuartil pertama
  Q3 <- quantile(x, 0.75, na.rm = TRUE)  # Kuartil ketiga
  IQR <- Q3 - Q1  # Interquartile range (IQR)
  lower_bound <- Q1 - 1.5 * IQR
  upper_bound <- Q3 + 1.5 * IQR
  return(x < lower_bound | x > upper_bound)
}
Fungsi ini sangat berguna untuk mendeteksi outliers menggunakan metode yang umum dan robust, yaitu IQR. Ini membantu mengidentifikasi nilai-nilai yang terlalu ekstrem dalam data numerik, yang mungkin memengaruhi hasil analisis atau model prediktif.

MENERAPKAN FUNGSI PADA KOLOM NUMBERIK

for (i in 2:15) {
  outliers <- detect_outliers(data[,i])
  print(paste("Outliers in column", names(data)[i], ":", sum(outliers, na.rm = TRUE)))
}
## [1] "Outliers in column X1 : 3"
## [1] "Outliers in column X2 : 4"
## [1] "Outliers in column X3 : 9"
## [1] "Outliers in column X4 : 7"
## [1] "Outliers in column X5 : 1"
## [1] "Outliers in column X6 : 3"
## [1] "Outliers in column X7 : 2"
## [1] "Outliers in column X8 : 5"
## [1] "Outliers in column X9 : 12"
## [1] "Outliers in column X10 : 16"
## [1] "Outliers in column X11 : 6"
## [1] "Outliers in column X12 : 5"
## [1] "Outliers in column X13 : 2"
## [1] "Outliers in column X14 : 9"
proses deteksi outliers ini merupakan langkah penting dalam pembersihan data, memastikan data lebih andal sebelum digunakan dalam analisis lebih mendalam.

MEMPERBAIKI FORMAT DATA

for(i in 2:ncol(data)) {
  h <- as.numeric(data[,i])
  qs <- as.numeric(runif(nrow(data)))
  result <- (1 - h) * qs
  print(result)
}
##   [1] -11.73540711  -1.27472386 -12.49421210 -15.65433219  -2.75522455
##   [6] -10.47349048  -1.74184224  -1.13236159 -10.61141920  -4.72073484
##  [11]  -7.95006680  -1.13819973 -13.84031152  -7.53684516 -14.79508163
##  [16]  -5.71975508  -3.58455158  -8.53054689 -10.16711547  -0.62257203
##  [21]  -3.09967207 -12.41297576 -16.84242050 -11.71150521  -0.55145959
##  [26]  -5.29194452 -13.30295430  -2.91220832 -14.70753621  -3.83782040
##  [31]  -4.07821245 -16.34723948  -5.00777657 -11.57326458  -0.02752677
##  [36]  -7.37131474  -2.94838366  -2.64982261  -6.60741204  -3.54277962
##  [41] -16.22313405  -9.70730630 -13.71714574  -4.14005482 -10.48258963
##  [46] -12.05730534  -2.70898583  -3.50370847 -15.80074489 -16.31971949
##  [51] -15.98888261  -3.45031442 -11.69689169  -8.06270148  -2.08649785
##  [56]  -9.83643021  -9.35656143  -8.52156652 -11.41731285  -1.55761215
##  [61] -15.90617150  -7.09414023  -0.99480299 -10.23851643  -5.09035841
##  [66]  -5.99617639  -7.45962484 -17.33638817 -12.96764875  -1.46190461
##  [71]  -9.74162777  -7.67266126 -13.25140453 -12.70635237 -22.68075483
##  [76] -31.89300694 -14.68950100 -11.45163738  -0.73380299  -3.87979239
##  [81] -10.98075978 -12.18904892  -1.55390846  -3.29401337 -17.59081646
##  [86]  -6.98349962 -13.13495696  -5.01110504 -11.27496850  -5.77765819
##  [91]  -9.83296883 -13.22408614  -3.77389179  -3.68365301  -7.94730726
##  [96] -17.81913651  -3.83125454 -12.89327135  -2.62053964  -8.78352738
##   [1] -12021.62895 -34689.66864 -18729.15350 -26966.70022  -1108.12254
##   [6]  -1829.40222  -9153.52096  -2420.93349 -37757.98176 -15404.80041
##  [11]  -4495.66334   -543.72138 -18255.79728  -4935.80117  -1432.47724
##  [16]   -758.63020  -2703.54593  -1518.58094  -2823.86217 -36896.31904
##  [21]   -302.76755 -62177.14298    -34.46839 -10646.89959   -895.17239
##  [26]  -5573.05780  -1621.80015  -8545.87649  -2369.55602  -2541.75456
##  [31] -21070.87913 -13238.51615 -61500.32317  -2970.30967  -2111.49416
##  [36]  -8241.37632    -31.88511  -9194.23205   -529.04550 -45367.95406
##  [41] -43163.96631  -2149.23545 -10869.71242  -3894.85827  -2036.98779
##  [46] -15110.16900  -4135.22862 -18645.39674   -105.27630 -17298.73524
##  [51]  -2219.72313 -47070.89305 -36788.12980  -1112.96500  -1405.64380
##  [56] -39037.69560  -9178.86090  -3665.00165  -3430.11757 -18621.68223
##  [61]  -1351.87544 -28153.41962 -28310.83361   -444.75624  -2464.18150
##  [66]   -855.46722  -1865.86721  -7519.66399 -55574.68500  -9010.15678
##  [71]  -1457.72766  -5981.13891  -1164.53401 -23521.91930 -17265.69138
##  [76]  -4880.03241  -1414.87983  -4836.90961   -349.84462   -161.41857
##  [81]    -83.46546   -743.12999 -10652.29966 -54231.69129  -6509.88976
##  [86]   -387.80714  -5626.20542  -5418.17085  -3036.30856   -774.02077
##  [91] -14049.25974 -13185.50533  -4820.59476 -50239.42061 -13880.13734
##  [96]  -1819.22793  -3525.38340   -427.95375  -6152.38264  -2496.90428
##   [1]  -40.307428  -64.016515  -16.610486   -8.185248  -69.401397  -31.668975
##   [7]  -17.960305  -55.384204  -21.748066  -53.464717  -28.477927   -8.900698
##  [13]   -6.562644  -15.304129 -166.908916  -30.829359  -25.085729  -25.370027
##  [19]   -3.035243  -62.413299  -11.729554 -252.779880  -31.448802  -33.245502
##  [25]  -23.244363   -5.317039  -31.609018   -1.605808  -92.818557 -110.902726
##  [31]  -53.191659  -38.118156  -52.374663  -41.213028  -27.413561   -6.193561
##  [37]   -5.270383  -22.434977   -1.899531 -136.405987  -72.540682  -33.632148
##  [43] -262.955906  -94.745028  -25.865170 -236.330145  -23.498112 -202.118705
##  [49]   -8.486780 -102.785078  -18.093946 -724.913296   -5.674893   -1.597936
##  [55]  -15.059188   -3.015635  -32.559289  -39.985012   -2.717630  -27.646043
##  [61]  -44.658005  -12.609558  -31.397800  -46.175843  -42.091617   -9.725988
##  [67]  -61.707418  -28.042533 -520.826266 -121.133344  -19.300620  -48.162722
##  [73] -199.176327 -131.554649 -288.662931  -33.268262  -18.418119  -60.692069
##  [79]  -24.273090   -7.725624   -1.657050  -68.627646 -301.218921  -37.624910
##  [85]  -83.831167  -12.474782 -109.849722   -6.255734  -21.283098   -5.315421
##  [91]  -46.400448 -107.949771   -6.271877  -33.035095  -40.624695  -36.423899
##  [97]   -8.530859  -31.721491  -25.545196  -56.038253
##   [1]   0.244853325  -0.203705419  -0.626577987  -0.163346184  -0.241370458
##   [6] -15.904687851 -17.710861620  -0.154822650  -0.368904268  -0.006518398
##  [11]  -1.277207809  -2.919481305  -0.533739166   0.053083764  -0.133635576
##  [16]   0.625868861  -0.907627221  -0.936164348  -3.976749968  -0.006531118
##  [21]  -0.822663277   0.064289321   0.181916452  -0.148734993  -0.309492787
##  [26]  -0.568917799  -1.268223797  -0.195801928   0.128024261   0.192345411
##  [31]  -0.566692953  -0.179923136   0.360347439  -0.914253039  -0.049283390
##  [36]  -0.567245304  -2.505967025   0.063401589  -3.575118435   0.091151522
##  [41]   0.007531787  -0.278671166  -0.378098814  -0.464918265  -4.506068452
##  [46]   0.311830859  -0.925892787  -0.991139822   0.237431426  -0.316551645
##  [51]  -2.297109674   0.393172970   0.197246318  -0.490135354   0.055528207
##  [56]   0.276451483   0.167391750  -0.309182357  -0.272539160   0.167206771
##  [61]  -2.478518616  -0.001005648  -0.275123223  -1.090797699  -1.940051352
##  [66]  -0.756465097  -0.617855625  -0.566858717  -0.162972048  -0.190472899
##  [71]  -0.143067164   0.271325396  -2.316968456  -1.226349535  -0.127243857
##  [76]   0.119214010  -0.599891492  -0.323652446  -6.930046383  -2.743161884
##  [81]  -3.773323729  -1.657789623  -0.082907429  -0.061186173  -0.034579962
##  [86]   0.105266546   0.471695969  -1.361744120  -1.045829380  -2.446291185
##  [91]   0.074620291   0.143670710  -2.409041640   0.020915251  -0.032901941
##  [96]  -0.014605245  -2.988247761  -0.217293406   0.225298104  -0.006031149
##   [1] -0.066194008  0.119487815 -0.313092075 -0.107492324  0.167377010
##   [6] -0.306994431  0.022133504  0.219276517 -0.031641237  0.190664788
##  [11] -0.040233914 -0.021782163  0.109608662  1.509027674 -0.105557371
##  [16] -0.766279265 -0.223543449  0.185829516  0.306356458 -0.111656255
##  [21] -0.559512201  0.031768723 -1.213910737 -0.186636399 -0.109640798
##  [26]  0.057944181 -0.132940403  0.001673024 -0.155881782  0.721986439
##  [31]  0.094330175  0.502341341  0.099641268  0.033706390 -0.411080204
##  [36]  0.684343005 -0.088711926  0.111016617 -0.493558728  0.568645023
##  [41]  0.483293846 -0.256347591  0.148249746  0.950671656 -0.263307486
##  [46]  0.916839341 -0.174488147  0.069179417  0.160660688  0.450014042
##  [51] -0.059942589 -0.189855626 -0.001263646 -0.045339543 -1.024253251
##  [56] -0.452611230  0.059474557  0.230171363 -0.676588573  1.141056866
##  [61] -1.262962127  0.042883373 -0.483239330 -0.289443859  0.045745731
##  [66]  0.195831460 -0.066934377  0.319804957 -0.448787088  0.848571599
##  [71] -0.232843893  0.311669190 -0.167633005 -0.189569121 -0.061305718
##  [76] -2.404441507 -0.089099522 -0.058259430 -0.590256748 -0.476180509
##  [81] -0.719579610 -0.027555458  0.028836283  0.051063094 -0.408871496
##  [86] -0.392359017 -0.269253428 -0.016092887 -0.197677656 -0.344559398
##  [91]  0.649898360  1.147250499 -0.185322045 -0.483581889  1.561758503
##  [96]  0.901047058  0.179179825 -1.095998097 -1.458561072 -0.010327841
##   [1] -0.2685786613 -1.5754446029 -0.5856509095 -0.1005830415 -0.0387314210
##   [6]  1.6428053999  0.3450883808 -0.7536319394 -0.1681746915 -0.0383722840
##  [11]  0.3813501008 -0.9566152073 -0.3345862347 -2.5949983719 -1.5193324563
##  [16] -3.2918701609 -0.1585443970  1.3983267618  0.8674734091 -0.7865336122
##  [21]  6.0851609088 -0.6700299786 -0.8685720232 -0.0606248181 -2.4585598902
##  [26] -1.9341585428 -1.4285355505 -0.9698330809 -2.1104384604 -2.5285505105
##  [31] -0.1931072328 -0.2306517113 -0.7765701114 -2.9351332191  0.1388983383
##  [36] -2.6687381400 -2.5186606634 -1.5769068709 -7.9734696995 -0.8005012792
##  [41] -0.2368419598 -1.0364587724 -0.5415167251 -2.6185432529 -1.4836936829
##  [46]  0.1114363857 -0.5038470386 -0.0680473650 -0.1713290047 -0.6988072259
##  [51] -2.5437952164 -0.4785278045 -0.0005583597 -3.9238647160 -2.7223431656
##  [56] -0.0821944752  0.0121869761 -0.1347701119 -0.7842677019  0.0420485789
##  [61] -2.5970761421 -1.2703148126  0.6504126692 -0.0582518219 -0.0436438318
##  [66]  0.5613148874 -5.5667309244 -0.5268179824 -1.2602590394 -0.1128695322
##  [71] -1.8915460681 -1.5967837482 -2.1058662822  2.4939368766 -5.4287623187
##  [76] -2.1717253540 -0.8666129954 -1.2479446791 -0.9470752916  0.0037945819
##  [81] -0.0092637075 -0.3028288223 -0.5339502760 -0.4010870611 -1.9016137939
##  [86] -0.7891511707 -3.2167937523 -1.4501410741 -1.8849949888 -3.2802260005
##  [91] -2.4394761772 -1.1477854288 -0.7594179540 -0.0564823837 -1.1313310236
##  [96] -1.7935531665  0.0033190681 -3.4654676157 -0.4447096316 -1.0267925579
##   [1]  1.672970931  0.648638458  1.934461430  1.718736716 -1.019161561
##   [6]  1.168147368  0.216470511  0.799630856  0.756761741  1.188437482
##  [11]  0.539289353 -3.068565688  0.007039277 -1.237618608  4.004766250
##  [16] -0.838053550  1.003460013  0.088018776  0.173849517  1.575029649
##  [21]  8.782444712  0.381744280 -0.579780144  0.077282182  0.123044481
##  [26] -1.025348265  1.159585901  0.110272751  0.360506024 -1.038382493
##  [31] -0.163438557  0.976276238 -0.036529615 -0.169423526  1.778543976
##  [36] -0.275508495 -0.357861410  0.875844947 -2.804716720  0.020870526
##  [41]  1.116444105  0.624023966  1.866612086 -0.552313957 -0.883752881
##  [46]  0.692086108  0.093731393  1.185299509 -0.523507967 -0.557507086
##  [51] -1.244068961 -2.572180438  0.211681991 -0.296077246  1.433926995
##  [56]  0.237375433  1.070463836  0.668800260  1.107195123  1.121601906
##  [61] -0.030368283 -0.327988788  3.004576046  0.013056476 -0.060857028
##  [66]  0.008238033 -0.212430784 -0.454682715  0.126794980 -1.026755481
##  [71]  1.088117552 -0.054681543  0.051826997  7.918598406  0.518734566
##  [76]  0.776014404  1.857244042 -0.192687954  1.182160876  1.086789491
##  [81]  2.046338350  1.139229756  0.249946803  0.251500847  0.491678344
##  [86]  1.872114322  2.628047098  0.146675656 -0.080052222 -0.057608210
##  [91] -2.091466496  0.002234893  0.042849153  3.312726386 -1.486136499
##  [96] -1.535817602  0.100371917 -0.209211838  2.740398087  0.336632623
##   [1]  -38.8994638  -35.1451819  -32.1584311  -11.8943468 -111.0035568
##   [6]  -16.1305235  -66.6018694  -78.6206601  -21.3762163   -9.1037982
##  [11]  -50.2895122  -72.8963648  -13.4373367  -16.4316025  -89.8310309
##  [16]   -4.3134765  -56.0881721  -66.3260932  -36.0511079  -17.4622221
##  [21]  -53.9075052  -29.8647311  -27.2978198  -33.4477110   -8.9479315
##  [26]  -35.8212334  -28.7088173  -73.7160829  -38.6901656  -56.9755900
##  [31]   -3.4864338  -31.3526086  -14.4161147  -32.8874817  -44.7712691
##  [36]  -20.4839325  -37.6247854  -74.6350332  -24.8618842   -9.5829132
##  [41]  -38.1494966  -54.9711005  -84.5476399   -2.8780477   -6.1698948
##  [46]  -26.8810706  -23.7042496  -23.6631396  -35.7080468  -65.7202292
##  [51]  -19.8426994  -17.0478286  -36.2813141   -8.5456801   -1.9414947
##  [56]  -52.5205175  -66.4930596  -14.5683035  -23.1734358  -54.7962677
##  [61]  -13.3593784  -13.5525417  -46.8887580  -49.0148179  -44.6712114
##  [66]  -21.9243142  -74.1926504  -48.2437026  -14.8303274  -55.2068677
##  [71]  -16.5104802  -32.7332067   -5.3494337  -41.5891258  -52.1687117
##  [76]  -35.1651581   -7.9172526  -98.0447674  -34.5344168  -70.1855929
##  [81]   -0.4650487  -75.9278932  -24.4651885  -68.9332884  -67.1790077
##  [86]  -57.2928821  -65.0730908  -87.1141547  -16.2569543  -26.2327943
##  [91]   -7.2528475  -48.0211983  -16.4366737 -101.1912171  -19.3780803
##  [96]  -13.8273039  -80.1158729  -82.2174928  -81.8867608  -36.6293221
##   [1]   26.74875237    6.67270025    0.53016149   -8.15440548  -18.34557210
##   [6]   -0.68250707    0.46518310   -0.52560308  -31.44894104  -23.95200767
##  [11]   29.07852111   -1.25828930    6.88090647    8.39916786   18.94632894
##  [16]   -7.40622728   10.87506129   -5.59100170  -11.65075503  -40.90208529
##  [21]  -53.25195275   38.16791540   -2.74693904   -0.48947181  -14.91803422
##  [26]   24.80757181   -1.42498405   -0.30296913   -7.05583726 -292.83423642
##  [31]    6.83428744    5.06629901    3.84362216  -13.63900573   -5.42837910
##  [36]    3.39466012   -6.00832996  -63.76568874  -12.06459808  -35.51179291
##  [41]  -31.56306115  -16.43951548  -22.14560719   -7.37302444  -21.25700145
##  [46] -126.38283296   -1.45265236   15.30406240  -16.83329247   -4.65735791
##  [51]   -1.39027804  120.06256075   41.59345252    0.11301438   -0.03513337
##  [56]  -24.37781031  -46.40669455   -3.56213250   -4.43570566   11.58928905
##  [61]  -15.78184474    3.50353027  240.76752987   17.02424672  -19.50942671
##  [66]   -5.95378741  -49.13949286   -1.64649731  759.51755198   -2.50080932
##  [71]   -4.18744074   -8.17754652 -113.32876917   76.29912216  184.63893710
##  [76]    0.98398835   -6.13756283   11.25617419  -52.24579654  -16.66424879
##  [81]    0.81825640  -41.57563321   -1.65409921    6.43607350   -3.30475688
##  [86]  -15.10958301  -18.17478760   18.96593251    3.78087542  -15.44512044
##  [91]   -6.89033155  -53.51048437   -1.10340167   -0.17168614   -0.35329904
##  [96]  -23.32155103   13.65853781   -5.23286246   53.75501343  -23.94157803
##   [1] -1.697515e+00 -2.704334e+02 -1.692230e+01 -6.157914e+00 -1.136563e+01
##   [6] -3.623234e+01 -1.833250e+02 -6.493614e+01 -1.319700e+03 -4.244155e-01
##  [11] -1.366023e+01 -2.853280e+02 -4.054327e+02 -4.055119e+01 -2.224734e+01
##  [16] -1.202827e+01 -1.506171e+01 -4.901774e+02 -4.126683e+01 -5.812177e+02
##  [21] -4.484745e+00 -2.678195e+02 -4.911292e+01 -1.792118e+02 -3.210102e+01
##  [26] -6.098877e+03 -2.260125e+01 -2.035692e+00 -6.633865e-01 -5.348117e+00
##  [31] -7.745885e+01 -3.263472e+03 -2.389856e+02 -2.973687e+01 -5.989197e+01
##  [36] -3.927456e+00 -3.091776e+01 -3.795281e+02 -6.662878e+01 -2.390304e+02
##  [41] -1.905581e+02 -1.177711e+01 -1.534065e+03 -8.106326e+00 -1.745451e+01
##  [46] -4.864114e+00 -8.498997e+00 -2.904860e+02 -1.660749e+01 -3.223069e+01
##  [51] -5.578329e+02 -3.446719e+02 -8.955379e+01 -1.102564e+03 -1.349629e+02
##  [56] -7.362171e+00 -6.532951e+02 -6.948865e+00 -3.176124e+01 -1.563979e+03
##  [61] -1.949893e+01 -1.149269e+03 -6.213406e+01 -1.102933e+02 -6.983868e+01
##  [66] -3.378879e-01 -3.450582e-01 -2.898484e+01 -4.945696e+01 -3.051190e+01
##  [71] -4.866075e+01 -2.662586e+00 -1.398343e+00 -3.276251e+00 -4.876704e+00
##  [76] -1.361130e+00 -1.773854e+02 -3.002267e+02 -1.110715e+01 -8.356482e+00
##  [81] -3.104810e+02 -7.985584e+00 -6.832893e+02 -6.875714e+01 -6.356310e+01
##  [86] -2.199262e+01 -3.930081e+01 -1.822991e+02 -3.410213e+02 -2.210750e+02
##  [91] -2.343409e+02 -5.953245e+00 -1.105025e+01 -7.439905e+01 -1.201645e+01
##  [96] -4.345533e+01 -1.078821e+03 -6.565198e+00 -5.779749e+02 -4.249325e-03
##   [1]  -2.990905552  -5.375959052  -6.243472525  -1.213260154  -4.130092108
##   [6]  -8.748237038  -0.913383796  -0.681638402   0.001331254  -0.330867026
##  [11]  -1.482313860  -3.637097195  -1.982012461  -4.710966626  -1.536280767
##  [16]  -2.824350949  -0.296435352  -1.344717366  -1.841516977   0.016417520
##  [21] -16.144319490   0.030419243  -6.109720201  -0.105136060 -11.930527960
##  [26]  -0.806682030  -0.945019069  -1.153564375  -8.352117287  -0.349923044
##  [31]  -1.044097431  -0.992032716  -0.271020238  -0.840520764  -4.418162094
##  [36]   0.129745710  -1.169730480  -0.994385714  -7.747052019  -0.194778087
##  [41]  -1.401768900  -3.073031978  -0.064827671  -1.153247184  -3.438008653
##  [46] -19.078582960  -0.714882965   0.058439523  -5.910812333   0.023597116
##  [51]  -1.371869023  -1.426482086  -0.379208794  -2.651839399  -3.279190720
##  [56]  -1.014225459  -2.096819355  -1.789508533  -0.574230972  -0.028800293
##  [61] -12.422737382   0.000000000  -2.217353036  -3.537588218  -3.846004845
##  [66]  -0.696228006  -1.253287626   0.008385559  -0.002493939  -2.295606329
##  [71]  -2.216816572  -0.905416677  -3.220703366   0.026034495  -0.215059468
##  [76]  -1.436311797  -0.002858434  -0.521909005 -10.603428387  -4.837287963
##  [81]  -3.384646337  -0.212602704  -1.115029418  -2.732555918  -3.594695334
##  [86]  -0.640149743  -1.038554879  -1.020338318  -0.046055242  -5.953302022
##  [91]  -2.436375866  -4.803441211  -0.975339114  -0.624438063  -2.332370927
##  [96]  -3.637693836  -0.669972307  -2.346807790  -4.011207717  -1.990283098
##   [1] -15.35892234  -7.86983189 -15.38955145  -8.25437652  -9.24079193
##   [6] -26.22059005 -12.19227978 -16.16090990  -0.51065566  -5.84819410
##  [11] -13.10984701 -24.90386274 -23.14866354  -3.17802789 -17.88141064
##  [16] -10.09406361 -11.59573038  -2.42973805  -3.00995492 -10.90905155
##  [21] -20.11628064  -1.89351891  -5.14141614 -12.26330661  -9.43899737
##  [26] -41.56175791 -17.58930973  -3.45049930 -32.49769080  -0.20310192
##  [31] -18.65968707 -13.88206312 -18.06405479  -4.04328527  -4.06890599
##  [36]  -7.52806293  -0.08225075  -8.95258993  -1.11693298 -21.09411985
##  [41]  -8.58910476 -22.58528318 -16.86663993 -21.77619007 -12.80462398
##  [46]  -6.19300708 -13.03380432 -17.79108711 -19.28914996 -17.76477977
##  [51] -23.99329463 -17.47335600 -17.80929958 -28.72949869 -11.19063872
##  [56] -11.19808822  -2.59731578 -19.73937635 -13.08708228 -21.73030946
##  [61] -10.67311133 -29.61139821  -3.58226384  -8.93884134 -13.87644664
##  [66] -20.89443528  -2.72077685  -0.81702954 -13.53259244  -6.99977321
##  [71] -23.19195638 -21.78057254  -6.49132483 -10.79592427 -12.82464186
##  [76]  -7.33354558 -14.31711028  -9.04663258 -12.20857822 -16.11480662
##  [81]  -7.65373192 -19.46825471  -4.63952368  -5.13581263 -19.27311218
##  [86] -19.36289117 -11.23672124 -11.21001854 -20.58151281 -10.85738051
##  [91]  -5.56686377 -12.80927628 -19.53173680 -32.72114933 -16.34187702
##  [96]  -8.18479606 -10.21202085 -21.68213783  -6.10143099 -15.09809501
##   [1] -16.53691953 -20.97551404 -24.45179909  -7.24979094  -0.06260526
##   [6] -14.99558603  -0.76799312 -25.02719574  -7.89095033 -22.00568204
##  [11] -27.39485114  -7.58990197 -23.57197710  -2.87765592  -3.78037258
##  [16]  -5.50671137  -5.53039520  -8.99645819  -6.24683348  -3.07775519
##  [21]  -6.68126599 -18.96342200  -4.04158123  -4.01003133 -18.53628156
##  [26] -34.80987924 -11.72734092  -2.72750368 -18.70939998  -9.51839160
##  [31] -12.95154993  -3.98038763  -0.30556522  -8.63503806  -8.74255907
##  [36] -24.85251200  -1.11937852  -1.35326273  -6.91817121  -1.74837094
##  [41] -12.97330791 -21.29127714  -5.94528968 -16.65002996 -11.57979199
##  [46]  -2.64547827  -5.24437453 -22.62301111  -1.75982380 -20.73510375
##  [51] -25.69113700 -19.30155504 -12.92635501  -4.89938430 -10.77598686
##  [56] -12.27807799  -8.62941608  -0.32047115  -9.34807435  -1.19123399
##  [61]  -0.19061025 -11.73085225 -23.19025714  -1.24794706  -2.40137530
##  [66]  -6.60680202 -13.49641799 -18.06254521 -31.07479043 -14.41541235
##  [71] -16.53144724  -7.81338290  -3.88120397 -29.50873050 -18.33366092
##  [76]  -2.88448401  -2.34267968 -20.29440357  -0.95271634  -4.43184068
##  [81]  -2.08183709 -17.99444376 -28.00744388 -17.27881298 -16.04134093
##  [86]  -7.60182989 -23.69767731 -16.81494849  -9.95587588  -9.21588029
##  [91] -15.51812483 -15.62202816 -16.90978390 -28.50208175  -7.48053299
##  [96] -11.87275125  -5.30830929  -5.29070239 -17.99186651  -0.22495419
##   [1]  -1.20189117  -0.43041323  -0.39463688  -0.43527591 -13.26093994
##   [6]  -5.94948687  -5.17131322  -0.17154639  -3.48127301  -1.04879458
##  [11]  -4.87252872  -1.26047214  -0.53075037  -3.99454423  -1.26807689
##  [16]  -0.72109793  -1.30512856  -9.17821680  -1.78810223  -2.08879359
##  [21]  -2.86660707  -1.41840621  -3.69061723  -6.24770521  -5.50420041
##  [26]  -3.49940571  -0.54142161 -11.35309637  -4.46934539  -3.79512264
##  [31]  -0.47205695  -1.85710378  -2.32067450  -3.78602177  -5.39708421
##  [36]  -0.54572442  -0.74155257  -5.27388374 -12.65766476  -6.26979822
##  [41]  -4.09333191  -5.25090014  -0.39452686 -10.64556969  -0.67518315
##  [46]  -6.11210534  -0.18279784  -4.00532652  -5.88438132  -0.92185550
##  [51]  -4.14815221  -4.10872443  -3.10720889  -0.36520672  -9.47109304
##  [56]  -1.32948260  -2.75930679  -0.74036773  -0.99392019  -0.77664720
##  [61]  -8.65141940  -2.69450455  -7.02854268  -1.15005407  -1.02880555
##  [66] -14.86895806  -6.16925346  -3.34358673  -4.69937047  -0.35122147
##  [71]  -7.85994010  -0.85333146  -3.06004717  -0.98918383  -0.37045761
##  [76]  -4.50811772  -1.32646308  -2.55063686  -5.59286314  -5.54939993
##  [81]  -3.07658974  -2.16648812  -1.86667184  -0.31571248  -1.20118886
##  [86]  -6.97233685  -6.99150496  -1.72450306  -6.90266634  -5.24421913
##  [91]  -0.22732723  -0.37103339  -0.08059306   0.78890056  -0.90849856
##  [96]  -1.78667888  -0.47148130  -3.42781884  -6.34700234  -0.12501924
## Warning: NAs introduced by coercion
##   [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [26] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [51] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
##  [76] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Kode ini mengonversi kolom data menjadi numerik dan melakukan operasi berbasis nilai acak.Tujuannya adalah memperbaiki format data, maka ini berhasil dalam hal memastikan bahwa setiap kolom numerik dapat diolah secara matematis.

MENGKONVERSI DATA

data$Risk.Level <- as.factor(data$Risk.Level)
for(i in 2:15) {
  data[,i] <- as.numeric(as.character(data[,i]))
}
Bagian ini bertujuan untuk membersihkan data dengan memastikan bahwa kolom kategori diubah menjadi faktor dan kolom lainnya yang seharusnya numerik dikonversi dengan benar.

MEMBERSIHKAN DAN MENSTANDARKAN DATA

data$Risk.Level <- tolower(data$Risk.Level)
data$Risk.Level <- factor(data$Risk.Level, levels = c("low", "high"))
Langkah diatas untuk membersihkan dan menstandarkan data dalam kolom Risk.Level dengan cara mengonversi teks menjadi huruf kecil dan mendefinisikan ulang level faktor.

MENGHAPUS DUPLKAT

data_unique <- unique(data)
ini menggunakan untuk menghapus baris duplikat dalam dataset data.

MEMERIKSA DAN MEMPERBAIKI KESALAHAN PENGERTIAN

unique(data$Country)
##  [1] "AD"    "AE"    "AE-AZ" "AE-RK" "AM"    "AO"    "AR"    "AT"    "AU"   
## [10] "AW"    "AZ"    "BD"    "BE"    "BG"    "BH"    "BJ"    "BO"    "BR"   
## [19] "BY"    "CA"    "CG"    "CH"    "CI"    "CL"    "CM"    "CN"    "CO"   
## [28] "CR"    "CV"    "CY"    "CZ"    "DE"    "DK"    "DO"    "EC"    "EE"   
## [37] "EG"    "ES"    "ET"    "FI"    "FR"    "GA"    "GB"    "GE"    "GH"   
## [46] "GR"    "GT"    "HK"    "HR"    "HU"    "ID"    "IE"    "IL"    "IN"   
## [55] "IQ"    "IS"    "IT"    "JM"    "JO"    "JP"    "KE"    "KR"    "KW"   
## [64] "KZ"    "LK"    "LS"    "LT"    "LU"    "LV"    "MA"    "MK"    "MN"   
## [73] "MO"    "MT"    "MV"    "MX"    "MY"    "MZ"    NA      "NG"    "NI"   
## [82] "NL"    "NO"    "NZ"    "OM"    "PA"    "PE"    "PH"    "PK"    "PL"   
## [91] "PT"    "PY"    "QA"    "RO"    "RS"    "RU"    "RW"    "SA"    "SC"
data$Country [data$Country == "AE-AZ"] <- "AE-AZ"
Baris ini menampilkan semua nilai unik yang ada dalam kolom Country. Ini berguna untuk mengidentifikasi apakah ada kesalahan penulisan (typo) atau variasi dalam penamaan

MENORMALISASIKAN DATA DAN MENYIMPAN DATA YANG SUDAH DI CLEANING

normalize <- function(x) {
  return ((x - min(x)) / (max(x) - min(x)))  
}
for(i in 2:15) {
  data[,i] <- normalize(data[,i]) 
}
write.csv(data, "data_clean.csv", row.names = FALSE)
Bagian ini untuk menormalisasi data. Normalisasi adalah proses mengubah skala nilai ke dalam rentang tertentu, biasanya [0, 1].

MEMASUKAN LIBARY

library(ggplot2)
library(class)
Bagian diatas digunakan untuk berguna untuk membuat grafik dan plot yang informatif dan untuk melakukan klasifikasi.

MELAKUKAN PCA DATA NUMERIK

data_numeric <- data[, 2:14]
pca_result <- prcomp(data_numeric, center = TRUE, scale. = TRUE)
Mengambil kolom numerik dari dataset data untuk dianalisis dengan PCA. Biasanya, kolom pertama adalah ID atau label, sehingga dimulai dari kolom ke-2 hingga ke-14.

VISUALISASI HASIL PCA

pca_data <- as.data.frame(pca_result$x)
pca_data$Risk.Level <- data$Risk.Level

ggplot(pca_data, aes(x = PC1, y = PC2, color = Risk.Level)) +
  geom_point() +
  labs(title = "PCA Biplot", x = "Principal Component 1", y = "Principal Component 2") +
  theme_minimal()

##### Untuk membuat plot dengan komponen utama PC1 dan PC2 sebagai sumbu,menampilkan titik pada plot untuk setiap observasi,menambahkan judul dan label untuk sumbu,menggunakan tema minimal untuk tampilan plot yang lebih bersih.

MENAMBAHKAN KOMPONEN UTAMA KEDATASET ASLI

data$PC1 <- pca_result$x[,1]
data$PC2 <- pca_result$x[,2]
Kolom PC1 dan PC2 dari hasil PCA ditambahkan ke dataset data. Ini akan digunakan dalam analisis selanjutnya, termasuk klasifikasi.

KLASIFIKASI MENGGUNAKAN KNN

set.seed(123)
train_index <- sample(1:nrow(data), 0.7 * nrow(data))
train_data <- data[train_index, ]
test_data <- data[-train_index, ]

knn_model <- knn(train = train_data[, c("PC1", "PC2")], 
                 test = test_data[, c("PC1", "PC2")], 
                 cl = train_data$Risk.Level, k = 3)
untuk pengacakan sehingga hasil yang dihasilkan dapat direproduksi.

HASIL KLASIFIKASI

table(Predicted = knn_model, Actual = test_data$Risk.Level)
##          Actual
## Predicted low high
##      low   12    5
##      high   2   11
Interpretasi Confusion Matrix
1.True Positives (TP): Ini berarti model dengan benar memprediksi 12 kasus sebagai “low”.
2.False Positives (FP): Ini berarti model salah memprediksi 5 kasus sebagai “low” ketika sebenarnya kasus tersebut adalah “high”.
3.False Negatives (FN):Ini menunjukkan bahwa model salah memprediksi 2 kasus sebagai “high” ketika seharusnya diprediksi sebagai “low”.
4.True Negatives (TN): Ini berarti model dengan benar memprediksi 11 kasus sebagai “high”.
Membuat tabel kontingensi (confusion matrix) untuk membandingkan kelas yang diprediksi oleh model KNN dengan kelas sebenarnya dalam data uji.Tabel ini akan menunjukkan berapa banyak prediksi benar (True Positives, True Negatives) dan salah (False Positives, False Negatives) untuk membantu mengevaluasi kinerja model KNN.

INSTALL DAN LOAD LIBARY RANDOM FOREST

library(randomForest)
## randomForest 4.7-1.2
## Type rfNews() to see new features/changes/bug fixes.
## 
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
## 
##     margin
Pada bagian ini yang memuat library randomForest, yang diperlukan untuk menggunakan algoritma Random Forest dalam R.Yang berfungsi ini memastikan bahwa semua fungsi yang ada di dalam paket randomForest tersedia untuk digunakan.

MEMBAGI DATASET MENJADI DATA TRAINING DAN TESTING

set.seed(123)
train_index <- sample(1:nrow(data), 0.7 * nrow(data))
train_data <- data[train_index, ]
test_data <- data[-train_index, ]
Kita perlu memisahkan dataset menjadi data training (70%) dan data testing (30%).Data training digunakan untuk membangun (melatih) model.Data testing digunakan untuk mengevaluasi performa model setelah dilatih.

MEMBUAT MODEL RANDOM FOREST

rf_model <- randomForest(Risk.Level ~ PC1 + PC2, data = train_data, ntree = 100)
Di sini, kita melatih model Random Forest menggunakan data training dengan variabel PC1 dan PC2 (komponen utama dari PCA) sebagai fitur, dan sebagai target yang akan diklasifikasikan.

MELAKUKAN PREDIKSI MENGGUNAKAN DATA TESTING

rf_predictions <- predict(rf_model, test_data)
Langkah ini bertujuan untuk memprediksi nilai kelas dari data testing menggunakan model Random Forest yang sudah dilatih sebelumnya.

MEMBUAT CONFUSION MATRIX

confusion_matrix <- table(Predicted = rf_predictions, Actual = test_data$Risk.Level)
Langkah ini bertujuan untuk membuat confusion matrix, yang merupakan alat evaluasi yang berguna untuk melihat bagaimana performa model dalam memprediksi kelas yang benar.

MENAMPILKAN CONFUSION MARTIX DAN MENGHITUNG AKURASI MODEL

print(confusion_matrix)
##          Actual
## Predicted low high
##      low   13    2
##      high   1   14
accuracy <- sum(diag(confusion_matrix)) / sum(confusion_matrix)
print(paste("Accuracy:", round(accuracy * 100, 2), "%"))
## [1] "Accuracy: 90 %"
Bagaimana ini model memprediksi nilai pada data testing serta menampilkan isi dari variabel confusion_matrix pada layar. Ini memberikan gambaran berapa banyak data yang diprediksi dengan benar dan salah dalam setiap kelas dan Akurasi menunjukkan persentase prediksi yang benar dari total prediksi yang dilakukan.
Model KNN menunjukkan performa yang sangat baik dengan akurasi 90%. Ini berarti model cukup efektif dalam mengklasifikasikan observasi ke dalam kategori low dan high.

MENAMPILKAN HASIL PREDIKSI

new_data <- data[1:17, ]
predictions <- predict(rf_model, new_data)
print(predictions)
##    1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16 
##  low  low  low  low high high high  low  low  low high high  low  low high high 
##   17 
## high 
## Levels: low high
prediksi yang berikan, model Random Forest memprediksi tingkat risiko untuk 17 data yang sudah dibersihkan sebagai berikut:
Risiko rendah (“low”): 10 observasi
Risiko tinggi (“high”): 7 observasi
Model memprediksi risiko untuk setiap data berdasarkan komponen utama (PC1, PC2) yang didapat dari analisis PCA. Komponen-komponen ini digunakan sebagai fitur input untuk klasifikasi menggunakan Random Forest.
Prediksi “low” dan “high” menunjukkan tingkat risiko yang telah diidentifikasi oleh model berdasarkan pola dalam dataset yang digunakan untuk pelatihan.
Distribusi prediksi menunjukkan bahwa model bisa membedakan antara observasi dengan risiko rendah dan tinggi. Dari 17 observasi, 10 diklasifikasikan sebagai “low” (risiko rendah) dan 7 sebagai “high” (risiko tinggi). Ini menunjukkan model mampu mengidentifikasi observasi yang berisiko tinggi dengan tingkat akurasi tertentu.