Email:
RPubs: https://rpubs.com/akun-rpubs-anda/


1 Regresi Linear Berganda

Dalam proyek ini saya memberikan anda dataset insurance.csv, informasi lanjut mengenai data ini dapat anda baca di Kaggle.

Tugas kalian adalah sebagai berikut:

  1. Meringkas informasi penting yang terkadung data isurance.csv tersebut.
  2. Memahami faktor-faktor apa yang mempengaruhi premi asuransi konsumen.
  3. Menemukan model terbaik yang dapat memprediksi premi asuransi konsumen.

2 ANOVA/MANOVA

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)
  1. 2 Pengenalan

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 **.

3 Data

Dataset ini memiliki 6 variabel:

  1. Usia: usia penerima manfaat utama.

  2. Jenis kelamin: jenis kelamin kontraktor asuransi, perempuan, laki-laki.

  3. 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.

  4. Anak: Jumlah anak yang ditanggung asuransi kesehatan / Jumlah tanggungan.

  5. Perokok: Apakah orang tersebut perokok atau bukan.

  6. Wilayah: wilayah pemukiman penerima di AS, timur laut, tenggara, barat daya, barat laut.

  7. Biaya: Biaya medis individu ditagih oleh asuransi kesehatan.

4 Perilaku Anggota Asuransi

Tujuan bab ini adalah untuk mengetahui perilaku anggota asuransi seperti: umur, jenis kelamin, wilayah, perokok.

4.1 Usia Anggota Asuransi

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

4.2 Jenis Kelamin Anggota Asuransi

## 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).

4.3 Wilayah Anggota Asuransi

## Warning: The titlefont attribute is deprecated. Use title = list(font = ...)
## instead.

Wilayah tempat tinggal anggota asuransi tersebar merata.

4.4 Anggota Asuransi yang Merokok

Banyak anggotanya bukan perokok (79,5% atau 1064 orang) dan sisanya adalah perokok.

4.5 Jumlah Tanggungan

## Warning: The titlefont attribute is deprecated. Use title = list(font = ...)
## instead.

4.6 Indeks Massa Tubuh Anggota Asuransi

Indeks massa tubuh anggota terdistribusi normal.

4.7 Biaya Anggota Asuransi

Distribusi biaya medis individu yang ditagih oleh asuransi kesehatan memiliki kecenderungan positif.

5 Variabel Apa yang Mempengaruhi Biaya Medis? {. Tabset .tabset-fade .tabset-pills}

Saya membuat analisis kepadatan ini untuk menemukan variabel yang mempengaruhi biaya medis. Dari analisis ini (Anda perlu melihat grafik kepadatan), saya mendapatkan beberapa wawasan:

  1. Jenis kelamin tidak berdampak pada asuransi biaya kesehatan karena laki-laki dan perempuan memiliki distribusi / kepadatan yang sama terhadap pungutan (lihat Bagan 4.1).

  2. Daerah tidak terlalu berpengaruh terhadap asuransi biaya kesehatan karena 4 daerah hampir memiliki distribusi / kepadatan yang sama terhadap retribusi (lihat Grafik 4.2).

  3. Perokok dan bukan perokok mempengaruhi asuransi biaya pengobatan karena distribusi / kepadatannya sangat berbeda (lihat Grafik 4.3).

  4. 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.

5.1 Menagih Kepadatan Vs Jenis Kelamin

5.2 Menagih Kepadatan Vs Wilayah

5.3 Membebankan Kepadatan Vs Perokok

5.4 Membebankan Kepadatan Vs Anak-anak

6 Mengelompokkan Persamaan

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.

6.1 Kucing - 1

** 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) **

6.2 Kucing - 2

** 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) **

6.3 Kucing - 3

** 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.

summary(lm(charges ~ age, data = ins_smoker_child_under30))
## 
## 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) **

6.4 Kucing - 4

** 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) **

6.5 Kucing - 5

** 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) **

6.6 Kucing - 6

** 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) **

6.7 Kucing - 7

** 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) **

6.8 Kucing - 8

** 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) **

7 Prediksi Biaya

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% **

8 Studi Kasus

Berapa biaya asuransi untuk orang-orang ini?

  1. Daniel, 27 tahun, 34,21 BMI, tidak memiliki tanggungan, bukan perokok, dan tinggal di timur laut.

  2. 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: **

predict_charge(27, 34.21, 0, "no")
## [1] 4702.48

** Asuransi biaya kesehatan Rani: **

predict_charge(31, 27.54, 3, "yes")
## [1] 20366.66