Email: imeldasianturi85@gmail.com
RPubs: https://rpubs.com/akun-rpubs-anda/
Dalam proyek ini saya memberikan anda dataset insurance.csv, informasi lanjut mengenai data ini dapat anda baca di Kaggle.
Tugas kalian adalah sebagai berikut:
Berikut adalah Informasi yang telah diringkas:
## [1] 1338 7
## [1] "age" "sex" "bmi" "children" "smoker" "region" "charges"
| Variabel | Deskripsi |
|---|---|
| age | age of primary beneficiary |
| sex | insurance contractor gender, female, male |
| bmi | body mass index, providing an understanding of body, weights that are relatively high or low |
| children | Number of children covered by health insurance / Number of dependents |
| smoker | Smoking |
| region | The beneficiary’s residential area in the US, northeast, southeast, southwest, northwest |
| charges | Individual medical costs billed by health insurance |
data_insurance$sex <- as.factor(data_insurance$sex)
data_insurance$smoker <- as.factor(data_insurance$smoker)
data_insurance$region <- as.factor(data_insurance$region)
rmarkdown::paged_table(data_insurance)## age sex bmi children smoker region charges
## 0 0 0 0 0 0 0
data.frame(
row_of_data = data_insurance %>% nrow (),
row_of_unique.data = data_insurance %>% distinct() %>% nrow()
)## row_of_data row_of_unique.data
## 1 1338 1337
Dikarenakan terdapat data yang duplikat, maka kita harus menghilangkan salah satu data nya
data_insurance <- data_insurance[!duplicated(data_insurance), ]
data.frame(
row_of_data = data_insurance %>% nrow (),
row_of_unique.data = data_insurance %>% distinct() %>% nrow()
)## row_of_data row_of_unique.data
## 1 1337 1337
## age sex bmi children smoker
## Min. :18.00 female:662 Min. :15.96 Min. :0.000 no :1063
## 1st Qu.:27.00 male :675 1st Qu.:26.29 1st Qu.:0.000 yes: 274
## Median :39.00 Median :30.40 Median :1.000
## Mean :39.22 Mean :30.66 Mean :1.096
## 3rd Qu.:51.00 3rd Qu.:34.70 3rd Qu.:2.000
## Max. :64.00 Max. :53.13 Max. :5.000
## region charges
## northeast:324 Min. : 1122
## northwest:324 1st Qu.: 4746
## southeast:364 Median : 9386
## southwest:325 Mean :13279
## 3rd Qu.:16658
## Max. :63770
Distribusi usia anggota asuransi relatif sama, kecuali anggota 18 dan 19 tahun yang memiliki populasi lebih tinggi (di atas 60). Saya juga membuat kelompok usia anggota pada tabel di bawah ini.
## Agecut total
## 1 [15,20] 165
## 2 (20,25] 140
## 3 (25,30] 138
## 4 (30,35] 130
## 5 (35,40] 127
## 6 (40,45] 137
## 7 (45,50] 144
## 8 (50,55] 140
## 9 (55,60] 125
## 10 (60,65] 91
Jenis kelamin peserta asuransi hampir sama (laki-laki = 675 orang & perempuan = 662 orang).
Wilayah tempat tinggal anggota asuransi tersebar merata.
Banyak anggotanya bukan perokok (79,5% atau 1064 orang) dan sisanya adalah perokok.
Dalam data tersebut, sebanyak 573 orang peserta jaminan kesehatan belum memiliki anak
Indeks massa tubuh anggota terdistribusi normal.
Distribusi biaya medis individu yang ditagih oleh asuransi kesehatan memiliki kecenderungan positif.
Dari Analisis yang telah saya lakukan diatas, saya dapat memberikan informasi penting mengenai asuransi kesehatan, yaitu;
Sex tidak memberikan dampak kepada biaya asuransi pengobatan, karena baik perempuan maupun laki-laki memiliki distribusi yang sama.Region atau wilayah juga tidak memberikan dampak yang besar dalam penentuan biaya asuransi pengobatan, karena dari 4 wilayah yang tercantum dalam data, semuanya memiliki distribusi yang sama.Smoker memberikan dampak dalam menentukan biaya asuransi pengobatan, mengapa? karena distribusi datanya menunjukkan perbedaan yang sangat signifikan.children tidak semua faktor memberikan dampak, kecuali orang yang jumlah anaknya nol (tidak memiliki anak). Jadi, jika tidak memiliki anak maka akan berdampak pada asuransi biaya pengobatan.Berdasarkan beberapa informasi di atas, saya bisa memberikan kesimpulan bahwa variabel smoker, total children, age, BMI akan memberikan dampak pada biaya asuransi pengobatan, variabel itu semualah yang jadi penentuan berapa total biaya yang harus dikeluarkan nasabah.
Karena variabel Perokok (smoker), Anak (Children), dan BMI berpengaruh terhadap asuransi biaya pengobatan, saya mengelompokkan faktor-faktor tersebut ke dalam 8 kategori yang ditunjukkan pada sub-bab di bawah ini. Akhirnya, saya hanya memiliki usia atau dan BMI sebagai variabel input untuk persamaan prediksi saya. Persamaan akan ditampilkan di sub-bab, jadi Anda perlu memeriksanya.
Kategori - 1 : Merokok, Tidak ada anak, BMI dibawah 30.
Kategori - 2 : Merokok, Tidak ada anak, BMI diatas 30.
Kategori - 3 : Merokok, Memiliki anak, BMI dibawah 30.
Kategori - 4 : Merokok, Memiliki anak, BMI diatas 30.
Kategori - 5 : Tidak Merokok, Tidak ada anak, BMI dibawah 30.
Kategori - 6 : Tidak Merokok, Tidak ada anak, BMI diatas 30.
Kategori - 7 : Tidak Merokok, Memiliki anak, BMI dbawah 30.
Kategori - 8 : Tidak Merokok, Memiliki anak, BMI diatas 30.
Merokok, Tidak ada anak, BMI dibawah 30
Tampilan grafik Age vs Charges dapat didekati dengan menggunakan regresi linier.
BMI vs Charges terlihat memiliki korelasi yang tidak teratur.
##
## Call:
## lm(formula = charges ~ age, data = ins_smoker_nochild_under30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5740.7 -2372.9 -776.5 612.0 17119.6
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 11970.56 1454.78 8.228 5.55e-11 ***
## age 252.39 36.25 6.962 5.70e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4276 on 52 degrees of freedom
## Multiple R-squared: 0.4824, Adjusted R-squared: 0.4725
## F-statistic: 48.46 on 1 and 52 DF, p-value: 5.696e-09
##
## Call:
## lm(formula = charges ~ age + bmi, data = ins_smoker_nochild_under30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2539.3 -1754.2 -1059.9 -203.1 15678.0
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -956.74 5104.29 -0.187 0.8521
## age 251.20 34.35 7.312 1.75e-09 ***
## bmi 505.18 192.06 2.630 0.0112 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4051 on 51 degrees of freedom
## Multiple R-squared: 0.5442, Adjusted R-squared: 0.5264
## F-statistic: 30.45 on 2 and 51 DF, p-value: 1.985e-09
Dari kedua ringkasan tersebut, saya memutuskan untuk menggunakan regresi linier dengan 2 variabel (umur dan BMI) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
-956.74 + (251.20 * AGE) + (505.18 * BMI)
Merokok, Tidak ada anak, BMI diatas 30.
Tampilan grafik Age vs Charges dapat didekati dengan menggunakan regresi linier.
BMI vs Charges terlihat memiliki korelasi yang tidak teratur.
##
## Call:
## lm(formula = charges ~ age, data = ins_smoker_nochild_over30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -19722 -2239 -1235 786 19807
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 28983.17 1737.81 16.678 < 2e-16 ***
## age 306.74 43.38 7.071 2.05e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5361 on 59 degrees of freedom
## Multiple R-squared: 0.4587, Adjusted R-squared: 0.4495
## F-statistic: 50 on 1 and 59 DF, p-value: 2.05e-09
##
## Call:
## lm(formula = charges ~ age + bmi, data = ins_smoker_nochild_over30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -16667.0 -1505.1 -737.2 47.9 22684.4
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8120.10 5338.78 1.521 0.133702
## age 292.16 38.73 7.544 3.57e-10 ***
## bmi 614.01 150.40 4.082 0.000138 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4766 on 58 degrees of freedom
## Multiple R-squared: 0.5795, Adjusted R-squared: 0.565
## F-statistic: 39.97 on 2 and 58 DF, p-value: 1.225e-11
Dari kedua ringkasan tersebut, saya memutuskan untuk menggunakan regresi linier dengan 2 variabel (Age dan BMI) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
8120.10 + (292.16 * AGE) + (614.01 * BMI)
Merokok, Memiliki anak, BMI dibawah 30.
Tampilan grafik Age vs Charges dapat didekati dengan menggunakan regresi linier.
BMI vs Charges terlihat memiliki korelasi yang tidak teratur.
##
## Call:
## lm(formula = charges ~ age, data = ins_smoker_child_under30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4651.4 -1487.2 -352.5 637.6 15865.3
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 10842.61 1332.43 8.137 7.77e-12 ***
## age 274.71 33.18 8.280 4.19e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3199 on 73 degrees of freedom
## Multiple R-squared: 0.4843, Adjusted R-squared: 0.4772
## F-statistic: 68.56 on 1 and 73 DF, p-value: 4.194e-12
##
## Call:
## lm(formula = charges ~ age + bmi, data = ins_smoker_child_under30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2741.8 -1070.1 -608.8 -5.2 15619.8
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2428.48 2769.81 0.877 0.3835
## age 259.48 31.33 8.282 4.56e-12 ***
## bmi 359.27 105.64 3.401 0.0011 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2989 on 72 degrees of freedom
## Multiple R-squared: 0.5557, Adjusted R-squared: 0.5433
## F-statistic: 45.02 on 2 and 72 DF, p-value: 2.075e-13
Dari kedua ringkasan tersebut, saya memutuskan untuk menggunakan regresi linier dengan 2 variabel (Age dan BMI) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
2428.48 + (259.48 * AGE) + (359.27 * BMI)
Merokok, Memiliki anak, BMI diatas 30.
Tampilan grafik Age vs Charges dapat didekati dengan menggunakan regresi linier.
BMI vs Charges terlihat memiliki korelasi yang tidak teratur.
##
## Call:
## lm(formula = charges ~ age, data = ins_smoker_child_over30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4354.3 -2271.4 -859.3 1174.1 18445.4
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 32648.20 1361.98 23.971 < 2e-16 ***
## age 241.21 31.86 7.572 4.89e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3723 on 82 degrees of freedom
## Multiple R-squared: 0.4115, Adjusted R-squared: 0.4043
## F-statistic: 57.34 on 1 and 82 DF, p-value: 4.889e-11
##
## Call:
## lm(formula = charges ~ age + bmi, data = ins_smoker_child_over30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2212.2 -1334.7 -653.6 40.7 17621.6
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 16021.03 3341.64 4.794 7.30e-06 ***
## age 253.72 27.69 9.162 3.81e-14 ***
## bmi 447.91 84.22 5.318 9.08e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3225 on 81 degrees of freedom
## Multiple R-squared: 0.5638, Adjusted R-squared: 0.553
## F-statistic: 52.35 on 2 and 81 DF, p-value: 2.553e-15
Dari kedua ringkasan tersebut, saya memutuskan untuk menggunakan regresi linier dengan 2 variabel (Age dan BMI) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
16021.03 + (253.72 * AGE) + (447.91 * BMI)
Tidak Merokok, Tidak ada anak, BMI dibawah 30.
Tampilan grafik Age vs Charges dapat didekati dengan menggunakan regresi linier.
BMI vs Charges terlihat memiliki korelasi yang tidak teratur.
##
## Call:
## lm(formula = charges ~ age, data = ins_nonsmoker_nochild_under30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2428.1 -1440.0 -886.5 -391.6 21672.8
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3239.15 687.81 -4.709 4.43e-06 ***
## age 277.00 16.79 16.495 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3950 on 217 degrees of freedom
## Multiple R-squared: 0.5563, Adjusted R-squared: 0.5543
## F-statistic: 272.1 on 1 and 217 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = charges ~ age + bmi, data = ins_nonsmoker_nochild_under30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2457.4 -1453.0 -852.6 -391.1 21715.4
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3791.02 2191.60 -1.730 0.0851 .
## age 276.56 16.91 16.354 <2e-16 ***
## bmi 22.40 84.44 0.265 0.7911
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3958 on 216 degrees of freedom
## Multiple R-squared: 0.5565, Adjusted R-squared: 0.5524
## F-statistic: 135.5 on 2 and 216 DF, p-value: < 2.2e-16
Dari kedua ringkasan tersebut, saya memutuskan untuk menggunakan regresi linier dengan 1 variabel (Age) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
-3239.15 + (277.00 * AGE)
Tidak Merokok, Tidak ada anak, BMI diatas 30.
Tampilan grafik Age vs Charges dapat didekati dengan menggunakan regresi linier.
BMI vs Charges terlihat memiliki korelasi yang tidak teratur.
##
## Call:
## lm(formula = charges ~ age, data = ins_nonsmoker_nochild_over30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2601 -1680 -1101 -365 20402
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2138.96 639.67 -3.344 0.00096 ***
## age 253.69 14.73 17.219 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3868 on 237 degrees of freedom
## Multiple R-squared: 0.5558, Adjusted R-squared: 0.5539
## F-statistic: 296.5 on 1 and 237 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = charges ~ age + bmi, data = ins_nonsmoker_nochild_over30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2825.0 -1641.6 -1087.4 -382.4 20308.3
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -392.10 2335.28 -0.168 0.867
## age 254.50 14.78 17.217 <2e-16 ***
## bmi -50.42 64.82 -0.778 0.437
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3872 on 236 degrees of freedom
## Multiple R-squared: 0.5569, Adjusted R-squared: 0.5532
## F-statistic: 148.3 on 2 and 236 DF, p-value: < 2.2e-16
Dari kedua ringkasan tersebut, saya memutuskan untuk menggunakan regresi linier dengan 1 variabel (Age) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
-2155.79 + (254.01 * AGE)
Tidak Merokok, Memiliki anak, BMI dbawah 30.
Tampilan grafik Age vs Charges dapat didekati dengan menggunakan regresi linier.
BMI vs Charges terlihat memiliki korelasi yang tidak teratur.
##
## Call:
## lm(formula = charges ~ age, data = ins_nonsmoker_child_under30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3050 -2080 -1578 -808 22413
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -884.08 1029.59 -0.859 0.391
## age 247.85 25.87 9.581 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4975 on 281 degrees of freedom
## Multiple R-squared: 0.2462, Adjusted R-squared: 0.2436
## F-statistic: 91.8 on 1 and 281 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = charges ~ age + bmi, data = ins_nonsmoker_child_under30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3255.8 -2178.9 -1528.4 -664.9 22367.6
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2835.49 2564.04 -1.106 0.270
## age 245.27 26.07 9.408 <2e-16 ***
## bmi 79.79 96.01 0.831 0.407
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4978 on 280 degrees of freedom
## Multiple R-squared: 0.2481, Adjusted R-squared: 0.2427
## F-statistic: 46.19 on 2 and 280 DF, p-value: < 2.2e-16
Dari kedua ringkasan tersebut, saya memutuskan untuk menggunakan regresi linier dengan 1 variabel (Age) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
-884.08 + (247.85 * AGE)
Tidak Merokok, Memiliki anak, BMI diatas 30.
Tampilan grafik Age vs Charges dapat didekati dengan menggunakan regresi linier.
BMI vs Charges terlihat memiliki korelasi yang tidak teratur.
##
## Call:
## lm(formula = charges ~ age, data = ins_nonsmoker_child_over30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3138.6 -2283.0 -1647.7 -746.8 24235.0
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2161.36 1041.35 -2.076 0.0387 *
## age 282.54 24.23 11.660 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5250 on 320 degrees of freedom
## Multiple R-squared: 0.2982, Adjusted R-squared: 0.296
## F-statistic: 136 on 1 and 320 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = charges ~ age + bmi, data = ins_nonsmoker_child_over30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3320.7 -2278.4 -1636.0 -711.3 24252.0
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -923.87 2648.40 -0.349 0.727
## age 283.07 24.28 11.658 <2e-16 ***
## bmi -35.83 70.50 -0.508 0.612
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5256 on 319 degrees of freedom
## Multiple R-squared: 0.2988, Adjusted R-squared: 0.2944
## F-statistic: 67.95 on 2 and 319 DF, p-value: < 2.2e-16
Dari kedua ringkasan tersebut, saya memutuskan untuk menggunakan regresi linier dengan 1 variabel (umur) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
-2161.36 + (282.54 * AGE)
Dari pengelompokan persamaan, saya membuat fungsi untuk memprediksi muatan. Fungsinya terlihat seperti:
predict <- function(x){
for(i in 1:nrow(x)){
if(x[i,"smoker"] == "yes" && x[i,"children"] == 0 && x[i,"bmi"] < 30){
x[i,"result"] = -956.74 + (251.20*x[i,"age"]) + (505.18*x[i,"bmi"])
} else if(x[i,"smoker"] == "yes" && x[i,"children"] == 0 && x[i,"bmi"] >= 30) {
x[i,"result"] = 8120.10 + (292.16*x[i,"age"]) + (614.01*x[i,"bmi"])
} else if(x[i,"smoker"] == "yes" && x[i,"children"] > 0 && x[i,"bmi"] < 30){
x[i,"result"] = 2428.48 + (259.48*x[i,"age"]) + (359.27*x[i,"bmi"])
} else if(x[i,"smoker"] == "yes" && x[i,"children"] > 0 && x[i,"bmi"] >= 30){
x[i,"result"] = 16021.03 + (253.72*x[i,"age"]) + (447.91*x[i,"bmi"])
} else if(x[i,"smoker"] == "no" && x[i,"children"] == 0 && x[i,"bmi"] < 30){
x[i,"result"] = -3239.15 + (277.00*x[i,"age"])
} else if(x[i,"smoker"] == "no" && x[i,"children"] == 0 && x[i,"bmi"] >= 30){
x[i,"result"] = -2155.79 + (254.01*x[i,"age"])
} else if(x[i,"smoker"] == "no" && x[i,"children"] > 0 && x[i,"bmi"] < 30){
x[i,"result"] = -884.08 + (247.85*x[i,"age"])
} else {
x[i,"result"] = -2161.36 + (282.54*x[i,"age"])
}
}
return(x)
}Dan hasil prediksi saya terlihat pada tabel di bawah ini
Root Mean Square Error dari prediksi saya:
## [1] 4439.137
Nilai kesalahan rata-rata dari prediksi saya adalah tentang plus minus 4437.56
The Mean Absolute Percent Error dari prediksi saya:
## [1] 0.2669668
Rata-rata persentase kesalahan prediksi saya adalah 26.7%
Jimmy, 20 tahun, 45.300 BMI, Tidak ada anak, Tidak merokok, dan tinggal di northeast.
Lucy, 45 years old, 43.761 BMI, Memiliki 2 anak, perokok, dan tinggal di southeast.
Sekarang, kita bisa menjawab pertanyaan tersebut dengan fungsi ini:
predict_charge <- function(age, bmi, children, smoker){
if(smoker == "yes" && children == 0 && bmi < 30){
result = -956.74 + (251.20*age) + (505.18*bmi)
} else if(smoker == "yes" && children == 0 && bmi >= 30) {
result = 8120.10 + (292.16*age) + (614.01*bmi)
} else if(smoker == "yes" && children > 0 && bmi < 30){
result = 2428.48 + (259.48*age) + (359.27*bmi)
} else if(smoker == "yes" && children > 0 && bmi >= 30){
result = 16021.03 + (253.72*age) + (447.91*bmi)
} else if(smoker == "no" && children == 0 && bmi < 30){
result = -3239.15 + (277.00*age)
} else if(smoker == "no" && children == 0 && bmi >= 30){
result = -2155.79 + (254.01*age)
} else if(smoker == "no" && children > 0 && bmi < 30){
result = -884.08 + (247.85*age)
} else {
result = -2161.36 + (282.54*age)
}
return(result)
}Biaya Asuransi Pengobatan untuk Jimmy:
## [1] 2924.41
Biaya Asuransi Pengobatan untuk Lucy:
## [1] 47039.42
Suatu perusahaan di Amerika Serikat ingin mempekerjakan seseorang dari luar Amerika Serikat untuk posisi teknis, mereka perlu mengajukan aplikasi ke pemerintah Amerika Serikat untuk mendapatkan kartu hijau atau visa bagi pelamar asing. Untuk menunjukkan ekuitas bagi karyawan AS dan non-AS, perusahaan perlu menyatakan seberapa banyak mereka bersedia membayar karyawan ketika mereka mengajukan permohonan visa atau kartu hijau. Sementara itu, mereka perlu memberikan jumlah rata-rata, yang disebut “prevailing wage” seorang karyawan dengan keterampilan dan latar belakang serupa biasanya dibayar untuk posisi yang sama.
Perbedaan antara upah yang dibayar dan upah yang berlaku dapat menunjukkan apakah perusahaan AS bersedia membayar lebih banyak gaji kepada karyawan non-AS. Gaji lebih banyak untuk calon karyawan asing akan menarik. Selain itu, perlu diperhatikan bahwa untuk area dan pekerjaan yang berbeda, gaji dapat menunjukkan perbedaan. Oleh karena itu perlu untuk mencari tahu hubungan antara gaji, area dan posisi dapat membantu karyawan non-AS untuk memilih pekerjaan di AS.
Berdasarkan klasifikasi VISA yang mereka miliki disimpulkan bahwa ada lima jenis yang berbeda: “green card”, “H-1B”, “H-1B1 Chile”, “H- 1B1 Singapore” dan “E-3 Australia”. Untuk projek ini, silahkan anda memilih kelas VISA “H-1B” untuk melakukan data mentah pelamar yang berpenduduk tetap tahun 2018 atau 2019. Kalian dapat mendwonload Data asli yang dikumpulkan oleh Kantor Sertifikasi Tenaga Kerja Asing Departemen Tenaga Kerja AS
Jawab
Saya hanya menggunakan 500 data teratas dari dataset yang ada.
## # A tibble: 6 x 260
## CASE_NUMBER CASE_STATUS CASE_SUBMITTED DECISION_DATE
## <chr> <chr> <dttm> <dttm>
## 1 I-200-1609~ WITHDRAWN 2016-04-08 00:00:00 2019-04-30 00:00:00
## 2 I-203-1718~ WITHDRAWN 2017-07-14 00:00:00 2019-05-13 00:00:00
## 3 I-203-1722~ WITHDRAWN 2017-08-23 00:00:00 2019-04-30 00:00:00
## 4 I-203-1735~ WITHDRAWN 2017-12-22 00:00:00 2019-08-20 00:00:00
## 5 I-203-1800~ WITHDRAWN 2018-01-10 00:00:00 2019-04-15 00:00:00
## 6 I-200-1815~ WITHDRAWN 2018-05-30 00:00:00 2019-08-08 00:00:00
## # ... with 256 more variables: ORIGINAL_CERT_DATE <dttm>, VISA_CLASS <chr>,
## # JOB_TITLE <chr>, SOC_CODE <chr>, SOC_TITLE <chr>, FULL_TIME_POSITION <chr>,
## # PERIOD_OF_EMPLOYMENT_START_DATE <chr>, PERIOD_OF_EMPLOYMENT_END_DATE <chr>,
## # TOTAL_WORKER_POSITIONS <chr>, NEW_EMPLOYMENT <chr>,
## # CONTINUED_EMPLOYMENT <chr>, CHANGE_PREVIOUS_EMPLOYMENT <chr>,
## # NEW_CONCURRENT_EMPLOYMENT <chr>, CHANGE_EMPLOYER <chr>,
## # AMENDED_PETITION <chr>, EMPLOYER_NAME <chr>, EMPLOYER_BUSINESS_DBA <chr>,
## # EMPLOYER_ADDRESS1 <chr>, EMPLOYER_ADDRESS2 <chr>, EMPLOYER_CITY <chr>,
## # EMPLOYER_STATE <chr>, EMPLOYER_POSTAL_CODE <chr>, EMPLOYER_COUNTRY <chr>,
## # EMPLOYER_PROVINCE <chr>, EMPLOYER_PHONE <chr>, EMPLOYER_PHONE_EXT <chr>,
## # NAICS_CODE <chr>, AGENT_REPRESENTING_EMPLOYER <chr>,
## # AGENT_ATTORNEY_LAW_FIRM_BUSINESS_NAME <chr>, AGENT_ATTORNEY_ADDRESS1 <chr>,
## # AGENT_ATTORNEY_ADDRESS2 <chr>, AGENT_ATTORNEY_CITY <chr>,
## # AGENT_ATTORNEY_STATE <chr>, AGENT_ATTORNEY_POSTAL_CODE <chr>,
## # AGENT_ATTORNEY_COUNTRY <chr>, AGENT_ATTORNEY_PROVINCE <chr>,
## # AGENT_ATTORNEY_PHONE <chr>, AGENT_ATTORNEY_PHONE_EXT <chr>,
## # STATE_OF_HIGHEST_COURT <chr>, NAME_OF_HIGHEST_STATE_COURT <chr>,
## # WORKSITE_WORKERS_1 <dbl>, SECONDARY_ENTITY_1 <chr>,
## # SECONDARY_ENTITY_BUSINESS_NAME_1 <chr>, WORKSITE_ADDRESS1_1 <chr>,
## # WORKSITE_ADDRESS2_1 <chr>, WORKSITE_CITY_1 <chr>, WORKSITE_COUNTY_1 <chr>,
## # WORKSITE_STATE_1 <chr>, WORKSITE_POSTAL_CODE_1 <chr>,
## # WAGE_RATE_OF_PAY_FROM_1 <chr>, WAGE_RATE_OF_PAY_TO_1 <chr>,
## # WAGE_UNIT_OF_PAY_1 <chr>, PREVAILING_WAGE_1 <chr>, PW_UNIT_OF_PAY_1 <chr>,
## # PW_TRACKING_NUMBER_1 <chr>, PW_WAGE_LEVEL_1 <chr>, PW_OES_YEAR_1 <chr>,
## # PW_OTHER_SOURCE_1 <chr>, `PW_NON-OES_YEAR_1` <dbl>,
## # PW_SURVEY_PUBLISHER_1 <dbl>, PW_SURVEY_NAME_1 <chr>,
## # WORKSITE_WORKERS_2 <dbl>, SECONDARY_ENTITY_2 <chr>,
## # SECONDARY_ENTITY_BUSINESS_NAME_2 <chr>, WORKSITE_ADDRESS1_2 <chr>,
## # WORKSITE_ADDRESS2_2 <chr>, WORKSITE_CITY_2 <chr>, WORKSITE_COUNTY_2 <chr>,
## # WORKSITE_STATE_2 <chr>, WORKSITE_POSTAL_CODE_2 <chr>,
## # WAGE_RATE_OF_PAY_FROM_2 <chr>, WAGE_RATE_OF_PAY_TO_2 <chr>,
## # WAGE_UNIT_OF_PAY_2 <chr>, PREVAILING_WAGE_2 <chr>, PW_UNIT_OF_PAY_2 <chr>,
## # PW_TRACKING_NUMBER_2 <chr>, PW_WAGE_LEVEL_2 <chr>, PW_OES_YEAR_2 <chr>,
## # PW_OTHER_SOURCE_2 <chr>, `PW_NON-OES_YEAR_2` <dbl>,
## # PW_SURVEY_PUBLISHER_2 <dbl>, PW_SURVEY_NAME_2 <chr>,
## # WORKSITE_WORKERS_3 <dbl>, SECONDARY_ENTITY_3 <chr>,
## # SECONDARY_ENTITY_BUSINESS_NAME_3 <chr>, WORKSITE_ADDRESS1_3 <chr>,
## # WORKSITE_ADDRESS2_3 <chr>, WORKSITE_CITY_3 <chr>, WORKSITE_COUNTY_3 <chr>,
## # WORKSITE_STATE_3 <chr>, WORKSITE_POSTAL_CODE_3 <dbl>,
## # WAGE_RATE_OF_PAY_FROM_3 <chr>, WAGE_RATE_OF_PAY_TO_3 <chr>,
## # WAGE_UNIT_OF_PAY_3 <chr>, PREVAILING_WAGE_3 <dbl>, PW_UNIT_OF_PAY_3 <chr>,
## # PW_TRACKING_NUMBER_3 <lgl>, PW_WAGE_LEVEL_3 <chr>, PW_OES_YEAR_3 <lgl>,
## # PW_OTHER_SOURCE_3 <lgl>, ...
library(dplyr)
data1 <- dplyr::select(datah1b, CASE_STATUS, VISA_CLASS, JOB_TITLE, EMPLOYER_CITY)
data2 <- dplyr::filter(data1, VISA_CLASS == "H-1B")
data2## # A tibble: 304 x 4
## CASE_STATUS VISA_CLASS JOB_TITLE EMPLOYER_CITY
## <chr> <chr> <chr> <chr>
## 1 WITHDRAWN H-1B ASSOCIATE CREATIVE DIRECTOR NEW YORK
## 2 WITHDRAWN H-1B GLOBAL BRAND SUPERVISOR NEW YORK
## 3 WITHDRAWN H-1B DIRECTOR OF BUSINESS DEVELOPMENT EL SEGUNDO
## 4 WITHDRAWN H-1B HEAD OF BUSINESS DEVELOPMENT SAN FRANCISCO
## 5 WITHDRAWN H-1B ACCOUNT DIRECTOR, SOCIAL MEDIA LOS ANGELES
## 6 WITHDRAWN H-1B PRODUCT MARKETING MANAGER FREMONT
## 7 WITHDRAWN H-1B ASSOCIATE ACCOUNT STRATEGY MANAGER CHICAGO
## 8 WITHDRAWN H-1B SENIOR MANAGER, LOYALTY ALAMEDA
## 9 WITHDRAWN H-1B PROMOTIONS & MARKETING MANAGER LOMBARD
## 10 WITHDRAWN H-1B ENGAGEMENT MARKETING ASSOCIATE SALT LAKE CITY
## # ... with 294 more rows