Analisis Regresi Data Panel dalam Pemodelan Tingkat Kebahagiaan Beberapa Negara di Asia tenggara tahun 2006 s.d 2022
Pendahuluan
Latar Belakang
Asia Tenggara adalah wilayah yang kaya akan keragaman budaya, ekonomi, dan sosial. Negara-negara di kawasan ini telah mengalami perkembangan yang signifikan selama beberapa tahun terakhir, dengan perubahan ekonomi, demografis, dan politik yang berdampak pada kualitas hidup penduduk. Studi mengenai tingkat kebahagiaan di negara-negara Asia Tenggara menjadi semakin relevan seiring dengan pergeseran fokus dari pertumbuhan ekonomi semata menuju peningkatan kesejahteraan dan kualitas hidup. Dalam kerangka ini, analisis regresi data panel dapat memberikan wawasan mendalam tentang bagaimana berbagai faktor memengaruhi kebahagiaan di kawasan ini, dengan mempertimbangkan perbedaan antar negara serta evolusi hubungan tersebut dari waktu ke waktu, sejalan dengan indikator-indikator yang dipantau dalam World Happiness Report.
Analisis Regresi Data Panel telah menjadi alat yang semakin penting dalam studi ekonometrik dan ilmu sosial, terutama dalam memahami hubungan kompleks antara variabel-variabel dalam waktu dan ruang. Metode ini menggabungkan kelebihan analisis regresi lintas-seksi dengan analisis deret waktu, sehingga memungkinkan peneliti untuk memeriksa efek individual dan efek lintas-seksi dalam satu kerangka kerja. Penelitian ini akan berfokus pada memodelkan tingkat kebahagiaan beberapa negara di Asia Tenggara dari tahun 2006 hingga 2022, dengan menggunakan data tingkat kebahagiaan yang telah disusun dalam laporan World Happiness Report..
Tentang Data
Pada penelitian kali ini akan menggunakan dataset tingkat kebahagiaan yang diperoleh dari World Happiness Report 2023 yang dipublish melalui kaggle oleh USAMA BUTTAR. atau bisa mengakses melalui halaman resmi World Happiness Report.
Pada data ini terdapat beberapa kolom berikut:
- Country.Name : Informasi nama negara
- Regional.Indicator : Informasi regional negara
- Year : tahun
- Life.Ladder : tingkat kebahagiaan [1-10]
- Log.GDP.Per.Capita : Log Gross Domestic Product per orang di suatu negara
- Social.Support : memiliki seseorang yang dapat diandalkan di saat-saat sulit.
- Healthy.Life.Expectancy.At.Birth :
- Freedom.To.Make.Life.Choices : kebebasan untuk menentukan pilihan [0-1]
- Generosity : seberapa sering seseorang mengeluarkan uang untuk donasi perbulan
- Perceptions.Of.Corruption : Persepsi terhadap korupsi [0-1]
- Positive.Affect : rata-rata ukuran efek hari sebelumnya untuk tawa, kesenangan, dan interest
- Negative.Affect : rata-rata dari ukuran efek hari sebelumnya untuk kekhawatiran, kesedihan, dan kemarahan
- Confidence.In.National.Goverment : seberapa percaya terhadap pemerintahan
Teori Dasar
Data Panel
Salah satu aspek yang harus diperhatikan dalam melakukan pemodelan statistika adalah jenis data yang digunakan. Salah satu jenis data berdasarkan waktu pengumpulannya adalah data panel. Data panel merupakan gabungan data cross section dan time series (runtun/ deret waktu). Dengan kata lain, data panel merupakan data dari beberapa individu sama yang diamati dalam kurun waktu tertentu. Terkadang data panel disebut juga data longitudinal.
Jika kita memiliki T periode waktu (t = 1, 2, …, T) dan N jumlah individu (i = 1, 2, …, N), maka dengan data panel kita akan memiliki total unit observasi sebanyak NT.
Jika jumlah unit waktu sama untuk setiap individu, maka data disebut balanced panel. Jika sebaliknya, yakni jumlah unit waktu berbeda untuk setiap individu, maka disebut unbalanced panel
Pemodelan
Terdapat tiga pendekatan yang digunakan dalam model panel yaitu Common/ Polled Effects, Fixed Effects dan Random Effects.
1. Model Common/ Pooled Effects (CEM)
Model gabungan atau common effect model (CEM) atau pooled least
square (PLS) merupakan pendekatan model data panel yang sederhana karena
mengkombinasikan data time series dan cross section, tanpa memperhatikan
pengaruh spesifik waktu maupun individu. Koefisien regresi (intersep
ataupun kemiringan) diasumsikan konstan antar individu dan waktu. Metode
ini bisa menggunakan pendekatan ordinary least square (OLS) atau metode
kuadrat terkecil (MKT) untuk mengestimasi model data panel. Untuk
membuat model CEM di R dapat menggunakan fungsi plm() dari
package plm dengan parameter sebagai berikut:
formula= Target ~ Prediktordata= berupa dataframeindex= c(“kolom_individu”,“kolom_waktu”)model= “pooling”
2. Fixed Effects
Model pengaruh tetap atau fixed effect model (FEM) merupakan model
yang mengasumsikan antara unit individu atau waktu memiliki perilaku
yang berbeda, terlihat dari nilai intersep yang berbeda untuk setiap
unit individu atau waktu, tetapi konstan pada nilai koefisien kemiringan
dan koefisien regresi antara unit individu maupun waktu (Gujarati dan
Porter 2009). Pendugaan parameter model pengaruh tetap dapat menggunakan
Metode Kuadrat Terkecil Peubah Boneka (least square dummy variable) dan
MKT. Untuk membuat model CEM di R dapat menggunakan fungsi
plm() dari package plm dengan parameter sebagai
berikut:
formula= Target ~ Prediktordata= berupa dataframeindex= c(“kolom_individu”,“kolom_waktu”)model= “within”effect= “twoways”
3. Random Effects
Menurut Baltagi (2011), model pengaruh acak atau random effect model
digunakan ketika individu amatan mengikuti kaidah pengacakan dari
sejumlah populasi yang besar sehingga pengaruh pada setiap individu
bersifat acak. Pendugaan parameter pada model pengaruh acak yaitu dengan
metode kuadrat terkecil terampat (generalized least square). Model ini
memiliki asumsi bahwa tidak ada korelasi antara pengaruh spesifik
individu dan pengaruh spesifik waktu dengan peubah bebas sehingga
komponen sisaan dari kedua pengaruh spesifik dimasukkan ke dalam model.
Untuk membuat model CEM di R dapat menggunakan fungsi plm()
dari package plm dengan parameter sebagai berikut:
formula= Target ~ Prediktordata= berupa dataframeindex= c(“kolom_individu”,“kolom_waktu”)model= “random”
Pemilihan Model Terbaik
Untuk memilih model mana yang terbaik dari ketiga model diatas, perlu dilakukan pengujian hipotesis berikut ini:
Uji Chow
Menurut Ghozali dan Ratmono (2013), uji chow digunakan untuk memilih
pendekatan yang lebih baik antara model gabungan dengan model pengaruh
tetap. Untuk melakukan uji Chow dapat menggunakan fungsi
pooltest(model_cem, model_fem), dengan hipotesis yang
diujikan adalah sebagai berikut.
- H0 : Model gabungan
- H1 : Model pengaruh tetap
Keputusan tolak H0 (model pengaruh tetap terpilih) apabila nilai p-value < α.
Uji Hausman
Uji spesifikasi Hausman membandingkan model pengaruh tetap dan model
pengaruh acak. Jika hipotesis nol yang menyatakan tidak ada korelasi
antara pengaruh individu dengan regresor tidak ditolak, model pengaruh
random disarankan daripada pengaruh tetap (Susanti 2013). Untuk
melakukan uji Chow di R dapat menggunakan fungsi
phtest(model_rem, model_fem), dengan Hipotesis yang diuji
adalah sebagai berikut.
- H0 : Model pengaruh acak
- H1 : Model pengaruh tetap
Keputusan tolak H0 (model pengaruh tetap terpilih) apabila nilai p-value < α.
Pengujian Lanjutan
Apabila model gabungan atau model pengaruh acak yang terpilih sebagai model terbaik, perlu dilakukan uji lanjutan untuk memeriksa apakah model dipengaruhi oleh individu/waktu/individu & waktu. Untuk memeriksa pengaruh tersebut digunakan Uji Lagrange Multiplier.
Di R untuk melakukan Uji Lagrange Multiplier dapat dilakukan dengan
menggunakan fungsi plmtest() dari package plm
dengan parameter:
- x = model terpilih
- type =
"bp", menggunakan Breusch Pagan test - effect =
- “time” : untuk menguji pengaruh waktu
- “individual” : untuk menguji pengaruh individu
- “twoways” : untuk menguji pengaruh individu & waktu
berikut hipotesis pengujian untuk pemeriksaan setiap pengaruh:
Pemeriksaan Pengaruh Individu & Waktu
Hipotesis yang diuji adalah sebagai berikut.
- H0 : Tidak ada pengaruh individu & waktu
- H1 : Ada pengaruh individu & waktu
Pemeriksaan Pengaruh Individu
Hipotesis yang diuji adalah sebagai berikut.
- H0 : Tidak ada pengaruh individu
- H1 : Ada pengaruh individu
Pemeriksaan Pengaruh Waktu
Hipotesis yang diuji adalah sebagai berikut.
- H0 : Tidak ada pengaruh waktu
- H1 : Ada pengaruh waktu
dengan ketentuan untuk ketiga hipotesis adalah H0 ditolak jika P-value < α. Dimana nilai α yang umum digunakan adalah sebesar 5%.
Pengujian Asumsi
dikarenakan analisis data panel menggunakan konsep regresi dan time series maka ada beberapa Asumsi yang perlu dipenuhi sebagai berikut:
Asumsi model linear regression:
- No Multicollinearity (VIF)
- Normality of Residuals
- Homogenitas of Residuals
Asumsi Time Series:
- No Autocorelation
Note: Pengujian Asumsi hanya perlu dilakukan untuk model yang akan digunakan
1. Pemeriksaan Multikolinieritas
Multicollinearity adalah kondisi adanya korelasi antar
prediktor yang kuat. Hal ini tidak diinginkan karena menandakan
prediktor redundan pada model, yang seharusnya dapat dipilih salah satu
saja dari variable yang hubungannya amat kuat tersebut. Harapannya
tidak terjadi multicollinearity. Pemeriksaan
Multikolinieritas bisa dilakukan dengan menggunakan fungsi fungsi
vif(), dengan ketentuan
- nilai VIF > 10: terjadi multicollinearity pada model
- nilai VIF < 10: tidak terjadi multicollinearity pada model
Note: Pemeriksaan asumsi multikolinieritas bisa
dilakukan diawal sebelum dilakukan pemodelan data panel, dengan cara
terlebih dahulu dilakukan pembuatan model regresi dengan fungsi
lm() dan akan diujikan menggunakan fungsi
vif().
2. Pengujian Asumsi Normalitas Residual
Model diharapkan menghasilkan error yang berdistribusi
normal. Dengan begitu, error lebih banyak berkumpul di sekitar
angka nol. Pengujian asumsi normalitas di R dapat dilakukan dengan
menggunakan fungsi shapiro.test(). dengan hipotesis yang
diujikan adalah sebagai berikut.
- H0 : Sisaan berdistribusi normal
- H1 : Sisaan tidak berdistribusi normal
dengan ketentuan H0 ditolak jika P-value < α. Dimana nilai α yang umum digunakan adalah sebesar 5%.
3. Pengujian Asumsi Homogenitas Residual
Diharapkan error yang dihasilkan oleh model menyebar secara acak atau
dapat dikatakan variasi konstan. Pengujian asumsi
Homogenitas di R dapat dilakukan dengan menggunakan fungsi
bptest(), dengan hipotesis yang diujikan adalah sebagai
berikut.
- H0 : Sisaan memiliki ragam homogen
- H1 : Sisaan tidak memiliki ragam homogen
dengan ketentuan H0 ditolak jika P-value < α. Dimana nilai α yang umum digunakan adalah sebesar 5%.
4. Pengujian Asumsi Autokorelasi
Untuk mengecek ada/tidaknya bisa menggunakan uji Ljung-box dengan
menggunakan fungsi
Box.test(residual model, type = "Ljung-Box), dengan
hipotesis yang diujikan adalah sebagai berikut.
- H0 : tidak terjadi autokorelasi pada sisaan
- H1 : terjadi autokorelasi pada sisaan
dengan ketentuan H0 ditolak jika P-value < α. Dimana nilai α yang umum digunakan adalah sebesar 5%.
Alur Kerja Data Panel
Analisis data panel di R dapat dilakukan dengan mengikuti alur kerja berikut ini:Analisis Data
Persiapan Analisis
Load packages
Berikut adalah beberapa Packages yang akan digunakan untuk analisis data kali ini.
#Packages untuk pengolahan dataframe
library(dplyr)
library(tidyr)
library(lubridate)
library(zoo)
#Packages untuk membuat visualisasi
library(ggcorrplot)
library(ggplot2)
library(plotly)
#Packages untuk melakukan analisis
library(plm)
library(lfe)
library(lmtest)
library(car)
library(tseries)
library(MLmetrics)Data Preparation
1. Import Data
| Country.Name | Regional.Indicator | Year | Life.Ladder | Log.GDP.Per.Capita | Social.Support | Healthy.Life.Expectancy.At.Birth | Freedom.To.Make.Life.Choices | Generosity | Perceptions.Of.Corruption | Positive.Affect | Negative.Affect | Confidence.In.National.Government |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Afghanistan | South Asia | 2008 | 3.723590 | 7.350416 | 0.4506623 | 50.5 | 0.7181143 | 0.1676525 | 0.8816863 | 0.4142970 | 0.2581955 | 0.6120721 |
| Afghanistan | South Asia | 2009 | 4.401778 | 7.508646 | 0.5523084 | 50.8 | 0.6788964 | 0.1908088 | 0.8500354 | 0.4814214 | 0.2370924 | 0.6115452 |
| Afghanistan | South Asia | 2010 | 4.758381 | 7.613900 | 0.5390752 | 51.1 | 0.6001272 | 0.1213160 | 0.7067661 | 0.5169067 | 0.2753238 | 0.2993574 |
| Afghanistan | South Asia | 2011 | 3.831719 | 7.581259 | 0.5211036 | 51.4 | 0.4959014 | 0.1635715 | 0.7311085 | 0.4798347 | 0.2671747 | 0.3073857 |
| Afghanistan | South Asia | 2012 | 3.782938 | 7.660506 | 0.5206367 | 51.7 | 0.5309350 | 0.2375876 | 0.7756198 | 0.6135128 | 0.2679191 | 0.4354402 |
2. Mengambil data Wilayah Asia Tenggara
3. Pemeriksaan Balancing Data
#>
#> Cambodia Indonesia Laos Malaysia Myanmar Philippines
#> 17 17 10 14 10 16
#> Singapore Thailand Vietnam
#> 14 17 17
#> [1] FALSE
insight: data imbalance dengan kondisi:
- negara Cambodia, Indonesia, Thailand & Vietnam memiliki 17 informasi waktu
- negara Philippines hanya memiliki 16 informasi waktu
- negara Malaysia & singapore hanya memiliki 14 informasi waktu
- negara Laos & Myanmar hanya memiliki 10 informasi waktu
3.1 Balancing the Data
untuk melakukan balancing dapat menggunakan fungsi
make.pbalanced dengan parameter balance.type
yang dapat diisi dengan 3 opsi berikut:
- menggunakan fill : untuk setiap kolom waktu yg hilang akan diberikan nilai NA
- menggunakan shared.times : akan diambil keseluruhan individu dgn ketentuan informasi waktu terdapat di semua individu
- menggunakan shared.individuals : akan individu dengan ketentuan informasi waktu lengkap
# balancing menggunakan fill
balance1 <- pdata.frame(df_asia, index = c("Country.Name","Year") ) %>% #mengubah data frame menjadi format pooled data frame
make.pbalanced(balance.type = "fill") # balancing the data
table(balance1$Country.Name)#>
#> Cambodia Indonesia Laos Malaysia Myanmar Philippines
#> 17 17 17 17 17 17
#> Singapore Thailand Vietnam
#> 17 17 17
# balancing menggunakan shared.times
balance2 <- pdata.frame(df_asia, index = c("Country.Name","Year") ) %>% make.pbalanced(balance.type = "shared.times")
table(balance2$Country.Name)#>
#> Cambodia Indonesia Laos Malaysia Myanmar Philippines
#> 3 3 3 3 3 3
#> Singapore Thailand Vietnam
#> 3 3 3
# balancing menggunakan shared.individuals
balance3 <- pdata.frame(df_asia, index = c("Country.Name","Year") ) %>% make.pbalanced(balance.type = "shared.individuals")
table(balance3$Country.Name)#>
#> Cambodia Indonesia Laos Malaysia Myanmar Philippines
#> 17 17 0 0 0 0
#> Singapore Thailand Vietnam
#> 0 17 17
Insight:
melihat dari kondisi data yang dimiliki, kita tidak akan memakai balancing dengan metode shared.times karena akan menghilangkan banyak informasi. dan untuk selanjutnya hanya akan diguanakan hasil balancing metode fill, dengan catatan tidak akan menyertakan negara Laos & Myanmar. Karena hampir 50% informasi yang ada pada negara-negara tersebut akan diinput secara matematis sehingga dikhawatirkan akan menjadikan model yang bias.
sehingga pada analisis selanjutnya hanya akan digunakan data negara
Cambodia, Indonesia, Philippines, Thailand , Vietnam, Malaysia &
Singapore yang akan disimpan pada pdataframe bernama
balanced
# mengambil data negara tertentu
balanced <- balance1 %>% filter( Country.Name %in% c("Cambodia", "Indonesia", "Philippines", "Thailand", "Vietnam", "Malaysia", "Singapore"))
# memeriksa kembali keseimbangan data
is.pbalanced(balanced)#> [1] TRUE
4. Check Missing Value
tahap selanjutnya adalah memeriksa kelengkapan data
#> Country.Name Regional.Indicator
#> 0 7
#> Year Life.Ladder
#> 0 7
#> Log.GDP.Per.Capita Social.Support
#> 7 8
#> Healthy.Life.Expectancy.At.Birth Freedom.To.Make.Life.Choices
#> 7 11
#> Generosity Perceptions.Of.Corruption
#> 8 13
#> Positive.Affect Negative.Affect
#> 11 9
#> Confidence.In.National.Government
#> 24
insight:
- karena data yang kita miliki adalah sebanyak 17 x 5 dan kolom Confidence.In.National.Government memiliki 17 nilai missing yang artinya 1/5 data yang hilang maka untuk analisis selanjutnya kolom Confidence.In.National.Government tidak akan disertakan
# membuang kolom Confidence.In.National.Government dan Regional.Indicator
balanced <- balanced %>% select(-Confidence.In.National.Government, -Regional.Indicator)4.1 Filling the missing value
Untuk melakukan pengisian nilai yang hilang maka akan dilakukan cara interpolasi secara terpisah untuk setiap negara.
4.1.1 Cambodia
#> Country.Name Year
#> 0 0
#> Life.Ladder Log.GDP.Per.Capita
#> 0 0
#> Social.Support Healthy.Life.Expectancy.At.Birth
#> 0 0
#> Freedom.To.Make.Life.Choices Generosity
#> 1 0
#> Perceptions.Of.Corruption Positive.Affect
#> 1 2
#> Negative.Affect
#> 0
untuk mengisi nilai yang hilang dengan nilai rata-rata dari nilai yang dekat dengan nilai missing menggunakan extend
cam <- cam %>% mutate(Freedom.To.Make.Life.Choices = na.fill(Freedom.To.Make.Life.Choices ,fill = "extend"),
Perceptions.Of.Corruption = na.fill(Perceptions.Of.Corruption ,fill = "extend"),
Positive.Affect = na.fill(Positive.Affect ,fill = "extend"))
anyNA(cam)#> [1] FALSE
4.1.2 Indonesia
#> Country.Name Year
#> 0 0
#> Life.Ladder Log.GDP.Per.Capita
#> 0 0
#> Social.Support Healthy.Life.Expectancy.At.Birth
#> 0 0
#> Freedom.To.Make.Life.Choices Generosity
#> 0 0
#> Perceptions.Of.Corruption Positive.Affect
#> 0 0
#> Negative.Affect
#> 0
tidak terdapat nilai yang missing untuk negara Indonesia.
4.1.3 Philippines
#> Country.Name Year
#> 0 0
#> Life.Ladder Log.GDP.Per.Capita
#> 1 1
#> Social.Support Healthy.Life.Expectancy.At.Birth
#> 1 1
#> Freedom.To.Make.Life.Choices Generosity
#> 1 1
#> Perceptions.Of.Corruption Positive.Affect
#> 1 1
#> Negative.Affect
#> 2
dikarenakan sebelumnya kita menggunakan balancing data pada data Filipina sehingga disetiap kolom terdapat 1 nilai missing, untuk mengisi nilai yang missing dengan nilai rata-rata dari nilai yang dekat dengan nilai missing menggunakan extend
ph <- ph %>% mutate(
Life.Ladder = na.fill( Life.Ladder ,fill = "extend"),
Log.GDP.Per.Capita = na.fill(Log.GDP.Per.Capita ,fill = "extend"),
Social.Support = na.fill(Social.Support ,fill = "extend"),
Healthy.Life.Expectancy.At.Birth = na.fill(Healthy.Life.Expectancy.At.Birth ,fill = "extend"),
Freedom.To.Make.Life.Choices = na.fill(Freedom.To.Make.Life.Choices ,fill = "extend"),
Generosity = na.fill(Generosity ,fill = "extend"),
Perceptions.Of.Corruption = na.fill(Perceptions.Of.Corruption ,fill = "extend"),
Positive.Affect = na.fill(Positive.Affect ,fill = "extend"),
Negative.Affect = na.fill(Negative.Affect, fill = "extend"))
anyNA(ph)#> [1] FALSE
4.1.4 Thailand
#> Country.Name Year
#> 0 0
#> Life.Ladder Log.GDP.Per.Capita
#> 0 0
#> Social.Support Healthy.Life.Expectancy.At.Birth
#> 0 0
#> Freedom.To.Make.Life.Choices Generosity
#> 0 0
#> Perceptions.Of.Corruption Positive.Affect
#> 0 0
#> Negative.Affect
#> 0
tidak terdapat nilai yang missing untuk negara Thailand.
4.1.5 Vietnam
#> Country.Name Year
#> 0 0
#> Life.Ladder Log.GDP.Per.Capita
#> 0 0
#> Social.Support Healthy.Life.Expectancy.At.Birth
#> 1 0
#> Freedom.To.Make.Life.Choices Generosity
#> 3 1
#> Perceptions.Of.Corruption Positive.Affect
#> 4 2
#> Negative.Affect
#> 1
viet <- viet %>% mutate(
Social.Support = na.fill(Social.Support ,fill = "extend"),
Freedom.To.Make.Life.Choices = na.fill(Freedom.To.Make.Life.Choices ,fill = "extend"),
Generosity = na.fill(Generosity ,fill = "extend"),
Perceptions.Of.Corruption = na.fill(Perceptions.Of.Corruption ,fill = "extend"),
Positive.Affect = na.fill(Positive.Affect ,fill = "extend"),
Negative.Affect = na.fill(Negative.Affect, fill = "extend"))
anyNA(viet)#> [1] FALSE
4.1.6 Malaysia
#> Country.Name Year
#> 0 0
#> Life.Ladder Log.GDP.Per.Capita
#> 3 3
#> Social.Support Healthy.Life.Expectancy.At.Birth
#> 3 3
#> Freedom.To.Make.Life.Choices Generosity
#> 3 3
#> Perceptions.Of.Corruption Positive.Affect
#> 3 3
#> Negative.Affect
#> 3
Malay <- Malay %>% mutate(
Life.Ladder = na.fill( Life.Ladder ,fill = "extend"),
Log.GDP.Per.Capita = na.fill(Log.GDP.Per.Capita ,fill = "extend"),
Social.Support = na.fill(Social.Support ,fill = "extend"),
Healthy.Life.Expectancy.At.Birth = na.fill(Healthy.Life.Expectancy.At.Birth ,fill = "extend"),
Freedom.To.Make.Life.Choices = na.fill(Freedom.To.Make.Life.Choices ,fill = "extend"),
Generosity = na.fill(Generosity ,fill = "extend"),
Perceptions.Of.Corruption = na.fill(Perceptions.Of.Corruption ,fill = "extend"),
Positive.Affect = na.fill(Positive.Affect ,fill = "extend"),
Negative.Affect = na.fill(Negative.Affect, fill = "extend"))
anyNA(Malay)#> [1] FALSE
4.1.7 Singapore
#> Country.Name Year
#> 0 0
#> Life.Ladder Log.GDP.Per.Capita
#> 3 3
#> Social.Support Healthy.Life.Expectancy.At.Birth
#> 3 3
#> Freedom.To.Make.Life.Choices Generosity
#> 3 3
#> Perceptions.Of.Corruption Positive.Affect
#> 4 3
#> Negative.Affect
#> 3
sgp <- sgp %>% mutate(
Life.Ladder = na.fill( Life.Ladder ,fill = "extend"),
Log.GDP.Per.Capita = na.fill(Log.GDP.Per.Capita ,fill = "extend"),
Social.Support = na.fill(Social.Support ,fill = "extend"),
Healthy.Life.Expectancy.At.Birth = na.fill(Healthy.Life.Expectancy.At.Birth ,fill = "extend"),
Freedom.To.Make.Life.Choices = na.fill(Freedom.To.Make.Life.Choices ,fill = "extend"),
Generosity = na.fill(Generosity ,fill = "extend"),
Perceptions.Of.Corruption = na.fill(Perceptions.Of.Corruption ,fill = "extend"),
Positive.Affect = na.fill(Positive.Affect ,fill = "extend"),
Negative.Affect = na.fill(Negative.Affect, fill = "extend"))
anyNA(sgp)#> [1] FALSE
setelah semua negara tidak lagi terdapat nilai yang missing, selanjutnya kita akan gabungkan kembali dan akan disimpan pada dengan nama balanced2
pemeriksaan ulang keseimbangan data
#> [1] TRUE
pemeriksaan ulang kelengkapan data
#> Country.Name Year
#> 0 0
#> Life.Ladder Log.GDP.Per.Capita
#> 0 0
#> Social.Support Healthy.Life.Expectancy.At.Birth
#> 0 0
#> Freedom.To.Make.Life.Choices Generosity
#> 0 0
#> Perceptions.Of.Corruption Positive.Affect
#> 0 0
#> Negative.Affect
#> 0
Pemeriksaan Struktur Data
#> Rows: 119
#> Columns: 11
#> $ Country.Name <fct> Cambodia, Cambodia, Cambodia, Cambodi…
#> $ Year <fct> 2006, 2007, 2008, 2009, 2010, 2011, 2…
#> $ Life.Ladder <pseries> 3.568745, 4.155971, 4.462164, 4.1…
#> $ Log.GDP.Per.Capita <pseries> 7.746443, 7.826252, 7.874457, 7.8…
#> $ Social.Support <pseries> 0.7930815, 0.6751321, 0.6192643, …
#> $ Healthy.Life.Expectancy.At.Birth <pseries> 57.64, 57.98, 58.32, 58.66, 59.00…
#> $ Freedom.To.Make.Life.Choices <pseries> 0.8186995, 0.8186995, 0.9141729, …
#> $ Generosity <pseries> 0.253480405, 0.113903776, 0.04392…
#> $ Perceptions.Of.Corruption <pseries> 0.8291811, 0.8785076, 0.8883920, …
#> $ Positive.Affect <pseries> 0.5999891, 0.5999891, 0.5999891, …
#> $ Negative.Affect <pseries> 0.3410233, 0.3203354, 0.3353240, …
insight:
- dengan pengubahan tipe data menjadai pooled data frame, maka nilai setiap kolom menjadi pseries dan untuk country name dan year akan menjadi index
#> [1] Cambodia Indonesia Philippines Thailand Vietnam Malaysia
#> [7] Singapore
#> 9 Levels: Cambodia Indonesia Laos Malaysia Myanmar Philippines ... Vietnam
kita akan drop beberapa negara yang tidak kita gunakan agar pada tahap selanjutnya hanya menampilkan levels/kategori yang kita pakai
#> [1] Cambodia Indonesia Philippines Thailand Vietnam Malaysia
#> [7] Singapore
#> 7 Levels: Cambodia Indonesia Malaysia Philippines Singapore ... Vietnam
#> [1] 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
#> [16] 2021 2022
#> 17 Levels: 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 ... 2022
EDA
Ringkasan Data
#> Country.Name Year Life.Ladder Log.GDP.Per.Capita
#> Cambodia :17 2006 : 7 Min. :3.569 Min. : 7.746
#> Indonesia :17 2007 : 7 1st Qu.:5.075 1st Qu.: 8.800
#> Malaysia :17 2008 : 7 Median :5.480 Median : 9.261
#> Philippines:17 2009 : 7 Mean :5.515 Mean : 9.445
#> Singapore :17 2010 : 7 3rd Qu.:6.013 3rd Qu.: 9.903
#> Thailand :17 2011 : 7 Max. :7.062 Max. :11.571
#> Vietnam :17 (Other):77
#> Social.Support Healthy.Life.Expectancy.At.Birth Freedom.To.Make.Life.Choices
#> Min. :0.6055 Min. :57.64 Min. :0.5956
#> 1st Qu.:0.7905 1st Qu.:61.81 1st Qu.:0.8345
#> Median :0.8183 Median :64.82 Median :0.8787
#> Mean :0.8205 Mean :64.97 Mean :0.8664
#> 3rd Qu.:0.8668 3rd Qu.:67.01 3rd Qu.:0.9143
#> Max. :0.9332 Max. :73.80 Max. :0.9754
#>
#> Generosity Perceptions.Of.Corruption Positive.Affect Negative.Affect
#> Min. :-0.17899 Min. :0.0352 Min. :0.4037 Min. :0.1069
#> 1st Qu.: 0.01234 1st Qu.:0.7546 1st Qu.:0.6748 1st Qu.:0.1809
#> Median : 0.12122 Median :0.8251 Median :0.7327 Median :0.2393
#> Mean : 0.15597 Mean :0.7377 Mean :0.7147 Mean :0.2525
#> 3rd Qu.: 0.29693 3rd Qu.:0.8890 3rd Qu.:0.7751 3rd Qu.:0.3229
#> Max. : 0.55196 Max. :0.9727 Max. :0.8836 Max. :0.4819
#>
Berdasarkan ringkasan diatas dapat kita ketahui beberapa hal berikut:
- tingkat kebahagiaan tertinggi di asia tenggara adalah 7.062 dan tingkat kebahagiaan terrendah adalah 3.569
| Country.Name | Year | Life.Ladder | Log.GDP.Per.Capita | Social.Support | Healthy.Life.Expectancy.At.Birth | Freedom.To.Make.Life.Choices | Generosity | Perceptions.Of.Corruption | Positive.Affect | Negative.Affect |
|---|---|---|---|---|---|---|---|---|---|---|
| Singapore | 2014 | 7.062365 | 11.38073 | 0.822033 | 73.02 | 0.8348876 | 0.1494345 | 0.1326032 | 0.7742402 | 0.1802328 |
| Country.Name | Year | Life.Ladder | Log.GDP.Per.Capita | Social.Support | Healthy.Life.Expectancy.At.Birth | Freedom.To.Make.Life.Choices | Generosity | Perceptions.Of.Corruption | Positive.Affect | Negative.Affect |
|---|---|---|---|---|---|---|---|---|---|---|
| Cambodia | 2006 | 3.568745 | 7.746443 | 0.7930815 | 57.64 | 0.8186995 | 0.2534804 | 0.8291811 | 0.5999891 | 0.3410233 |
berdasarkan ekstraksi nilai diatas dapat kita ketahui bila negara di asia tenggara dengan tingkat kebahagiaan tertinggi adalah Singapura pada tahun 2014 dan tingkat kebagahiaan terrendah adalah negara Kamboja pada tahun 2006. Hal ini selaras dengan peringkat yang dikeluarkan oleh WHR dimana Singapura menduduki peringkat 25/137 negara dan Kamboja menduduki peringkat 115/137 negara.
Log.GDP.Per.Capita tertinggi di asia tenggara adalah 11.571 dan tingkat kebahagiaan terrendah adalah 7.746
| Country.Name | Year | Life.Ladder | Log.GDP.Per.Capita | Social.Support | Healthy.Life.Expectancy.At.Birth | Freedom.To.Make.Life.Choices | Generosity | Perceptions.Of.Corruption | Positive.Affect | Negative.Affect |
|---|---|---|---|---|---|---|---|---|---|---|
| Singapore | 2021 | 6.586717 | 11.5715 | 0.876409 | 73.8 | 0.8787011 | 0.06273898 | 0.1449354 | 0.6969902 | 0.1598022 |
| Singapore | 2022 | 6.586717 | 11.5715 | 0.876409 | 73.8 | 0.8787011 | 0.06273898 | 0.1449354 | 0.6969902 | 0.1598022 |
| Country.Name | Year | Life.Ladder | Log.GDP.Per.Capita | Social.Support | Healthy.Life.Expectancy.At.Birth | Freedom.To.Make.Life.Choices | Generosity | Perceptions.Of.Corruption | Positive.Affect | Negative.Affect |
|---|---|---|---|---|---|---|---|---|---|---|
| Cambodia | 2006 | 3.568745 | 7.746443 | 0.7930815 | 57.64 | 0.8186995 | 0.2534804 | 0.8291811 | 0.5999891 | 0.3410233 |
berdasarkan ekstraksi nilai diatas dapat kita ketahui bila negara di asia tenggara dengan GDP tertinggi adalah Singapura pada tahun 2021 dan tingkat kebagahiaan terrendah adalah negara Kamboja pada tahun 2006. hal ini selaras dengan peringkat yang dikeluarkan oleh WHR dimana Singapura menduduki peringkat 25/137 negara dan Kamboja menduduki peringkat 115/137 negara.
pada kolom Generosity terdapat hal yang janggal yakni nilai minimum yang bernilai negatif, dimana seharusnya nilai berada pada rentang 0 s.d 1. Diasumsikan nilai tersebut mengalami kesalahan minor input, sehingga akan diperbaiki dengan menghilangkan tanda negatif
| Country.Name | Year | Life.Ladder | Log.GDP.Per.Capita | Social.Support | Healthy.Life.Expectancy.At.Birth | Freedom.To.Make.Life.Choices | Generosity | Perceptions.Of.Corruption | Positive.Affect | Negative.Affect |
|---|---|---|---|---|---|---|---|---|---|---|
| Philippines | 2007 | 5.073562 | 8.606147 | 0.8007114 | 61.420 | 0.8515664 | -0.023918567 | 0.88024557 | 0.7364587 | 0.3781878 |
| Philippines | 2014 | 5.312550 | 8.841846 | 0.8133002 | 61.840 | 0.9021857 | -0.017415673 | 0.78721946 | 0.7872629 | 0.3340365 |
| Philippines | 2015 | 5.547489 | 8.886697 | 0.8535886 | 61.900 | 0.9115336 | -0.053213272 | 0.75519156 | 0.7963219 | 0.3505877 |
| Philippines | 2016 | 5.430833 | 8.938013 | 0.8212987 | 61.925 | 0.9075958 | -0.073148958 | 0.79196221 | 0.8074337 | 0.2902327 |
| Philippines | 2017 | 5.594270 | 8.987416 | 0.8510286 | 61.950 | 0.9257031 | -0.143116161 | 0.71116555 | 0.7534837 | 0.3406215 |
| Philippines | 2018 | 5.869173 | 9.031899 | 0.8458033 | 61.975 | 0.9178082 | -0.109501414 | 0.72648335 | 0.7561843 | 0.3934811 |
| Philippines | 2019 | 6.267745 | 9.074734 | 0.8450947 | 62.000 | 0.9095986 | -0.084004894 | 0.74844211 | 0.7645264 | 0.3405695 |
| Philippines | 2020 | 5.079585 | 8.958445 | 0.7811404 | 62.025 | 0.9320417 | -0.110944264 | 0.74428368 | 0.7927356 | 0.3268890 |
| Philippines | 2021 | 5.965058 | 8.998964 | 0.7781921 | 62.050 | 0.9052755 | -0.008972425 | 0.72116226 | 0.7897311 | 0.3229415 |
| Philippines | 2022 | 5.965058 | 8.998964 | 0.7781921 | 62.050 | 0.9052755 | -0.008972425 | 0.72116226 | 0.7897311 | 0.3229415 |
| Vietnam | 2006 | 5.293660 | 8.553802 | 0.8876645 | 64.180 | 0.8857921 | -0.003454410 | 0.75393397 | 0.6574848 | 0.2039792 |
| Vietnam | 2009 | 5.304265 | 8.700611 | 0.8150265 | 64.420 | 0.8341339 | -0.079960719 | 0.83786976 | 0.4809068 | 0.1899301 |
| Vietnam | 2010 | 5.295781 | 8.752191 | 0.7866114 | 64.500 | 0.8314945 | -0.023855312 | 0.74263674 | 0.6706609 | 0.2157984 |
| Vietnam | 2012 | 5.534570 | 8.846539 | 0.7750087 | 64.660 | 0.8560535 | -0.128692746 | 0.81488490 | 0.5460535 | 0.2213560 |
| Vietnam | 2013 | 5.022699 | 8.889822 | 0.7594770 | 64.740 | 0.9196075 | -0.045563158 | 0.77124584 | 0.6888777 | 0.1652253 |
| Vietnam | 2014 | 5.084923 | 8.941402 | 0.7921685 | 64.820 | 0.9111887 | -0.018800916 | 0.78057728 | 0.6338523 | 0.2406068 |
| Vietnam | 2016 | 5.062267 | 9.053184 | 0.8763236 | 65.000 | 0.8943511 | -0.109294027 | 0.79924017 | 0.4872572 | 0.2225502 |
| Vietnam | 2017 | 5.175279 | 9.110596 | 0.8541344 | 65.100 | 0.9018055 | -0.085031059 | 0.80383158 | 0.5508307 | 0.2068058 |
| Vietnam | 2018 | 5.295547 | 9.173263 | 0.8319452 | 65.200 | 0.9092598 | -0.060768090 | 0.80842298 | 0.6144043 | 0.1910614 |
| Vietnam | 2019 | 5.467451 | 9.235229 | 0.8475921 | 65.300 | 0.9524692 | -0.145854294 | 0.78788924 | 0.6577857 | 0.1856102 |
| Vietnam | 2022 | 6.266509 | 9.332854 | 0.8787440 | 65.600 | 0.9754052 | -0.178986996 | 0.70342290 | 0.7742364 | 0.1084734 |
| Malaysia | 2009 | 5.384702 | 9.858006 | 0.7916664 | 65.320 | 0.8743198 | -0.010948431 | 0.85809523 | 0.7400351 | 0.1635498 |
| Malaysia | 2011 | 5.786367 | 9.947520 | 0.7704230 | 65.480 | 0.8403591 | -0.018508431 | 0.84150457 | 0.7854330 | 0.1548750 |
| Singapore | 2009 | 6.144677 | 11.148082 | 0.8662553 | 72.120 | 0.7763819 | -0.079494290 | 0.03519799 | 0.4500216 | 0.2075483 |
| Singapore | 2010 | 6.531402 | 11.265940 | 0.8641621 | 72.300 | 0.8461846 | -0.022667632 | 0.06028207 | 0.5273370 | 0.1313434 |
| Singapore | 2011 | 6.561042 | 11.305386 | 0.9044739 | 72.480 | 0.8218163 | -0.153288618 | 0.09892445 | 0.4036992 | 0.1436289 |
| Singapore | 2012 | 6.547124 | 11.330248 | 0.8561922 | 72.660 | 0.8244594 | -0.021482788 | 0.17066125 | 0.5332762 | 0.1456582 |
| Singapore | 2018 | 6.374564 | 11.496155 | 0.9028407 | 73.500 | 0.9160782 | -0.071186461 | 0.09656293 | 0.7310570 | 0.1068708 |
- terlihat bahwa cukup banyak nilai generosity yang negatif
# menghilangkan nilai negatif dengan pengali -1
balanced2[balanced2$Generosity < 0,8] <- balanced2[balanced2$Generosity < 0,8]*-1
# pemeriksaan kembali
balanced2 %>% filter(Generosity < 0)| Country.Name | Year | Life.Ladder | Log.GDP.Per.Capita | Social.Support | Healthy.Life.Expectancy.At.Birth | Freedom.To.Make.Life.Choices | Generosity | Perceptions.Of.Corruption | Positive.Affect | Negative.Affect |
|---|
Matriks Korelasi (Heatmap)
untuk mengetahui seberapa besar tingkat hubungan antar variabel
prediktor terhadap variabel target dapat kita gunakan fungsi
ggcorrplot.
insight:
- terdapat korelasi yang kuat antara Life.ladder(Y) dengan kolom :
- Log.GDP.Per.Capita
- Social.Support
- Healthy.Life.Expetancy.At.Birth
- Perceptions.Of.Corruption
- Negative.Affect
- terjadi korelasi yang lemah antara Life.ladder(Y) dengan kolom :
- Freedom.To.Make.Life.Choices
- Generosity
- Positive.Affect
- terlihat bahwa terjadi korelasi yang sangat kuat antara variabel Log.GFP.Per.Capita dengan Healthy.Life.Expetancy.At.Birth, hal ini mengindikasikan adanya multikolinieritas. untuk tahapan selanjutnya dalam pemodelan akan dipilih salah satu variabel.
Pemodelan
Cross-Validation
Tahapan cross validation baik akan selalu dilakukan sebelum pembuatan model, data akan dibagi menjadi data train dan data test. Dikarenakan data panel memiliki informasi keterangan waktu maka pembagian data tidak boleh diambil secara acak melainkan dibagi dengan cara dipisah secara berurutan.
Data Train akan menggunakan data yang paling awal Data Test akan menggunakan data yang paling akhir
untuk melakukannya kita bisa menggunakan bantuan fungsi
filter()
Pemeriksaan Asumsi Multikolinieritas
Dikarenakan pada hasil pemeriksaan korelasi pada tahapan EDA
sebelumnya menunjukkan adanya indikasi multikolinieritas antar variabel
prediktor, maka akan dilakukan pemeriksaan asumsi multikolinieritas
terlebih dahulu dengan cara pembuatan model regresi dengan fungsi
lm() dan dilanjutkan pengujian menggunakan fungsi
vif().
nilai VIF > 10: terjadi multicollinearity pada model nilai VIF < 10: tidak terjadi multicollinearity pada model
#> Log.GDP.Per.Capita Social.Support
#> 13.263518 2.259576
#> Healthy.Life.Expectancy.At.Birth Freedom.To.Make.Life.Choices
#> 13.259883 1.600693
#> Generosity Perceptions.Of.Corruption
#> 1.387535 4.523294
#> Positive.Affect Negative.Affect
#> 1.688864 2.546771
Berdasarkan hasil pengujian VIF diatas didapati nilai VIV > 10 untuk variabel Log.GDP.Per.Capita dan Healthy.Life.Expectancy.At.Birth. Hal ini mengindikasikan terjadi multikolinieritas antara kedua variabel, seperti yang sudah terdeteksi pada matriks korelasi heatmap sebelumnya.
Maka pada tahapan selanjutnya hanya akan digunakan variabel Log.GDP.Per.Capita.
Penentuan Model Estimasi
Pembuatan Model
Untuk setiap pembuatan model akan digunakan fungsi plm()
dari package plm dengan parameter sebagai berikut:
formula= Target ~ Prediktordata= berupa dataframeindex= c(“kolom_individu”,“kolom_waktu”)model=- “pooling” : untuk model Common Effect Model (CEM)
- “within” : untuk model Fixed Effect Model (FEM)
- “random” : untuk model Random Effect Model (REM)
dimana
- variabel target : Life.Ladder
- Variabel prediktor :
- Log.GDP.Per.Capita
- Social.Support
- Freedom.To.Make.Life.Choice
- Generosity
- Perceptions.Of.Corruption
- Positive.Affect
- Negative.Affect
Model Gabungan (CEM)
membuat Common effect model dan disimpan kedalam objek
cem
# menyimpan formula regresi data panel
form <- Life.Ladder ~ Log.GDP.Per.Capita + Social.Support + Freedom.To.Make.Life.Choices + Generosity + Perceptions.Of.Corruption + Positive.Affect + Negative.Affect
# membuat Common effect model
cem <- plm(form,
data = ladder_train,
index = c("Country.Name","Year"),
model = "pooling")Model Pengaruh Tetap (FEM)
membuat model FEM dengan memberikan parameter tambahan
effect = "twoways" untuk memasukan pengaruh individu dan
waktu kemudian disimpan kedalam objek fem.two
# membuat fixed effect model
fem <- plm(form,
data = ladder_train,
index = c("Country.Name","Year"),
model = "within",
effect = "twoways")Uji Chow
Uji chow dilakukan untuk memilih model terbaik antara model gabungan
(cem) dengan model fixed effect (fem). untuk melakukan uji Chow dapat
menggunakan fungsi pooltest(model_cem, model_fem)
Hipotesis yang diuji adalah sebagai berikut:
- H0 : Common effect model
- H1 : Fixed effect model
H0 ditolak jika P-value < α. Nilai α yang digunakan sebesar 5%.
#>
#> F statistic
#>
#> data: form
#> F = 2.0593, df1 = 22, df2 = 82, p-value = 0.01021
#> alternative hypothesis: unstability
Berdasarkan hasil uji chow diatas, kita peroleh nilai p-value < α. artinya Model terbaik untuk digunakan pada data World Happines adalah fixed effect model.
Model Pengaruh Acak (REM)
membuat random effect model dan disimpan kedalam objek
rem
pada tahapan ini data kita tidak dapat dilakukan pemodelan random effect
karena jumlah individu dan informasi waktu yang dirasa masih terlalu
sedikit. Oleh karenanya untuk tahapan selanjutnya akan digunakan Fixed
effect model.
Pengujian Asumsi
Normalitas
Hipotesis yang diuji adalah sebagai berikut.
- H0 : Sisaan menyebar normal
- H1 : Sisaan tidak menyebar normal
H0 ditolak jika P-value < α. Nilai α yang digunakan sebesar 5%.
#>
#> Shapiro-Wilk normality test
#>
#> data: .
#> W = 0.99046, p-value = 0.6255
Berdasarkan hasil pengujian normalitas sisaan diperoleh nilai p-value > 0.05, artinya sisaan menyebar secara normal.
Homogenitas
Hipotesis yang diuji adalah sebagai berikut.
- H0 : Sisaan memiliki ragam homogen
- H1 : Sisaan tidak memiliki ragam homogen
H0 ditolak jika P-value < α. Nilai α yang digunakan sebesar 5%.
#>
#> studentized Breusch-Pagan test
#>
#> data: .
#> BP = 6.1764, df = 7, p-value = 0.5193
Berdasarkan hasil pengujian homogenitas diperoleh nilai p-value > 0.05, artinya sisaan memiliki ragam yang homogen.
Autokorelasi
Hipotesis yang diuji adalah sebagai berikut.
- H0 : tidak terjadi autokorelasi pada sisaan
- H1 : terjadi autokorelasi pada sisaan
H0 ditolak jika P-value < α. Nilai α yang digunakan sebesar 5%.
#>
#> Box-Ljung test
#>
#> data: .
#> X-squared = 6.3725, df = 1, p-value = 0.01159
Berdasarkan hasil pengujian autokorelasi diperoleh nilai p-value < 0.05, artinya terjadi permasalahan autokorelasi antar sisaan.
Prediksi
Untuk melakukan prediksi akan kita gunakan fungsi
predict() dengan parameter:
- object = nama model yang kita gunakan
- newdata = data baru yang akan kita prediksi
Untuk menguji apakah model yang kita miliki sudah baik dalam
memprediksi data baru maka kita akan evaluasi dengan menggunakan nilai
error, salah satu metric eror yang biasa digunakan adalah MAPE. Kita
dapat melakukannya menggunakan fungsi MAPE() dengan
parameter:
- y_pred = nilai hasil prediksi
- y_true = nilai target asli
#> [1] 0.07088511
Diperoleh nilai MAPE sebesar 0.07088511 artinya model kita dalam memprediksi data baru mengalami kesalahan prediksi sebesar 7.1% atau dapat dikatakan model kita sudah cukup baik dalam memprediksi nilai baru.
Interpretasi Model
#> Twoways effects Within Model
#>
#> Call:
#> plm(formula = form, data = ladder_train, effect = "twoways",
#> model = "within", index = c("Country.Name", "Year"))
#>
#> Unbalanced Panel: n = 7, T = 10-17, N = 112
#>
#> Residuals:
#> Min. 1st Qu. Median 3rd Qu. Max.
#> -0.60519583 -0.15526199 0.00023964 0.15774187 0.79166992
#>
#> Coefficients:
#> Estimate Std. Error t-value Pr(>|t|)
#> Log.GDP.Per.Capita 0.526008 0.145688 3.6105 0.0005249 ***
#> Social.Support 2.220726 0.789045 2.8144 0.0061157 **
#> Freedom.To.Make.Life.Choices -0.810815 0.611464 -1.3260 0.1885139
#> Generosity -0.095195 0.310058 -0.3070 0.7596045
#> Perceptions.Of.Corruption 0.137415 0.303051 0.4534 0.6514302
#> Positive.Affect 0.232634 0.569165 0.4087 0.6838047
#> Negative.Affect -0.700130 0.642693 -1.0894 0.2791825
#> ---
#> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#>
#> Total Sum of Squares: 13.302
#> Residual Sum of Squares: 7.1161
#> R-Squared: 0.46504
#> Adj. R-Squared: 0.27585
#> F-statistic: 10.1834 on 7 and 82 DF, p-value: 0.0000000041237
Berdasarkan output diatas dapat kita peroleh informasi sebagai berikut:
- dari 7 variabel yang diujikan, untuk tingkat kebahagiaan di wilayah
asia tenggara hanya terdapat 2 variabel yang signifikan berpengaruh.
Yakni
Log.GDP.Per.CapitadanSocial.Support - diperoleh model regresi data panel
Life.Ladder = 0.526008 Log.GDP.Per.Capita + 2.220726 Social.Support - 0.810815 Freedom.To.Make.Life.Choices - 0.095195 Generosity + 0.137415 Perceptions.Of.Corruption + 0.232634 Positive.Affect - 0.700130 Negative.Affect + efek wilayah negara + efek waktu
Log.GDP.Per.Capita = 0.526008, artinya untuk setiap kenaikan 1 satuan nilai Log.GDP.Per.Capita akan menambah nilai Life.Ladder sebesar 0.526008 dengan catatan seluruh variabel lainnya bernilai konstan
Social.Support= 2.220726 , artinya untuk setiap kenaikan 1 satuan nilai Social.Support akan menambah nilai Life.Ladder sebesar 2.220726 dengan catatan seluruh variabel lainnya bernilai konstan
Freedom.To.Make.Life.Choices= -0.810815 , artinya untuk setiap kenaikan 1 satuan nilai Freedom.To.Make.Life akan menurunkan nilai Life.Ladder sebesar 0.810815 dengan catatan seluruh variabel lainnya bernilai konstan
Generosity= -0.095195 , artinya untuk setiap kenaikan 1 satuan nilai Generosity akan menurunkan nilai Life.Ladder sebesar 0.095195 dengan catatan seluruh variabel lainnya bernilai konstan
Perceptions.Of.Corruption= 0.137415 , artinya untuk setiap kenaikan 1 satuan nilai Perceptions.Of.Corruption akan menurunkan nilai Life.Ladder sebesar 0.137415 dengan catatan seluruh variabel lainnya bernilai konstan
Positive.Affect= 0.232634 , artinya untuk setiap kenaikan 1 satuan nilai Positive.Affect akan meningkatkan nilai Life.Ladder sebesar 0.232634 dengan catatan seluruh variabel lainnya bernilai konstan
Negative.Affect= -0.700130 , artinya untuk setiap kenaikan 1 satuan nilai Negative.Affect akan menurunkan nilai Life.Ladder sebesar -0.700130 dengan catatan seluruh variabel lainnya bernilai konstan
dengan pengaruh efek wilayah untuk setiap negara sebagai berikut:
efwil <- fixef(fem, effect = "individual")
negara <- c("Cambodia","Indonesia","Vietnam","Malaysia","Myanmar","Philippines","Singapore")
efek_wilayah <- as.data.frame(bind_cols(negara,efwil)) %>% rename("Negara" = ...1,"Efek" = ...2)
efek_wilayah| Negara | Efek |
|---|---|
| Cambodia | -1.0533526 |
| Indonesia | -1.0054871 |
| Vietnam | -0.7072265 |
| Malaysia | -0.5987181 |
| Myanmar | -0.8640107 |
| Philippines | -0.9279070 |
| Singapore | -1.0031320 |
Cambodia : -1.0533526, artinya nilai Life.Ladder akan menurun sebesar 1.0533526 apabila wilayah adalah negara Cambodia
Indonesia : -1.0054871, artinya nilai Life.Ladder akan menurun sebesar 1.0054871 apabila wilayah adalah negara Indonesia
Vietnam : -0.7072265, artinya nilai Life.Ladder akan menurun sebesar 0.7072265 apabila wilayah adalah negara Vietnam
Malaysia : -0.5987181, artinya nilai Life.Ladder akan menurun sebesar 0.5987181 apabila wilayah adalah negara Vietnam
Myanmar : -0.8640107, artinya nilai Life.Ladder akan menurun sebesar 0.8640107 apabila wilayah adalah negara Myanmar
Philippines : -0.9279070, artinya nilai Life.Ladder akan menurun sebesar 0.9279070 apabila wilayah adalah negara Philippines
Singapore : -1.0031320, artinya nilai Life.Ladder akan menurun sebesar 1.0031320 apabila wilayah adalah negara Singapore
dan efek waktu sebagai berikut:
eftim <- fixef(fem,effect = "time")
year <- c(2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022)
efek_waktu <- as.data.frame(bind_cols(year,eftim)) %>% rename("Year" = ...1,"Efek" = ...2)
efek_waktu| Year | Efek |
|---|---|
| 2006 | -1.0533526 |
| 2007 | -0.8031746 |
| 2008 | -0.5231826 |
| 2009 | -0.8626404 |
| 2010 | -0.8999219 |
| 2011 | -0.8136401 |
| 2012 | -0.9333057 |
| 2013 | -1.0026437 |
| 2014 | -1.0275959 |
| 2015 | -0.8069202 |
| 2016 | -0.7116527 |
| 2017 | -0.6596476 |
| 2018 | -0.7539704 |
| 2019 | -0.6443689 |
| 2020 | -0.8768122 |
| 2021 | -0.8862643 |
| 2022 | -0.9256983 |
- 2006 = -1.4386207, artinya nilai Life.ladder akan menurun sebesar
1.4386207 apabila informasi waktu adalah tahun 2006.
- 2007 = -1.1915837, artinya nilai Life.ladder akan menurun sebesar
1.1915837 apabila informasi waktu adalah tahun 2007.
- 2008 = -0.9177062, artinya nilai Life.ladder akan menurun sebesar
0.9177062 apabila informasi waktu adalah tahun 2008.
- 2009 = -1.2485929, artinya nilai Life.ladder akan menurun sebesar
1.2485929 apabila informasi waktu adalah tahun 2009.
- 2010 = -1.2768328, artinya nilai Life.ladder akan menurun sebesar
1.2768328 apabila informasi waktu adalah tahun 2010.
- 2011 = -1.1894746, artinya nilai Life.ladder akan menurun sebesar
1.1894746 apabila informasi waktu adalah tahun 2011.
- 2012 = -1.3392664, artinya nilai Life.ladder akan menurun sebesar
1.3392664 apabila informasi waktu adalah tahun 2012.
- 2013 = -1.4048088, artinya nilai Life.ladder akan menurun sebesar
1.4048088 apabila informasi waktu adalah tahun 2013.
- 2014 = -1.4313918, artinya nilai Life.ladder akan menurun sebesar
1.4313918 apabila informasi waktu adalah tahun 2014.
- 2015 = -1.2166701, artinya nilai Life.ladder akan menurun sebesar 1.2166701 apabila informasi waktu adalah tahun 2015.
Kesimpulan
Dari serangkaian proses analisis yang telah dilakukan, dapat kita peroleh kesimpulan sebagai berikut:
- Dapat kita ketahui bahwa dari beberapa negara di asia tenggara, negara dengan tingkat kebahagiaan tertinggi adalah Singapura dan tingkat kebahagiaan terrendah adalah Kamboja.
- Terdapat multikolinieritas antara variabel
Log.GDP.Per.CapitadenganHealthy.Life.Expectancy.At.Birth.yang ditunjukkan oleh nilai korelasi sebesar 0.93 dan nilai vif > 10. - Diperoleh model terbaik untuk memprediksi tingkat pengangguran
adalah Fixed Effect Model (FEM) dengan dua variabel yang signifikan
berpengaruh terhadap Life Ladder score, yakni
Log.GDP.Per.CapitadanSocial.Support. Dimana Social support memberikan pengaruh positif terbesar diantara lainnya yakni menigkatkan nilai Life ladder sebesar 2.220726. - diperoleh nilai Adj. R-Squared sebesar 0.27585 artinya model dapat menjelaskan data tingkat kebahagian dengan baik sebesar 27.59%.
- diperoleh nilai MAPE sebesar 0.07088511 artinya, model dapat memprediksi pada data test dengan tingkat kesalahan sebesar 7.1%.
- modelyang dibuat memenuhi asumsi Normalitas dan homogenitas namun tidak memenihi asumsi autokorelasi
Dari beberapa kesimpulan diatas terdapat beberapa saran sebagai berikut:
- Untuk penanganan nilai missing di setiap negara perlu dicoba dengan metode lain, dengan harapan bisa memperoleh model yang lebih baik lagi
- pada data ini perlu dieksplorasi lebih lanjut untuk mencoba model random dan jika dimungkinkan bisa dilakukan dengan menambahkan daftar negara kedalam model.