Saya mengambil kursus perhitungan ilmiah, dan kami baru saja mendekati pendekatan kuadrat. Pertanyaan saya secara khusus tentang perkiraan menggunakan polinomial. Saya mengerti bahwa jika Anda memiliki titik data n +1, Anda dapat menemukan polinomial tingkat n yang unik yang menggambarkan semua titik ini. Tapi saya juga bisa melihat mengapa ini tidak selalu ideal. Anda bisa mendapatkan banyak suara di antara titik data dengan pendekatan seperti itu. Saya kira itu bagus untuk mendapatkan polinomial tingkat rendah yang memperkirakan data Anda dengan cukup baik.
Pertanyaan saya adalah: bagaimana Anda memutuskan dalam praktiknya derajat polinomial apa yang akan Anda gunakan? Apakah ada aturan praktis, atau hanya bergantung pada masalah yang dihadapi? Apakah kita harus mempertimbangkan berbagai pengorbanan ketika memutuskan antara kurang lebih derajat? Atau saya salah paham sesuatu di sini?
Terima kasih sebelumnya.
sumber
Jawaban:
Aspek yang paling penting dari interpolasi dan pemasangan kurva adalah untuk memahami mengapa polinomial orde tinggi dapat menjadi masalah dan apa pilihan lainnya dan kemudian Anda dapat memahami kapan itu / bukan pilihan yang baik.
Beberapa masalah dengan polinomial tingkat tinggi:
Polinomial adalah fungsi berosilasi secara alami. Ketika urutan polinomial meningkat, jumlah osilasi meningkat dan osilasi ini menjadi lebih parah. Saya menyederhanakan di sini, kemungkinan beberapa dan akar imajiner membuatnya sedikit lebih kompleks, tetapi intinya sama.
Pendekatan polinomial +/- tak terhingga pada tingkat yang sama dengan urutan polinomial saat x pergi ke +/- tak terhingga. Ini sering kali bukan perilaku yang diinginkan.
Komputasi koefisien polinomial untuk polinomial orde tinggi biasanya merupakan masalah yang dikondisikan. Ini berarti bahwa kesalahan kecil (seperti pembulatan di komputer Anda) dapat membuat perubahan besar dalam jawabannya. Sistem linier yang harus diselesaikan melibatkan Vandermonde Matrix yang dapat dengan mudah dikondisikan.
Saya pikir mungkin inti masalah ini adalah perbedaan antara pemasangan kurva dan interpolasi .
Interpolasi digunakan ketika Anda percaya bahwa data Anda sangat akurat sehingga Anda ingin fungsi Anda benar-benar cocok dengan poin data. Saat Anda membutuhkan nilai di antara titik data Anda, biasanya yang terbaik adalah menggunakan fungsi halus yang cocok dengan tren data setempat. Cubic atau Hermite splines sering merupakan pilihan yang baik untuk jenis masalah ini karena mereka jauh kurang sensitif terhadap non-lokal (yang berarti pada titik data yang jauh dari titik tertentu) perubahan atau kesalahan dalam data dan kurang berosilasi daripada polinomial. Pertimbangkan kumpulan data berikut:
Kesesuaian polinomial memiliki osilasi yang jauh lebih besar, terutama di dekat tepi kumpulan data, daripada spline Hermite.
Di sisi lain, pendekatan kuadrat terkecil adalah fitting kurvateknik. Pemasangan kurva digunakan ketika Anda memiliki beberapa gagasan tentang fungsionalitas yang diharapkan dari data Anda, tetapi Anda tidak perlu fungsi Anda untuk melewati semua titik data dengan tepat. Ini khas ketika data mungkin mengandung kesalahan pengukuran atau ketidaktepatan lain atau ketika Anda ingin mengekstrak tren umum data. Perkiraan kuadrat terkecil paling sering diperkenalkan dalam kursus dengan menggunakan polinomial untuk pemasangan kurva karena ini menghasilkan sistem linier yang relatif mudah dipecahkan dengan menggunakan teknik yang mungkin Anda pelajari sebelumnya dalam kursus Anda. Namun, teknik kuadrat terkecil jauh lebih umum daripada hanya cocok polinomial dan dapat digunakan agar sesuai dengan fungsi yang diinginkan untuk satu set data. Misalnya, jika Anda mengharapkan tren pertumbuhan eksponensial dalam kumpulan data Anda,
Akhirnya, memilih fungsi yang benar agar sesuai dengan data Anda sama pentingnya dengan melakukan interpolasi dengan benar atau perhitungan kuadrat terkecil. Melakukannya bahkan memungkinkan kemungkinan ekstrapolasi (hati-hati). Pertimbangkan situasi berikut. Data populasi yang diberikan (dalam jutaan orang) untuk AS dari 2000-2010:
Dengan menggunakan kuadrat linear terkecil eksponensial
N(t)=A*exp(B*t)
atau interpolasi polinomial urutan ke-10 memberikan hasil sebagai berikut:Pertumbuhan populasi AS tidak terlalu eksponensial, tetapi saya akan membiarkan Anda menjadi hakim yang lebih baik.
sumber
Sangat tidak ilmiah, tetapi aturan praktis yang baik adalah bahwa polinomial tingkat 3 biasanya merupakan awal yang baik, dan dalam praktiknya saya belum pernah melihat orang menggunakan lebih dari tingkat 6 yang mendapatkan hasil yang baik.
Polinomial "ideal" akan menjadi urutan terendah yang mewakili data tanpa suara yang cukup baik untuk tujuan Anda.
Jika data Anda cukup kecil untuk memungkinkannya (biasanya demikian), Anda dapat mencoba menyesuaikan dengan polinomial berurutan lebih tinggi hingga Anda mulai melihat osilasi, yang cenderung menjadi tanda "overfitting".
Alternatif akan menjadi spline smoothing , tetapi sangat tergantung pada aplikasinya. Splines dan smoothing splines hanya baik untuk interpolasi. Untuk data yang berisik, saya cenderung memilih polinomial untuk merapikan splines, tetapi data yang saya kerjakan biasanya didekati dengan baik oleh polinomial.
sumber
Pendekatan yang cukup efektif yang saya gunakan dengan pendekatan polinomial adalah menghitung polinomial kuadrat-terkecil untuk berbagai derajat (misalnya, dari 1 hingga 10) dan kemudian memilih kurva yang meminimalkan kesalahan kuadrat rata-rata pada titik - titik di tengah-tengah antara berturut - turut (ketika diurutkan berdasarkan x) poin dalam set data Anda. Ini membantu untuk mengesampingkan kurva dengan osilasi yang terlalu parah.
sumber