sekedar pet crepet

Entries categorized as ‘modeling’

Genetic Algorithm

March 7, 2009 · 2 Comments

Pagi ini salah satu diskusi di kuliah Chemometric tentang Genetic Algorithm untuk pemilihan variabel dalam model, misal saja model regresi. Meskipun sudah sangat terkenal, ini termasuk barang baru buatku… belum sempat baca-baca tentang ini sebelumnya. Si Profesor menjelaskan dengan sangat baik, dan secara umum bisalah aku tangkap maksudnya gimana. Aku coba rekonstruksi di notes ini, tadi gak sempat nyatet. Mudah2an gak ada yang kelewat. Kalaupun ada yang gak jelas, mudah2an ada yang bisa nambah2in.

Konsep yang digunakan dalam memilih variabel X untuk masuk ke dalam model, dianalogikan dengan bagaimana penyeleksian individu secara genetik. Yang pernah belajar breeding atau pemuliaan mungkin jauh lebih bisa memahami. Setiap gen dari suatu individu pada dasarnya adalah kombinasi dari gen-gen dari tetuanya (Karena individunya gak selalu berupa orang, bisa hewan atau tumbuhan, jadi gak disebut orang tua. Kalau mau disebut orang tua ya gpp lah).

Nah karena kita mau dapat individu yang unggul, maka kira-kira prosesnya (1) pilih tetua yang unggul (2) lakukan reproduksi yang merupakan kombinasi (cross-over) antar tetua yang unggul, dapat deh tuh banyak anak, (3) anak-anak ini akan mengalami sedikit perubahan atau mutasi pada gen-nya, mungkin juga karena pengaruh lingkungan (4) balik lagi ke langkah 1 dengan menjadikan anak2 sebagai tetua untuk generasi berikutnya.

Implimentasi di pemodelan bagaimana?

Variabel-variabel yang banyak bisa dipandang sebagai kromosom (atau apalah, pokoknya yang bawa sifat2 genotip). Yang pertama dilakukan adalah buat dulu populasi tetua, ini adalah generasi pertama (paling tua). Caranya? Ya buat model dengan variabel X adalah subset dari variabel yang banyak itu. Jadi kita punya banyak model. Misalnya ada 200 variabel, kalau kita buat model masing-masing berisi 20 variabel saja, maka banyak sekali tuh kombinasinya.

Nah dari banyak model itu, pilih yang ‘unggul’. Misal yang errornya kecil. Ambil deh 200an model terunggul. Terus kita pasang2in dan kawin2in tuh model. Kita lihat focus sekarang ke dua model (lihat sebagai dua tetua). Variabel dari setiap model dibagi dua, satu bagian dari setiap model diambil kemudian digabung (secara cross-over). Bagian satu dari model 1 digabung dengan bagian 2 dari model 2. Jadilah model baru (anak) dengan variabel warisan dari tetuanya (sebagian warisan bapak, sebagian warisan ibu).

Perkawinan model ini dilakukan pada banyak pasang model lama (tetua) generasi pertama, sehingga kita bisa dapat banyak model baru (anak) yang merupakan generasi kedua. Pada saat model baru terbentuk, tentu beberapa mengalami mutasi, karena variabel yang sebelumnya gak ketemu sekarang jadi ketemu.

Oke. Generasi kedua sudah jadi. Dari generasi ini lakukan penyaringan. Jangan semua dikawinkan. Terlalu semangat itu namanya. Kawinkan saja yang unggul-unggul. Dapat deh generasi ketiga. Begitu seterusnya, sampai generasi yang dihasilkan hampir semuanya bersifat unggul.

Nah kalau udah gitu, tinggal urutkan saja berdasarkan kriteria unggul tadi, maka kita akan dapat model dengan sedikit variabel yang disaring dari banyak variabel, dan itu adalah model yang unggul.

Categories: modeling

Menghitung VIF

October 16, 2008 · Leave a Comment

VIF (variance inflation factor) merupakan salah satu statistik yang dapat digunakan untuk mendeteksi gejala multikolinear (multicollinearity, collinearity) pada analisis regresi yang sedang kita susun.  VIF tidak lain adalah mengukur keeratan hubungan antar variabel bebas, atau X.

 

Bagaimana menghitung VIF?  Ini tidak lain adalah fungsi dari R2 model antar X.

 

Andaikan kita memiliki tiga buah variabel bebas: X1, X2, dan X3 dan ketiganya mau diregresikan dengan sebuah variabel tak bebas Y.  Nilai VIF kita hitung untuk masing-masing X.

 

Untuk X1, prosedurnya adalah

-         regresikan X1 terhadap X2 dan X3, atau modelnya X1 = b0 + b1X2 + b2X3 + e

-         hitung R2 dari model tersebut

-         VIF untuk X1 adalah VIF1 = 1 / (1 – R2)

 

Untuk X2, senada saja dengan prosedur di atas

-         regresikan X2 terhadap X1 dan X3, atau modelnya X2 = b0 + b1X1 + b2X3 + e

-         hitung R2 dari model tersebut

-         VIF untuk X2 adalah VIF2 = 1 / (1 – R2)

 

Perhatikan bahwa R2 dalam hitungan di atas adalah ukuran keeratan antar X.  Jika R2 = 0,  maka VIF = 1.  Kondisi ini adalah kondisi ideal.  Jadi idealnya, nilai VIF = 1.

 

Semakin besar R2, maka VIF semakin tinggi (semakin kuat adanya collinearity).  Misal R2 = 0.8 akan menghasilkan VIF = 5.

 

Tidak ada batasan baku berapa nilai VIF dikatakan tinggi, nilai VIF di atas 5 sudah membuat kita harus hati-hati.

 

 

 

Categories: modeling
Tagged: , ,

Menggabung variabel

October 13, 2008 · Leave a Comment

Sering sekali para peneliti menggunakan beberapa pertanyaan untuk menangkap informasi suatu variabel. Misalnya saja untuk memperoleh informasi mengenai seberapa besar minat responden terhadap Pemilu, mereka ditanya tentang aktivitas baca koran, aktivitas nonton berita TV, aktivitas diskusi politik, dan sebagainya. Permasalahan yang sering kali muncul adalah proses penggabungan dari beberapa pertanyaan tadi menjadi satu variabel sehingga analisisnya menjadi lebih mudah.

Ini kutipan jawaban saya dalam suatu milis tentang hal tersebut. Hasil penggabungan variabel akan digunakan oleh yang bersangkutan dalam analisis regresi.

Dalam kuisioner yang saya distribusikan, terdapat 5 independent variabel dimana masing2 independent variabel tersebut terdiri dari 3-5 pertanyaan. Bagaimana data dari 5 pertanyaan tersebut diolah sehingga dapat mewakili suatu variabel independent? Saya sangat bingung dan tidak tahu langkah apa yang harus dilakukan

Dear ***,
ada beberapa cara yang dilakukan orang mulai dari yang sederhana sampai yang agak rumit untuk menghadapi model regresi yang dihadapi, terutama dalam hal menjadikan beberapa item pertanyaan menjadi satu variabel.

Sebelumnya, pastikan dulu bahwa setiap kelompok item (yang mau dijadiin satu) sudah reliable. Penggunaan cronbach’s-alpha saya kira sudah cukup.

Beberapa alternatif analisis yang bisa mbak lakukan adalah:
1. Secara sederhana, penggabungan dapat dilakukan dengan menjumlah atau merata-ratakan beberapa pertanyaan menjadi satu variabel. Ini yang paling gampang. Kalau sudah dirata-ratakan, misal ada tiga pertanyaan kemudian dapat rata-rata untuk setiap responden, lakukan ini untuk setiap kelompok variabel, maka regresi tinggal mengikuti saja menggunakan variabel gabungan tadi.

2. Yang juga bisa dilakukan adalah menggabung; tapi ada bobot untuk masing-masing pertanyaan. Kalau cara pertama disebut simple average, yang ini disebut weighted average. Bobotnya tentu berdasarkan keahlian ***. Misal pertanyaan pertama bobot setengah; pertanyaan kedua seperempat; pertanyaan ketiga seperempat. Jadi variabel gabungan didapat dari
gabungan = 0.25 p1 + 0.25 p2 + 0.25 p3
Pertanyaan paling penting diberi bobot lebih besar

3. Teknik yang juga bisa dilakukan adalah Factor Analysis. di SPSS *** bisa cari menu Variable Reduction (di Analyze). Kemudian pilih option, number of factor = 1, artinya tiga variabel tadi mau direduksi jadi 1. SPSS akan menghitung bobot yang optimal untuk masing2 variabel. Topik factor analysis ini biasanya ada di buku-buku multivariate analysis. Lakukan ini untuk setiap kelompok variabel.

4. cara lain yang bisa dilakukan adalah penggunaan SEM (structural equation model). basic-nya sih factor analysis juga. Software yang biasa dipakai orang LISREL sama AMOS.

Categories: modeling · statistika
Tagged: , ,

Mengatasi Collinearity

October 2, 2008 · Leave a Comment

Kalau pada data kita terdapat masalah multikolinear maka ada beberapa cara yang dapat dilakukan:

Pertama, periksa apakah ada data pencilan/outlier/ekstrim nilai X-nya. Titik data seperti ini umumnya dapat mengakibatkan korelasi antar X menjadi tinggi, padahal tidak ada pola khusus pada data. Kalau ditemukan data seperti ini, coba untuk disisihkan dan lihat apakah terjadi perubahan pada hasil regresi. Pada beberapa software statistika, tersedia fasilitas menghitung DFBETA pada masing-masing baris data, yaitu besarnya perubahan beta jika satu baris data itu tidak disertakan. Pengamatan atau baris dengan DFBETA yang besar disisihkan saja.

Kedua, yang melakukannya gampang adalah membuang salah satu atau beberapa variabel X yang berkorelasi tinggi sehingga tersisa lebih sedikit X. Misalnya kalau ditemukan X1 dan X2 berkorelasi, maka pilih salah satu untuk digunakan dalam model dan sisihkan variabel yang satunya. Tentu ada ruginya, kalau X1 yang digunakan maka kita tidak dapat mendapatkan informasi mengenai besarnya pengaruh X2. Di samping itu juga muncul pertanyaan, yang dipakai yang mana, X1 atau X2? Jawabannya kita tunda dulu.

Ketiga yang bisa dilakukan adalah menerapkan teknik-teknik pemodelan yang lebih kompleks komputasinya. Ada beberapa teknik regresi yang dapat digunakan untuk ini antara lain path analysis, ridge regression, principal component regression, partial least squares regression, projection pursuit, dan lain-lain.

Categories: modeling
Tagged: , , ,

Mendeteksi Collinearity

October 2, 2008 · Leave a Comment

Beberapa orang juga menyebutnya multicollinearity.  Ini adalah istilah permasalahan yang dihadapi pada saat menduga koefisien model regresi linear.  Masalah ini timbul karena dua atau lebih variabel bebas X memiliki hubungan linear yang kuat.  Kondisi ideal dalam analisis regresi linear adalah kebebasan/keortogonalan antar X. 

 

Jika antar X terdapat korelasi yang kuat, maka ini akan mengakibatkan dugaan dari koefisien beta menjadi tidak stabil atau memiliki standard error yang besar.  Artinya apa? Ada beberapa kemungkinan tidak menyenangkan yang bisa terjadi: (1) Variabel X yang mestinya signifikan pengaruhnya, menjadi tidak terdeteksi atau dinyatakan tidak signifikan, (2)  variabel X yang hubungannya positif dengan Y, dapat memiliki nilai koefisien yang bertanda negatif.

 

Jika satu dari dua kemungkinan di atas terjadi, interpretasi kita terhadap model yang kita dapatkan menjadi salah, dan mungkin sangat salah.

 

Bagaimana mendeteksi apakah di data kita ada masalah ini?  Beberapa hal berikut bisa dilakukan:

  1. Hitung korelasi antar variabel X.  Kalau ada nilai korelasi di atas 0.4, maka kita patut hati-hati.  Cara ini tidak selalu ampuh, terutama jika collinearity melibatkan banyak variabel.
  2. Beberapa software menyediakan fasilitas menghitung VIF (variance inflation factor).  Kalau tidak punya software memang agak capek menghitungnya, terutama kalau variabel X-nya berjumlah banyak.  Nilai ViF lebih dari 10 menjadi indikasi adanya masalah multikolinear. Nilai VIF ideal adalah 1.  Angka 10 dianggap sudah terlalu besar, dan bukan angka mati yang harus diikuti.  Jika kita mendapatkan angka VIF 4 atau 5, saya juga menyarankan untuk hati-hati.
  3. Lakukan pemodelan regresi linear dengan hanya satu buah variabel X (simple linear regression) untuk setiap variabel X yang kita miliki dan catat besarnya dugaan koefisien beta dan signifikansinya.  Selanjutnya lakukan multiple regression dengan memasukkan seluruh variabel X.  Perhatikan apakah ada nilai koefisien beta yang berubah banyak antara di simple dan multiple model.  Kalau ada, maka kita patut untuk curiga.

Categories: modeling
Tagged: , ,

Regresi Linear

September 25, 2008 · Leave a Comment

Ini site tentang regresi linear yang udah lama kubuat, tapi gak terurus. Hehe

http://www.geocities.com/bagusco4/bagusco_reg_linear.html

Selamat membaca

Categories: modeling

Regresi Logistik Menggunakan Solver di Excel

September 18, 2008 · Leave a Comment

Seorang teman menanyakan bagaimana mendapatkan penduga koefisien regresi logistik, sementara dia tidak punya software statistik. Tulisan berikut mudah-mudahan dapat membantu. Kita dapat menghitung dan menguji koefisien regresi logistik dengan memanfaatkan solver add-ins di MS Excel. Silakan klik link ini.
pdf file juga dapat diperoleh di
Semoga bermanfaat. Situs lain saya kira juga banyak yang menyediakan hal yang sama.

Categories: modeling
Tagged: , , ,