Pertanyaan di atas mengatakan semuanya. Pada dasarnya pertanyaan saya adalah untuk fungsi pemasangan generik (bisa rumit semena-mena) yang akan nonlinier dalam parameter yang saya coba perkirakan, bagaimana cara memilih nilai awal untuk menginisialisasi fit? Saya mencoba melakukan kuadrat terkecil nonlinier. Apakah ada strategi atau metode? Apakah ini sudah dipelajari? Ada referensi? Apa pun selain menebak ad hoc? Khususnya, saat ini salah satu bentuk pemasangan yang saya kerjakan adalah bentuk Gaussian plus linear dengan lima parameter yang saya coba perkirakan, seperti
di mana (data absis) dan ( data) yang berarti bahwa dalam ruang log-log data saya terlihat seperti garis lurus ditambah benjolan yang saya aproksimasi oleh seorang Gaussian. Saya tidak punya teori, tidak ada yang membimbing saya tentang bagaimana menginisialisasi fit nonlinier kecuali mungkin grafik dan bola mata seperti kemiringan garis dan apa pusat / lebar benjolan itu. Tapi saya punya lebih dari seratus ini cocok untuk melakukannya daripada membuat grafik dan menebak, saya lebih suka beberapa pendekatan yang dapat otomatis. y = log 10
Saya tidak dapat menemukan referensi, di perpustakaan atau online. Satu-satunya hal yang dapat saya pikirkan adalah memilih nilai awal secara acak. MATLAB menawarkan untuk memilih nilai secara acak dari [0,1] yang didistribusikan secara seragam. Jadi dengan setiap set data, saya menjalankan kecocokan yang diinisialisasi secara acak ribuan kali dan kemudian memilih yang dengan tertinggi ? Ada ide lain (lebih baik)?
Adendum # 1
Pertama, berikut adalah beberapa representasi visual dari set data hanya untuk menunjukkan kepada kalian data seperti apa yang saya bicarakan. Saya memposting kedua data dalam bentuk aslinya tanpa transformasi apa pun dan kemudian representasi visualnya dalam ruang log-log saat itu mengklarifikasi beberapa fitur data sambil mendistorsi yang lain. Saya memposting sampel data baik dan buruk.
Masing-masing dari enam panel di masing-masing gambar menunjukkan empat set data yang disusun bersama merah, hijau, biru, dan cyan dan setiap set data memiliki tepat 20 titik data. Saya mencoba mencocokkan masing-masing dengan garis lurus ditambah gaussian karena benjolan yang terlihat dalam data.
Angka pertama adalah beberapa data yang baik. Gambar kedua adalah plot log-log dari data baik yang sama dari gambar satu. Angka ketiga adalah beberapa data buruk. Angka keempat adalah plot log-log dari gambar tiga. Ada lebih banyak data, ini hanya dua himpunan bagian. Sebagian besar data (sekitar 3/4) bagus, mirip dengan data bagus yang saya tunjukkan di sini.
Sekarang beberapa komentar, mohon bersabar karena ini mungkin akan lama tapi saya pikir semua detail ini diperlukan. Saya akan berusaha sesingkat mungkin.
Saya awalnya mengharapkan hukum kekuatan sederhana (artinya garis lurus dalam ruang log-log). Ketika saya memplot semuanya dalam ruang log-log, saya melihat benjolan tak terduga di sekitar 4,8 mHz. Benjolan itu diselidiki secara menyeluruh dan ditemukan dalam karya orang lain juga sehingga bukan kita yang kacau. Secara fisik ada dan karya-karya lain yang diterbitkan menyebutkan ini juga. Jadi saya baru saja menambahkan istilah gaussian ke bentuk linear saya. Perhatikan bahwa penyesuaian ini harus dilakukan dalam ruang log-log (maka dua pertanyaan saya termasuk yang satu ini).
Sekarang, setelah membaca jawaban oleh Stumpy Joe Pete untuk pertanyaan saya yang lain (tidak terkait dengan data ini sama sekali) dan membaca ini dan ini dan referensi di dalamnya (barang-barang oleh Clauset), saya menyadari bahwa saya tidak boleh masuk log-log ruang. Jadi sekarang saya ingin melakukan segalanya di ruang pra-transformasi.
Pertanyaan 1: Melihat data yang baik, saya masih berpikir bahwa linear plus gaussian dalam ruang pra-transformasi masih merupakan bentuk yang baik. Saya ingin mendengar dari orang lain yang memiliki lebih banyak data-pengalaman apa yang mereka pikirkan. Apakah gaussian + linear masuk akal? Haruskah saya melakukan gaussian saja? Atau bentuk yang sama sekali berbeda?
Pertanyaan 2: Apa pun jawaban untuk pertanyaan 1, saya masih akan membutuhkan (kemungkinan besar) kuadrat terkecil non-linear sehingga masih perlu bantuan dengan inisialisasi.
Data di mana kami melihat dua set, kami sangat suka untuk menangkap benjolan pertama di sekitar 4-5 mHz. Jadi saya tidak ingin menambahkan lebih banyak istilah gaussian dan istilah gaussian kami harus dipusatkan pada bump pertama yang hampir selalu merupakan bump yang lebih besar. Kami ingin "lebih akurat" antara 0.8mHz dan sekitar 5mHz. Kami tidak terlalu peduli untuk frekuensi yang lebih tinggi tetapi juga tidak ingin mengabaikannya. Jadi mungkin semacam penimbangan? Atau B dapat diinisialisasi sekitar 4.8mHz selalu?
Data absis adalah frekuensi dalam satuan milihertz, ditunjukkan oleh . Data ordinat adalah koefisien kita komputasi, melambangkannya dengan . Jadi tidak ada transformasi log, dan bentuknyaL
- adalah frekuensi, selalu positif.
- adalah koefisien positif. Jadi kami bekerja di kuadran pertama.
- A > 0 A , amplitudo harus selalu positif juga saya pikir karena kita hanya berurusan dengan gundukan. Ketika saya melihat data, saya selalu melihat puncak dan tidak ada lembah. Sepertinya di semua data ada beberapa gundukan pada frekuensi yang lebih tinggi. Benjolan pertama selalu jauh lebih besar dari yang lain. Dalam data yang baik, gundukan sekunder sangat lemah tetapi dalam data yang buruk (panel 2 dan 5 misalnya), gundukan sekunder kuat. Jadi sebenarnya kita tidak memiliki lembah, melainkan dua gundukan. Artinya amplitudo . Dan karena kami sangat peduli dengan puncak pertama, semakin banyak alasan untuk menjadi positif.
- adalah pusat dari benjolan dan kami selalu menginginkannya di benjolan besar sekitar 4-5mHz. Dalam rentang frekuensi yang telah kami selesaikan, frekuensi ini hampir selalu muncul pada 4,8 MHz.
- C - C adalah lebar benjolan. Saya membayangkan simetris di sekitar nol yang berarti akan memiliki efek yang sama dengan karena kuadrat. Jadi kami tidak peduli apa nilainya. Katakanlah kita lebih suka itu positif.
- adalah kemiringan garis, sepertinya itu bisa sedikit negatif sehingga tidak memberlakukan batasan apa pun padanya. Kemiringan itu menarik dengan sendirinya sehingga alih-alih menegakkan batasan apa pun, kami hanya ingin melihat seperti apa jadinya. Apakah positif atau negatif? Seberapa besar / kecil? dan seterusnya.
- L E L f = 0 adalah (hampir) -intercept. Hal yang halus di sini adalah bahwa karena istilah gaussian, tidak cukup dengan -intercept. Intep sebenarnya (jika kita mengekstrapolasi ke ) adalah
Jadi satu-satunya batasan di sini adalah intersepsi juga harus positif. Pencegatan menjadi nol, saya tidak tahu apa artinya itu. Tetapi negatif tampaknya tidak masuk akal. Saya kira di sini kita dapat memungkinkan untuk menjadi sedikit negatif dengan besarnya kecil jika perlu. Alasan dan intersep penting di sini, tetapi beberapa rekan kami sebenarnya tertarik pada ekstrapolasi juga. Frekuensi minimum yang kami miliki adalah 0.8mHz dan mereka ingin memperkirakan antara 0 dan 0.8mHz. Gagasan naif saya adalah menggunakan fit untuk turun sampai .E f = 0
Saya tahu ekstrapolasi lebih sulit / lebih berbahaya daripada interpolasi tetapi menggunakan garis lurus plus gaussian (berharap itu meluruh cukup cepat) tampaknya masuk akal bagi saya. Semacam splines kubik alami seperti dengan kondisi batas alami, kemiringan di titik akhir kiri, cukup rentangkan garis dan lihat di mana ia melintasi sumbuJika tidak negatif maka gunakan garis itu untuk ekstrapolasi.
Pertanyaan 3: Menurut Anda apa yang mengekstrapolasi dengan cara ini dalam kasus ini? Ada pro / kontra? Ada ide lain untuk ekstrapolasi? Sekali lagi kami hanya peduli tentang frekuensi yang lebih rendah sehingga memperkirakan antara 0 dan 1mHz ... kadang-kadang frekuensi sangat sangat kecil, mendekati nol. Saya tahu posting ini sudah penuh. Saya mengajukan pertanyaan ini di sini karena jawabannya mungkin terkait tetapi jika kalian lebih suka saya dapat memisahkan pertanyaan ini dan bertanya yang lain nanti.
Terakhir, berikut adalah dua set data sampel berdasarkan permintaan.
0.813010000000000 0.091178000000000 0.012728000000000
1.626000000000000 0.103120000000000 0.019204000000000
2.439000000000000 0.114060000000000 0.063494000000000
3.252000000000000 0.123130000000000 0.071107000000000
4.065000000000000 0.128540000000000 0.073293000000000
4.878000000000000 0.137040000000000 0.074329000000000
5.691100000000000 0.124660000000000 0.071992000000000
6.504099999999999 0.104480000000000 0.071463000000000
7.317100000000000 0.088040000000000 0.070336000000000
8.130099999999999 0.080532000000000 0.036453000000000
8.943100000000001 0.070902000000000 0.024649000000000
9.756100000000000 0.061444000000000 0.024397000000000
10.569000000000001 0.056583000000000 0.025222000000000
11.382000000000000 0.052836000000000 0.024576000000000
12.194999999999999 0.048727000000000 0.026598000000000
13.008000000000001 0.045870000000000 0.029321000000000
13.821000000000000 0.041454000000000 0.067300000000000
14.633999999999999 0.039596000000000 0.081800000000000
15.447000000000001 0.038365000000000 0.076443000000000
16.260000000000002 0.036425000000000 0.075912000000000
Kolom pertama adalah frekuensi dalam mHz, identik di setiap set data tunggal. Kolom kedua adalah kumpulan data yang baik (data yang baik gambar satu dan dua, panel 5, penanda merah) dan kolom ketiga adalah kumpulan data yang buruk (data angka tiga dan empat yang buruk, panel 5, penanda merah).
Semoga ini cukup untuk merangsang beberapa diskusi yang lebih tercerahkan. Terima kasih semuanya.