Email: email-anda@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:
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
Jawaban
library(dplyr) #data manipulation
library(ggplot2) #data visualization
library(DT) #beautify the data table
library(plotly) #make a pie chart
library(Metrics) #find error value
library(tidyverse)
library(yardstick)
library(data.table)
library(paletti)
library(GGally)
library(plotly)
library(rsample) # Initial Split
library(partykit)
library(rpart) # Decision Tree
library(rpart.plot) # Decision Tree
library(caret) # Confussion Matrix
library(randomForest) # random forest
library(devtools)
#devtools::install_github('skinner927/reprtree')
#library(reprtree)
library(e1071) # naive bayes
library(nnet) # multinomial logistic regression
library(gridExtra)
library(grid)
library(knitr)
library(kableExtra)
library(cowplot)
library(formattable)
#COLORS
library(ggthemes)
library(paletti)
# WARNA
mycolorfill = c(
light_blue="#2f4b7c",
smooth_blue ="#4B87CB",
light_purple ="#665191",
dark_pink="#a05195",
light_pink="#d45087",
light_red="#f95d6a",
dark_orange="#ff6347",
semi_orange="#e79658",
orange="#dda15a",
cream="#b59378",
dark_cream="#A57F5F",
choc="#85664B",
dark_choc="#6b5340",
light_orange="#ff7c43"
)
#viz_palette(mycolorfill)
mycolor_fill <- get_scale_fill(get_pal(mycolorfill))
mycolor_color <- get_scale_color(get_pal(mycolorfill))
mycolor_hex <- get_hex(mycolorfill)Asuransi kesehatan adalah asuransi yang menanggung seluruh atau sebagian dari risiko seseorang yang menimbulkan biaya pengobatan, menyebarkan risiko tersebut ke sejumlah besar orang. Dengan memperkirakan keseluruhan risiko perawatan kesehatan dan biaya sistem kesehatan di atas kumpulan risiko, perusahaan asuransi dapat mengembangkan struktur keuangan rutin, seperti premi bulanan atau pajak gaji, untuk menyediakan uang untuk membayar manfaat perawatan kesehatan yang ditentukan dalam asuransi. persetujuan. Manfaat dikelola oleh organisasi pusat seperti lembaga pemerintah, bisnis swasta, atau entitas nirlaba.
Menurut Asosiasi Asuransi Kesehatan Amerika, asuransi kesehatan didefinisikan sebagai “pertanggungan yang memberikan pembayaran manfaat sebagai akibat dari sakit atau cedera. Ini termasuk asuransi untuk kerugian akibat kecelakaan, biaya pengobatan, kecacatan, atau kematian dan pemotongan akibat kecelakaan”. (hal.225).
(Source: Wikipedia)
Tujuan dari pengolahan data ini adalah untuk ** memprediksi biaya asuransi secara akurat **.
Dataset ini memiliki 6 variabel:
Usia: usia penerima manfaat utama.
Jenis kelamin: jenis kelamin kontraktor asuransi, perempuan, laki-laki.
BMI: Indeks massa tubuh, memberikan pemahaman tentang tubuh, bobot yang relatif tinggi atau rendah relatif terhadap tinggi badan, indeks objektif berat badan (kg / m ^ 2) menggunakan rasio tinggi terhadap berat, idealnya 18,5 hingga 24,9.
Anak: Jumlah anak yang ditanggung asuransi kesehatan / Jumlah tanggungan.
Perokok: Apakah orang tersebut perokok atau bukan.
Wilayah: wilayah pemukiman penerima di AS, timur laut, tenggara, barat daya, barat laut.
Biaya: Biaya medis individu ditagih oleh asuransi kesehatan.
Tujuan bab ini adalah untuk mengetahui perilaku anggota asuransi seperti: umur, jenis kelamin, wilayah, perokok.
Distribusi usia anggota asuransi relatif sama, kecuali 18 dan 19 tahun anggota yang memiliki populasi lebih tinggi (di atas 60). Saya juga membuat kelompok usia anggota pada tabel di bawah ini.
## Agecut total
## 1 [15,20] 166
## 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
## Warning: `arrange_()` is deprecated as of dplyr 0.7.0.
## Please use `arrange()` instead.
## See vignette('programming') for more help
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
## Warning: The titlefont attribute is deprecated. Use title = list(font = ...)
## instead.
Jenis kelamin peserta asuransi hampir sama (laki-laki = 676 orang & perempuan = 662 orang).
## Warning: The titlefont attribute is deprecated. Use title = list(font = ...)
## instead.
Wilayah tempat tinggal anggota asuransi tersebar merata.
Banyak anggotanya bukan perokok (79,5% atau 1064 orang) dan sisanya adalah perokok.
## Warning: The titlefont attribute is deprecated. Use title = list(font = ...)
## instead.
Indeks massa tubuh anggota terdistribusi normal.
Distribusi biaya medis individu yang ditagih oleh asuransi kesehatan memiliki kecenderungan positif.
Saya membuat analisis kepadatan ini untuk menemukan variabel yang mempengaruhi biaya medis. Dari analisis ini (Anda perlu melihat grafik kepadatan), saya mendapatkan beberapa wawasan:
Jenis kelamin tidak berdampak pada asuransi biaya kesehatan karena laki-laki dan perempuan memiliki distribusi / kepadatan yang sama terhadap pungutan (lihat Bagan 4.1).
Daerah tidak terlalu berpengaruh terhadap asuransi biaya kesehatan karena 4 daerah hampir memiliki distribusi / kepadatan yang sama terhadap retribusi (lihat Grafik 4.2).
Perokok dan bukan perokok mempengaruhi asuransi biaya pengobatan karena distribusi / kepadatannya sangat berbeda (lihat Grafik 4.3).
Jumlah anak / tanggungan memiliki kepadatan yang sama terhadap pungutan, kecuali jumlah anak nol. Jadi, jika Anda tidak memiliki anak maka akan berdampak pada asuransi biaya kesehatan (lihat Bagan 4.4).
Berdasarkan wawasan tersebut, saya dapat menyimpulkan bahwa ** Asap, total tanggungan, umur, dan BMI ** merupakan variabel yang digunakan untuk memprediksi asuransi biaya pengobatan.
Karena perokok, tanggungan total, dan IMT berpengaruh terhadap asuransi biaya kesehatan, 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. Persamaannya akan ditampilkan di sub-bab, jadi Anda perlu memeriksanya.
** Kucing - 1 **: Perokok, tidak memiliki tanggungan, BMI di bawah 30.
** Kucing - 2 **: Perokok, tidak memiliki ketergantungan, BMI lebih dari 30.
** Kucing - 3 **: Perokok, tanggungan, BMI di bawah 30.
** Kucing - 4 **: Perokok, tanggungan, BMI di atas 30.
** Kucing - 5 **: Bukan perokok, tidak memiliki tanggungan, BMI di bawah 30.
** Kucing - 6 **: Bukan perokok, tidak memiliki ketergantungan, BMI lebih dari 30.
** Kucing - 7 **: Bukan perokok, memiliki tanggungan, BMI di bawah 30.
** Kucing - 8 **: Bukan perokok, memiliki tanggungan, BMI lebih dari 30.
** Perokok, tidak memiliki tanggungan, BMI di bawah 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 * USIA) + (505,18 * BMI) **
** Perokok, tidak memiliki tanggungan, BMI lebih dari 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 (umur dan BMI) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
** 8120,10 + (292,16 * USIA) + (614,01 * BMI) **
** Perokok, memiliki tanggungan, BMI di bawah 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 (umur dan BMI) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
** 2428,48 + (259,48 * USIA) + (359,27 * BMI) **
** Perokok, memiliki tanggungan, BMI di atas 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 (umur dan BMI) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
** 16021,03 + (253,72 * USIA) + (447,91 * BMI) **
** Bukan perokok, tidak memiliki tanggungan, BMI di bawah 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 (umur) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
** - 3239,15 + (277,00 * USIA) **
** Bukan perokok, tidak memiliki tanggungan, BMI lebih dari 30. **
Tampilan grafik Age vs Charges dapat didekati dengan menggunakan regresi linier.
MI vs Charges terlihat memiliki korelasi yang tidak teratur.
##
## Call:
## lm(formula = charges ~ age, data = ins_nonsmoker_nochild_over30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2595.7 -1666.9 -1096.7 -377.7 20412.6
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2155.79 635.34 -3.393 0.000809 ***
## age 254.01 14.66 17.329 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3861 on 238 degrees of freedom
## Multiple R-squared: 0.5579, Adjusted R-squared: 0.556
## F-statistic: 300.3 on 1 and 238 DF, p-value: < 2.2e-16
##
## Call:
## lm(formula = charges ~ age + bmi, data = ins_nonsmoker_nochild_over30)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2811.9 -1632.1 -1099.0 -396.8 20324.2
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -465.01 2319.97 -0.200 0.841
## age 254.86 14.71 17.321 <2e-16 ***
## bmi -48.90 64.53 -0.758 0.449
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3864 on 237 degrees of freedom
## Multiple R-squared: 0.5589, Adjusted R-squared: 0.5552
## F-statistic: 150.2 on 2 and 237 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:
** - 2155,79 + (254,01 * USIA) **
** Bukan perokok, memiliki tanggungan, BMI di bawah 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 (umur) karena memiliki nilai R-Squared yang lebih baik.
Jadi persamaannya akan seperti ini:
** - 884,08 + (247,85 * USIA) **
** Bukan perokok, memiliki tanggungan, BMI di atas 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 * USIA) **
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: **#predcharges <- predcharges %>%
#mutate(charges = as.integer(charges),
# result = as.integer(result))
#rmse(predcharges,c(charge,result))Nilai kesalahan rata-rata dari prediksi saya adalah tentang plus minus ** 4437.56 **
** Kesalahan Persen Absolut Rata-rata dari prediksi saya: **
Rata-rata persentase kesalahan dari prediksi saya adalah ** 26,7% **
Berapa biaya asuransi untuk orang-orang ini?
Daniel, 27 tahun, 34,21 BMI, tidak memiliki tanggungan, bukan perokok, dan tinggal di timur laut.
Rani, 31 tahun, 27,54 BMI, 3 tanggungan, perokok, dan tinggal di tenggara.
Sekarang, Anda 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)
}** Asuransi biaya kesehatan untuk Daniel: **
## [1] 4702.48
** Asuransi biaya kesehatan Rani: **
## [1] 20366.66