Simulasi pendapatan karyawan dalam periode bulanan.
Pendapatan karyawan bulanan dimodelkan dengan distribusi normal.
Parameter yang ditentukan yaitu Rp5.000.000. dengan standar deviasi Rp1.000.000.
set.seed(123)
n_employees <- 300
mean_income <- 5000000
sd_income <- 1000000
income_data <- rnorm(n_employees, mean = mean_income, sd = sd_income)
income_data
## [1] 4439524 4769823 6558708 5070508 5129288 6715065 5460916 3734939 4313147
## [10] 4554338 6224082 5359814 5400771 5110683 4444159 6786913 5497850 3033383
## [19] 5701356 4527209 3932176 4782025 3973996 4271109 4374961 3313307 5837787
## [28] 5153373 3861863 6253815 5426464 4704929 5895126 5878133 5821581 5688640
## [37] 5553918 4938088 4694037 4619529 4305293 4792083 3734604 7168956 6207962
## [46] 3876891 4597115 4533345 5779965 4916631 5253319 4971453 4957130 6368602
## [55] 4774229 6516471 3451247 5584614 5123854 5215942 5379639 4497677 4666793
## [64] 3981425 3928209 5303529 5448210 5053004 5922267 7050085 4508969 2690831
## [73] 6005739 4290799 4311991 6025571 4715227 3779282 5181303 4861109 5005764
## [82] 5385280 4629340 5644377 4779513 5331782 6096839 5435181 4674068 6148808
## [91] 5993504 5548397 5238732 4372094 6360652 4399740 7187333 6532611 4764300
## [100] 3973579 4289593 5256884 4753308 4652457 4048381 4954972 4215096 3332058
## [109] 4619773 5918997 4424653 5607964 3382117 4944438 5519407 5301153 5105676
## [118] 4359294 4150296 3975871 5117647 4052525 4509443 4743908 6843862 4348050
## [127] 5235387 5077961 4038143 4928692 6444551 5451504 5041233 4577503 2946753
## [136] 6131337 3539360 5739948 6909104 3556107 5701784 4737803 3427856 3485332
## [145] 3398464 4469093 3538244 5687917 7100109 3712970 5787739 5769042 5332203
## [154] 3991623 4880547 4719605 5562990 4627561 5976973 4625419 6052711 3950823
## [163] 3739845 8241040 4583142 5298228 5636570 4516219 5516862 5368965 4784619
## [172] 5065293 4965933 7128452 4258664 3904004 5037788 5310481 5436523 4541635
## [181] 3936674 6263185 4650350 4134487 4763720 4802824 6109920 5084737 5754054
## [190] 4500708 5214445 4675314 5094584 4104637 3689198 6997213 5600709 3748729
## [199] 4388834 3814520 7198810 6312413 4734855 5543194 4585660 4523753 4211397
## [208] 4405383 6650907 4945972 5119245 5243687 6232476 4483936 4007493 6675697
## [217] 4558837 4276934 3763727 3715284 4426027 5617986 6109848 5707588 4636343
## [226] 5059750 4295404 4282782 5884650 3984407 6955294 4909680 5214539 4261472
## [235] 4425611 3682984 4817075 5418982 5324304 4218464 4211378 4497801 6496061
## [244] 3862696 4820948 6902362 4899025 3640159 4335231 5485460 4624397 4438124
## [253] 4656083 5090497 6598509 4911435 6080799 5630754 4886360 3467098 4478883
## [262] 4510130 5047154 6300199 7293079 6547581 4866849 3243473 4611220 5089207
## [271] 5845013 5962528 5684309 3604726 5849643 4553443 5174803 5074551 5428167
## [280] 5024675 3332525 5736496 5386027 4734348 5118145 5134039 5221019 6640846
## [289] 4780950 5168065 6168384 6054181 6145263 4422532 7002483 5066701 6866852
## [298] 3649097 5020984 6249915
Rata-rata pendapatan karyawan hasil simulasi.
mean_simulated <- mean(income_data)
cat("Rata-rata pendapatan simulasi:", mean_simulated, "\n")
## Rata-rata pendapatan simulasi: 5034441
Hasil simulasi pendapatan karyawan memberikan hasil data rata-rata pendapatan karyawan mendekati nilai rata-rata yang ditentukan yaitu Rp5.000.000.
Jika ingin diketahui probabilitas pendapatan di atas Rp5.000.000, maka dihitung proporsi data yang melebihi nilai tersebut.
# 2. Probabilitas pendapatan di atas Rp5.000.000
prob_above_5m <- sum(income_data > 5000000) / n_employees
cat("Probabilitas pendapatan di atas Rp5.000.000:", prob_above_5m, "\n")
## Probabilitas pendapatan di atas Rp5.000.000: 0.49
Simulasi berikut memodelkan Jumlah Pelanggan yang datang ke suatu sistem antrian dengan distribusi Poisson.
Parameter yang ditentukan yaitu rata-rata jumlah pelanggan yang datang sejumlah 30 pelanggan per hari (lamda).
set.seed(123)
n_days <- 30
lambda_customers <- 30
customers_data <- rpois(n_days, lambda_customers)
customers_data
## [1] 26 36 20 30 39 32 23 20 36 31 32 30 26 37 34 29 25 24 28 24 26 29 23 23 28
## [26] 22 34 34 34 33
Rata-rata jumlah pelanggan datang hasil simulasi.
mean_customers <- mean(customers_data)
cat("Rata-rata jumlah pelanggan simulasi:", mean_customers, "\n")
## Rata-rata jumlah pelanggan simulasi: 28.93333
Dari hasil simulasi terlihat bahwa rata-rata jumlah pelanggan yang datang mendekati nilai lamda yang ditentukan.
Jika ingin diketahui probabilitas jumlah pelanggan datang lebih dari 30, maka dihitung proporsi data yang melebihi nilai tersebut.
prob_above_30 <- sum(customers_data > 30) / n_days
cat("Probabilitas jumlah pelanggan lebih dari 30:", prob_above_30, "\n")
## Probabilitas jumlah pelanggan lebih dari 30: 0.4
Dimiliki kasus
Y : Keputusan menolak/menerima pelamar kerja pada PT A posisi B
X1 : Lama pengalaman kerja sebelumnya (bulan)
X2 : Status pekerjaan saat ini (0: Bekerja, 1: Tidak bekerja)
X3 : Tingkat pendidikan (0: Lulusah Sekolah Menengah, 1: Lulusan Perguruan Tinggi)
X4 : IPK (skala 4)
X1 : Lama pengalaman kerja sebelumnya (bulan)
Membangkitkan variabel X1 dengan lama pekerjaan 0-100 bulan dengan nilai tengah 30 dan banyak pelamar adalah 50
set.seed(123)
n <- 50
u <- runif(n)
x1 <- round(100*(-(log(1-u)/30)))
x1
## [1] 1 5 2 7 9 0 3 7 3 2 10 2 4 3 0 8 1 0 1 10 7 4 3 17 4
## [26] 4 3 3 1 1 11 8 4 5 0 2 5 1 1 1 1 2 2 2 1 0 1 2 1 7
X2 : Status pekerjaan Keterangan yang digunakan
Keterangan: 0=Tidak Bekerja dan 1=Bekerja
set.seed(12345)
x2 <- round(runif(n))
x2
## [1] 1 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1 0 0 1 0 0 1 0 0 1 1
## [39] 1 0 1 0 1 1 0 0 0 0 0 1
X3 : Tingkat pendidikan Keterangan yang digunakan
Keterangan: 0 = lulus SMA/Tidak kuliah dan 1 = lulus kuliah
set.seed(123)
x3 <- round(runif(n))
x3
## [1] 0 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0
## [39] 0 0 0 0 0 0 0 0 0 0 0 1
X4 adalah data IPK Pelamar dengan skala 4
set.seed(222)
x4 <- round(rnorm(n,3,0.5),2)
x4
## [1] 3.74 3.00 3.69 2.81 3.09 2.88 2.39 3.78 3.21 2.40 3.53 2.35 2.65 3.30 2.90
## [16] 2.41 2.00 3.00 3.26 2.63 3.36 3.36 2.67 3.75 2.28 1.92 3.20 2.80 2.85 3.67
## [31] 2.59 3.34 2.89 2.94 2.90 3.20 3.33 3.05 2.91 3.47 3.10 3.25 2.72 3.56 4.10
## [46] 3.16 2.53 3.41 2.81 3.17
Menentukan koefisien persamaan regresi
b0 <- -8
b1 <- 2.5
b2 <- 0.5
b3 <- 1.7
b4 <- 2.8
set.seed(1)
datapendukung <- b0+(b1*x1)+(b2*x2)+(b3*x3)+(b4*x4)
datapendukung
## [1] 5.472 15.100 7.832 19.568 24.852 0.064 7.892 22.284 10.688 4.220
## [11] 28.584 3.580 11.620 10.440 0.120 20.448 0.100 0.400 3.628 26.564
## [21] 20.608 13.108 9.176 47.200 10.584 9.076 10.660 9.540 2.480 4.776
## [31] 28.952 23.052 11.792 14.932 0.120 5.960 16.024 3.540 3.148 4.216
## [41] 3.680 6.100 5.116 7.468 5.980 0.848 1.584 6.548 2.368 20.576
p <- exp(datapendukung)/(1+exp(datapendukung))
p
## [1] 0.9958148 0.9999997 0.9996033 1.0000000 1.0000000 0.5159945 0.9996264
## [8] 1.0000000 0.9999772 0.9855143 1.0000000 0.9728803 0.9999910 0.9999708
## [15] 0.5299641 1.0000000 0.5249792 0.5986877 0.9741184 1.0000000 1.0000000
## [22] 0.9999980 0.9998965 1.0000000 0.9999747 0.9998856 0.9999765 0.9999281
## [29] 0.9227278 0.9916408 1.0000000 1.0000000 0.9999924 0.9999997 0.5299641
## [36] 0.9974267 0.9999999 0.9718047 0.9588298 0.9854571 0.9753976 0.9977622
## [43] 0.9940358 0.9994293 0.9974776 0.7001474 0.8297703 0.9985691 0.9143544
## [50] 1.0000000
set.seed(2)
y <- rbinom(n,1,p)
y
## [1] 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
## [39] 1 1 1 1 1 1 1 0 1 1 1 1
datagab <- data.frame(y,x1,x2,x3,x4)
datagab
## y x1 x2 x3 x4
## 1 1 1 1 0 3.74
## 2 1 5 1 1 3.00
## 3 1 2 1 0 3.69
## 4 1 7 1 1 2.81
## 5 1 9 0 1 3.09
## 6 0 0 0 0 2.88
## 7 1 3 0 1 2.39
## 8 1 7 1 1 3.78
## 9 1 3 1 1 3.21
## 10 1 2 1 0 2.40
## 11 1 10 0 1 3.53
## 12 1 2 0 0 2.35
## 13 1 4 1 1 2.65
## 14 1 3 0 1 3.30
## 15 1 0 0 0 2.90
## 16 1 8 0 1 2.41
## 17 0 1 0 0 2.00
## 18 1 0 0 0 3.00
## 19 1 1 0 0 3.26
## 20 1 10 1 1 2.63
## 21 1 7 0 1 3.36
## 22 1 4 0 1 3.36
## 23 1 3 1 1 2.67
## 24 1 17 1 1 3.75
## 25 1 4 1 1 2.28
## 26 1 4 0 1 1.92
## 27 1 3 1 1 3.20
## 28 1 3 1 1 2.80
## 29 1 1 0 0 2.85
## 30 1 1 0 0 3.67
## 31 1 11 1 1 2.59
## 32 1 8 0 1 3.34
## 33 1 4 0 1 2.89
## 34 1 5 1 1 2.94
## 35 0 0 0 0 2.90
## 36 1 2 0 0 3.20
## 37 1 5 1 1 3.33
## 38 1 1 1 0 3.05
## 39 1 1 1 0 2.91
## 40 1 1 0 0 3.47
## 41 1 1 1 0 3.10
## 42 1 2 0 0 3.25
## 43 1 2 1 0 2.72
## 44 1 2 1 0 3.56
## 45 1 1 0 0 4.10
## 46 0 0 0 0 3.16
## 47 1 1 0 0 2.53
## 48 1 2 0 0 3.41
## 49 1 1 0 0 2.81
## 50 1 7 1 1 3.17
Memodelkan data hasil simulasi dengan menggunakan analisis regresi logistik.
modelreglog <- glm(y~x1+x2+x3+x4, family = binomial(link = "logit"), data=datagab)
## Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
Menampilkan hasil analisis regresi logistik.
summary(modelreglog)
##
## Call:
## glm(formula = y ~ x1 + x2 + x3 + x4, family = binomial(link = "logit"),
## data = datagab)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -19.002 13.589 -1.398 0.162
## x1 5.033 3.508 1.435 0.151
## x2 15.205 7334.174 0.002 0.998
## x3 7.414 5849.288 0.001 0.999
## x4 6.258 4.565 1.371 0.170
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 27.877 on 49 degrees of freedom
## Residual deviance: 8.511 on 45 degrees of freedom
## AIC: 18.511
##
## Number of Fisher Scoring iterations: 21