Pertanyaan perkiraan kuadrat terkecil

11

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.

Uday Pramod
sumber
2
Saya pikir dalam praktiknya orang menggunakan hal-hal seperti interpolasi spline en.wikipedia.org/wiki/Spline_interpolation sehingga polis pesanan rendah digunakan, tetapi mereka cocok satu sama lain di seluruh domain. Dengan cara ini orang tidak perlu menebak untuk urutan polinomial keseluruhan.
Nasser
Terima kasih untuk tautannya. Kami belum membahas splines, jadi ini bacaan yang menarik.
Uday Pramod
Apa sebenarnya yang ingin Anda lakukan? Apakah Anda mencoba menginterpolasi poin atau menyesuaikan data yang diberikan? Sebagai contoh, tidak berguna untuk menginterpolasi data yang terdiri dari distribusi normal dengan noise. Bagi mantan, jawaban Nasser bagus. Untuk yang terakhir, fungsi fit hanya tergantung pada masalah yang dihadapi dan dalam banyak kasus tidak polinomial.
hauntergeist
Anda mungkin tertarik dengan jawaban pertanyaan ini pada cross divalidasi .
Bort

Jawaban:

18

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:

x = 1   2   3   4   5   6   7   8   9  10
y = 1   1 1.1   1   1   1   1   1   1   1

Interpolasi
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:

Year:  2000   2001   2002   2003   2004   2005   2006   2007   2008   2010
Pop.: 284.97 287.63 290.11 292.81 295.52 298.38 301.23 304.09 306.77 309.35

Dengan menggunakan kuadrat linear terkecil eksponensial N(t)=A*exp(B*t)atau interpolasi polinomial urutan ke-10 memberikan hasil sebagai berikut:
Plot populasi

Pertumbuhan populasi AS tidak terlalu eksponensial, tetapi saya akan membiarkan Anda menjadi hakim yang lebih baik.

Doug Lipinski
sumber
1
Satu hal yang saya akan buat dengan grafik populasi AS Anda, dari memori yang cocok di domain tidak berarti bahwa ia akan memperkirakan dengan baik. Mengingat hal itu, mungkin menyesatkan untuk menunjukkan kesalahan polinom besar di luar wilayah tempat Anda memiliki data.
Daryl
@Daryl Setuju, itu sebabnya saya menekankan bahwa ekstrapolasi harus dilakukan dengan hati-hati dan bahwa memilih fungsi yang tepat sangat penting dalam kasus itu.
Doug Lipinski
@DougLipinski Terima kasih atas jawaban mendalamnya. Bisakah Anda menjelaskan apa yang Anda maksudkan dengan kuadrat linierisasi paling bertentangan dengan kuadrat terkecil?
bela83
@ bela83 Menjawab dengan benar itu terlalu lama untuk dikomentari. Saya pikir itu akan menjadi pertanyaan baru yang sangat bagus jika Anda ingin menanyakannya.
Doug Lipinski
@DougLipinski Saya akan mencobanya!
bela83
2

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.

LKlevin
sumber
1

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.

dan04
sumber