Saya melakukan regresi linier menggunakan fungsi Rm:
x = log(errors)
plot(x,y)
lm.result = lm(formula = y ~ x)
abline(lm.result, col="blue") # showing the "fit" in blue
tapi itu tidak pas. Sayangnya saya tidak bisa memahami manualnya.
Bisakah seseorang mengarahkan saya ke arah yang benar agar lebih cocok?
Maksud saya, saya ingin meminimalkan Root Mean Squared Error (RMSE).
Sunting : Saya telah mengirim pertanyaan terkait (ini masalah yang sama) di sini: Dapatkah saya mengurangi RMSE lebih lanjut berdasarkan fitur ini?
dan data mentah di sini:
kecuali bahwa pada tautan x itulah yang disebut kesalahan pada halaman ini di sini, dan ada lebih sedikit sampel (1000 vs 3000 di plot halaman ini). Saya ingin membuat hal-hal sederhana dalam pertanyaan lain.
r
regression
Timothée HENRY
sumber
sumber
Jawaban:
Salah satu solusi paling sederhana mengakui bahwa perubahan di antara probabilitas yang kecil (seperti 0,1) atau yang komplemennya kecil (seperti 0,9) biasanya lebih bermakna dan pantas lebih berat daripada perubahan di antara probabilitas menengah (seperti 0,5).
Misalnya, perubahan dari 0,1 menjadi 0,2 (a) menggandakan probabilitas sementara (b) mengubah probabilitas komplementer hanya dengan 1/9 (menjatuhkannya dari 1-0,1 = 0,9 ke 1-0,2 menjadi 0,8), sedangkan perubahan dari 0,5 menjadi 0,6 (a) meningkatkan probabilitas hanya sebesar 20% sementara (b) mengurangi probabilitas komplementer hanya sebesar 20%. Dalam banyak aplikasi perubahan pertama adalah, atau setidaknya seharusnya, dianggap hampir dua kali lebih besar dari yang kedua.
Dalam situasi apa pun di mana akan sama artinya menggunakan probabilitas (dari sesuatu yang terjadi) atau komplemennya (yaitu, probabilitas sesuatu yang tidak terjadi), kita harus menghormati simetri ini.
Dua ide ini - untuk menghormati simetri antara probabilitas dan komplemennya dan menyatakan perubahan relatif daripada mutlak - menyarankan bahwa ketika membandingkan dua probabilitas dan kita harus melacak kedua rasio mereka dan rasio komplemen mereka . Saat melacak rasio, lebih mudah menggunakan logaritma, yang mengubah rasio menjadi perbedaan. Ergo, cara yang baik untuk mengekspresikan probabilitas untuk tujuan ini adalah dengan menggunakan yang dikenal sebagai log odds atau logithal 1 - hal hal p′ p′/p (1−p)/(1−p′) p
Alasan ini agak umum: ini mengarah pada prosedur awal standar yang baik untuk mengeksplorasi setiap set data yang melibatkan probabilitas. (Ada metode yang lebih baik yang tersedia, seperti regresi Poisson, ketika probabilitas didasarkan pada pengamatan rasio "keberhasilan" untuk jumlah "percobaan," karena probabilitas berdasarkan lebih banyak percobaan telah diukur lebih andal. Itu tampaknya tidak menjadi kasus di sini, di mana probabilitas didasarkan pada informasi yang diperoleh. Seseorang dapat mendekati pendekatan regresi Poisson dengan menggunakan kuadrat terkecil tertimbang dalam contoh di bawah ini untuk memungkinkan data yang lebih atau kurang dapat diandalkan.)
Mari kita lihat sebuah contoh.
Plot sebar di sebelah kiri menunjukkan dataset (mirip dengan yang ada di pertanyaan) diplot dalam hal peluang log. Garis merah adalah kuadrat terkecil yang cocok. Ia memiliki rendah , menunjukkan banyak sebaran dan "regresi rata-rata" yang kuat: garis regresi memiliki kemiringan yang lebih kecil daripada sumbu utama awan titik elips ini. Ini adalah pengaturan yang biasa; mudah untuk menafsirkan dan menganalisis menggunakan 's fungsi atau setara.R2
R
lm
Plot sebar di sebelah kanan mengekspresikan data dalam hal probabilitas, seperti yang awalnya dicatat. Kesesuaian yang sama diplot: sekarang terlihat melengkung karena cara nonlinier di mana peluang log dikonversi menjadi probabilitas.
Dalam arti root mean squared error dalam hal peluang log, kurva ini paling cocok.
Kebetulan, bentuk awan sekitar elips di sebelah kiri dan cara melacak garis kuadrat terkecil menunjukkan bahwa model regresi kuadrat paling masuk akal: data dapat dijelaskan secara memadai oleh hubungan linear - asalkan peluang log digunakan-- dan variasi vertikal di sekitar garis kira-kira sama ukurannya terlepas dari lokasi horizontal (homoscedasticity). (Ada beberapa nilai rendah yang luar biasa di tengah yang mungkin perlu dicermati lebih dekat.) Evaluasi ini secara lebih rinci dengan mengikuti kode di bawah ini dengan perintah
plot(fit)
untuk melihat beberapa diagnostik standar. Ini saja adalah alasan kuat untuk menggunakan peluang log untuk menganalisis data ini, bukan probabilitas.sumber
Mengingat kemiringan dalam data dengan x, hal pertama yang jelas harus dilakukan adalah menggunakan regresi logisitic ( tautan wiki ). Jadi saya dengan whuber tentang ini. Saya akan mengatakan bahwa dengan sendirinya akan menunjukkan signifikansi yang kuat tetapi tidak menjelaskan sebagian besar penyimpangan (setara dengan jumlah total kuadrat dalam OLS). Jadi orang mungkin menyarankan bahwa ada kovariat lain selain dari yang membantu kekuatan penjelas (mis. Orang yang melakukan klasifikasi atau metode yang digunakan), data Anda sudah [0,1] walaupun: apakah Anda tahu apakah itu mewakili probabilitas atau kejadian rasio? Jika demikian, Anda harus mencoba regresi logistik menggunakan diubah (sebelum rasio / probabilitas).x x y y
Pengamatan Peter Flom hanya masuk akal jika y Anda bukan probabilitas. Periksax
plot(density(y));rug(y)
di ember berbeda dan lihat apakah Anda melihat distribusi Beta yang berubah atau jalankan saja . Perhatikan bahwa distribusi beta juga merupakan distribusi keluarga eksponensial dan oleh karena itu dimungkinkan untuk memodelkannya dengan R.betareg
glm
Untuk memberi Anda gambaran tentang apa yang saya maksud dengan regresi logistik:
EDIT: setelah membaca komentar:
Mengingat bahwa "Nilai-nilai y adalah probabilitas dari kelas tertentu, yang diperoleh dari rata-rata klasifikasi yang dilakukan secara manual oleh orang-orang," Saya sangat merekomendasikan melakukan regresi logistik pada data dasar Anda. Berikut ini sebuah contoh:
Asumsikan Anda melihat probabilitas seseorang menyetujui proposal ( setuju, tidak setuju) diberikan insentif antara 0 dan 10 (dapat ditransformasikan menjadi log, misal remunerasi). Ada dua orang yang mengajukan penawaran kepada kandidat ("Jill dan Jack"). Model yang sebenarnya adalah bahwa para kandidat memiliki tingkat penerimaan dasar dan yang meningkat dengan meningkatnya insentif. Tetapi itu juga tergantung pada siapa yang mengajukan penawaran (dalam hal ini kita katakan Jill memiliki peluang lebih baik daripada Jack). Asumsikan bahwa gabungan mereka meminta 1000 kandidat dan mengumpulkan data penerimaan (1) atau ditolak (0) mereka.y=1 y=0 x
Dari ringkasan Anda dapat melihat bahwa modelnya sangat cocok. Penyimpangannya adalah (std dari adalah ). Yang cocok dan mengalahkan model dengan probabilitas tetap (perbedaan penyimpangan beberapa ratus dengan ). Agak lebih sulit untuk menggambar karena ada dua kovariat di sini tetapi Anda mendapatkan idenya.χ2n−3 χ2 2.df−−−−√ χ22
Seperti yang Anda lihat, Jill memiliki waktu yang lebih mudah untuk mendapatkan hit rate yang baik daripada Jack tetapi itu hilang begitu insentif naik.
Anda pada dasarnya harus menerapkan model jenis ini ke data asli Anda. Jika output Anda adalah biner, pertahankan 1/0 jika multinomial, Anda memerlukan regresi logistik multinomial. Jika Anda berpikir sumber tambahan varians bukan pengumpul data, tambahkan faktor lain (atau variabel kontinu) apa pun yang menurut Anda masuk akal untuk data Anda. Data datang lebih dulu, kedua dan ketiga, baru setelah itu model tersebut ikut bermain.
sumber
glm
buat garis tidak rata yang relatif datar yang terlihat sangat seperti garis yang ditunjukkan dalam pertanyaan.Model regresi linier tidak cocok untuk data. Orang mungkin berharap untuk mendapatkan sesuatu seperti berikut dari regresi:
tetapi dengan menyadari apa yang dilakukan OLS, jelas bahwa ini bukan yang akan Anda dapatkan. Interpretasi grafis dari kuadrat terkecil biasa adalah meminimalkan kuadrat vertikal antara garis (hyperplane) dan data Anda. Jelas garis ungu yang saya tumpang tindih memiliki beberapa residu besar dari dan lagi di sisi lain dari 3. Inilah sebabnya mengapa garis biru lebih cocok daripada ungu.x∈(−7,4.5)
sumber
Karena Y dibatasi oleh 0 dan 1, regresi kuadrat terkecil tidak cocok. Anda dapat mencoba regresi beta. Di
R
sana adabetareg
paket.Coba sesuatu seperti ini
Info lebih lanjut
EDIT: Jika Anda ingin akun lengkap dari regresi beta, kelebihan dan kekurangannya, lihat Pemerasan lemon yang lebih baik: Regresi kemungkinan maksimum dengan variabel dependen terdistribusi beta oleh Smithson dan Verkuilen
sumber
betareg
sebenarnya diimplementasikan? Apa asumsi dan mengapa masuk akal untuk menganggap mereka berlaku untuk data ini?Pertama-tama Anda mungkin ingin tahu persis apa yang dilakukan model linear. Mencoba memodelkan hubungan formulir
Dimanaϵi memenuhi kondisi tertentu (heteroskedastisitas, varian seragam, dan independensi - wikipedia adalah awal yang baik jika itu tidak membunyikan lonceng). Tetapi bahkan jika kondisi ini diperiksa, sama sekali tidak ada jaminan bahwa ini akan menjadi "paling cocok" dalam arti yang Anda cari: OLS hanya berusaha untuk meminimalkan kesalahan dalam arah Y, yang merupakan apa yang dilakukannya di Anda kasus, tetapi yang bukan apa yang tampaknya paling cocok.
Jika model linier benar-benar yang Anda cari, Anda dapat mencoba mengubah variabel Anda sedikit sehingga OLS memang dapat dipasang, atau hanya mencoba model lain sama sekali. Anda mungkin ingin melihat ke PCA atau CCA, atau jika Anda benar-benar ingin menggunakan model linier, cobalah solusi kuadrat terkecil total , yang mungkin memberikan "kecocokan" yang lebih baik, karena memungkinkan kesalahan di kedua arah.
sumber