Regresi Linier Starups Analysis
Berikut adalah analisis mengenai data behaviour 50 Startups yang ada
pada negara Amerika. Data hasil survey ini merupakan pengaruh dari
masing-masing variabel bagi profit Starups.
Menggunakan analisis linier regresi, akan dibuat suatu model untuk
memprediksi faktor-faktor yang menunjukkan pengaruh bagi profit
Starups.
Memasukkan Data
#> R.D.Spend Administration Marketing.Spend State Profit
#> 1 165349.2 136897.80 471784.1 New York 192261.8
#> 2 162597.7 151377.59 443898.5 California 191792.1
#> 3 153441.5 101145.55 407934.5 Florida 191050.4
#> 4 144372.4 118671.85 383199.6 New York 182902.0
#> 5 142107.3 91391.77 366168.4 Florida 166187.9
#> 6 131876.9 99814.71 362861.4 New York 156991.1
Eksplor Data Analisis
#> 'data.frame': 50 obs. of 5 variables:
#> $ R.D.Spend : num 165349 162598 153442 144372 142107 ...
#> $ Administration : num 136898 151378 101146 118672 91392 ...
#> $ Marketing.Spend: num 471784 443899 407935 383200 366168 ...
#> $ State : Factor w/ 3 levels "California","Florida",..: 3 1 2 3 2 3 1 2 3 1 ...
#> $ Profit : num 192262 191792 191050 182902 166188 ...
🔎 Deskripsi dari setiap kolom
R.D.Spend : biaya yang dibelanjakan setiap startup untuk
penelitian dan pengembangan
Administration : biaya yang dibelanjakan untuk
administrasi
Marketing.Spend : biaya yang dibelanjakan untuk
Pemasaran
State : negara bagian yang menunjukkan di negara bagian
mana starup tersebut berada
Profit : keuntungan yang didapat oleh startup
#> R.D.Spend Administration Marketing.Spend State
#> Min. : 0 Min. : 51283 Min. : 0 California:17
#> 1st Qu.: 39936 1st Qu.:103731 1st Qu.:129300 Florida :16
#> Median : 73051 Median :122700 Median :212716 New York :17
#> Mean : 73722 Mean :121345 Mean :211025
#> 3rd Qu.:101603 3rd Qu.:144842 3rd Qu.:299469
#> Max. :165349 Max. :182646 Max. :471784
#> Profit
#> Min. : 14681
#> 1st Qu.: 90139
#> Median :107978
#> Mean :112013
#> 3rd Qu.:139766
#> Max. :192262
Pada data pastikan tanpa ada missing value
#> [1] FALSE
Permasalahan Bisnis
🔻 Tentukan masalah bisnis:
1. Memprediksi Profit Starups
🔻 Tentukan variabel:
1. Target : Profit
2. Prediktor : R.D.Spend, Administration, Marketing.Spend, State
1️⃣ Cek persebaran data
Eksplorasi data cek korelasi antar data
Pada grafik korelasi, terlihat bahwa semua variabel memiliki pengaruh
positif terhadap Profit dimana faktor
R.D.Spend memiliki korelasi positif yang paling tinggi
dibandingkan faktor-faktor lain.
Berikut adalah distribusi nilai dari masing-masing variabel
Berdasarkan visualisasi boxplot, tidak ditemukan outlier pada
masing-masing kolom variabel dan data berdistribusi normal, sehingga
data tersebut sudah dapat dianalisis lebih lanjut.
Pembuatan Model Regresi Linear
Selanjutnya dapat dibuat model regresi linear dengan variabel
prediktor R.D.Spend karena variabel tersebut memiliki
korelasi positif tertinggi terhadap variabel target
Profit.
set.seed(100)
index_starups <- sample(x = nrow(starups) , size = nrow(starups)*0.80)
starups_train <- starups[index_starups, ]
starups_test <- starups[-index_starups, ]# membuat model Profit ~ R.D.Spend
model_starups <- lm(formula = Profit ~ R.D.Spend, data = starups_train)
# summary model
summary(model_starups)#>
#> Call:
#> lm(formula = Profit ~ R.D.Spend, data = starups_train)
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -17981 -4123 -799 4678 16351
#>
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 50420.37927 2484.33952 20.30 <0.0000000000000002 ***
#> R.D.Spend 0.83509 0.02819 29.63 <0.0000000000000002 ***
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Residual standard error: 7739 on 38 degrees of freedom
#> Multiple R-squared: 0.9585, Adjusted R-squared: 0.9574
#> F-statistic: 877.8 on 1 and 38 DF, p-value: < 0.00000000000000022
**2️⃣ Cek korelasi antar variabel prediktor dengan target*
#> [1] 0.979034
📉 Kesimpulan hasil eksplorasi
- Dapat dilihat bahwa adjusted R-squared memiliki nilai 0.9574
- Korelasi yang kuat (karena cor = mendekati 1), Variabel R.D.Spend
dan Profit memiliki hubungan yang linear.
Selanjutnya akan dicoba pemilihan variabel prediktor secara automatis menggunakan step-wise regression dengan metode backward elimination.
# membuat model Profit terhadap seluruh prediktor
model_allstarups <- lm(formula = Profit ~ ., data = starups_train)
model_back <- step(model_allstarups, direction = "backward")#> Start: AIC=720.41
#> Profit ~ R.D.Spend + Administration + Marketing.Spend + State
#>
#> Df Sum of Sq RSS AIC
#> - State 2 61705200 2027273426 717.64
#> - Administration 1 43697 1965611923 718.41
#> <none> 1965568226 720.41
#> - Marketing.Spend 1 227043444 2192611670 722.78
#> - R.D.Spend 1 19726650478 21692218704 814.45
#>
#> Step: AIC=717.64
#> Profit ~ R.D.Spend + Administration + Marketing.Spend
#>
#> Df Sum of Sq RSS AIC
#> - Administration 1 442 2027273868 715.64
#> <none> 2027273426 717.64
#> - Marketing.Spend 1 236943302 2264216728 720.06
#> - R.D.Spend 1 20910105767 22937379193 812.69
#>
#> Step: AIC=715.64
#> Profit ~ R.D.Spend + Marketing.Spend
#>
#> Df Sum of Sq RSS AIC
#> <none> 2027273868 715.64
#> - Marketing.Spend 1 248790186 2276064054 718.27
#> - R.D.Spend 1 25073912551 27101186419 817.36
#>
#> Call:
#> lm(formula = Profit ~ R.D.Spend + Marketing.Spend, data = starups_train)
#>
#> Residuals:
#> Min 1Q Median 3Q Max
#> -17008.0 -4495.0 208.2 4923.5 14163.2
#>
#> Coefficients:
#> Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 48135.71758 2606.80137 18.465 <0.0000000000000002 ***
#> R.D.Spend 0.78241 0.03657 21.392 <0.0000000000000002 ***
#> Marketing.Spend 0.02974 0.01396 2.131 0.0398 *
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Residual standard error: 7402 on 37 degrees of freedom
#> Multiple R-squared: 0.963, Adjusted R-squared: 0.961
#> F-statistic: 482.1 on 2 and 37 DF, p-value: < 0.00000000000000022
Metode regresi bertahap ini akan menghasilkan rumus optimum
berdasarkan nilai AIC terendah, dimana semakin rendah nilai AIC maka
semakin rendah nilai observasi yang tidak tertangkap.
📉 Kesimpulan
Jika dibandingkan dengan model awal yang hanya menggunakan variabel
R.D.Spend, maka model regresi yang menggunakan seluruh variabel
prediktor mempunyai nilai Adjusted R-squared sebesar 0.961, lebih tinggi
dibandingkan model sebelumnya sebesar 0.9574.
Prediksi Model
#> [1] 0.3055806
Evaluasi Model
1️⃣ Linearitas
Untuk menguji apakah variabel target dan prediktor memiliki hubungan
linear. Dapat menggunakan uji statistik fungsi
cor.test()
#>
#> Pearson's product-moment correlation
#>
#> data: starups_train$R.D.Spend and starups_train$Profit
#> t = 29.628, df = 38, p-value < 0.00000000000000022
#> alternative hypothesis: true correlation is not equal to 0
#> 95 percent confidence interval:
#> 0.9604370 0.9889386
#> sample estimates:
#> cor
#> 0.979034
- H0: korelasi tidak signifikan
- H1: korelasi signifikan
📉 Signifikansi Prediktor pada model
Karena nilai p-value < 0.00000000000000022 / < 0.05, maka tolak H0
dan keputusannya hubungan antara R.D.Spend dgn Profit berkorelasi
signifikan.
2️⃣ Normalitas
- Visualisasi histogram residual, dengan menggunakan fungsi
hist()
- Uji statistik menggunakan
shapiro.test()
#>
#> Shapiro-Wilk normality test
#>
#> data: model_back$residuals
#> W = 0.97898, p-value = 0.6518
📉 Karna nilai p-value = 0.6518 > alpha (0.05), maka gagal tolak
H0 dan model berdistribusi normal.
3️⃣ Homoskedasitas
- Visualisasi dengan scatterplot antara nilai prediksi (fitted values) dengan nilai error
- Uji statistika dengan Breusch-Pagan dari package
lmtest
#>
#> studentized Breusch-Pagan test
#>
#> data: model_back
#> BP = 0.075196, df = 2, p-value = 0.9631
📉 Karna nilai p-value = 0.9631 > alpha (0.05), maka gagal tolak
H0 dan residualnya sudah homogen atau dengan kata lain model tidak
mengalami heterocedasticity.
Simpulan dan Saran
Setelah dilakukan pengujian analisis, model mempunyai kriteria cukup
baik. Setelah dilakukan pengujian analisis, model mempunyai kriteria
cukup baik.
Berdasarkan model ini, nilai keuntungan starups berkorelasi positif
dengan nilai penelitian dan pengembangan. Menghitung MAPE (Mean Absolute
Percentage Error) sebesar 0.305 atau 30.5% yang cukup tinggi berarti
model sudah cukup baik tidak melebihi 50%, karena MAPE melihat model
kita menyimpang dari nilai sebenarnya sebesar nilai rata-rata
MAPE.
Dalam kata lain, menganggap besarnya nilai R&D akan meningkatkan
keuntungan bagi starups, juga cenderung menganggap nilai keuntungan yang
tinggi akan meningkatkan penelitian dan pengembangan.