Rapython : Multidimensional Scaling Rapfish Basis Python

Rapython merupakan aplikasi multidimensional scaling yang berbasis python untuk menganalisis multi sektor atau multi dimensi yang biasa di kenal MDS atau Rapfish. Multidimensional scaling biasa digunakan untuk membuat indeks dari berbagai dimensi sehingga memudahkan peneliti untuk melakukan pengukuran dan pengelompokkan terhadap beberapa objek.

Hingga artikel ini ditulis, terdapat 2 aplikasi yang cukup terkenal dalam penentuan MDS Rapfish; yakni aplikasi addins excel dan script pada aplikasi R. Keduanya tersedia dalam blog catatan budi yang juga menyediakan tutorialnya secara lengkap. Kedua aplikasi tersebut memiliki kelebihan dan kekurangannya masing-masing.

MDS yang menggunakan addins Excel memiliki kelebihan pada output yang dikeluarkan. Hal ini disebabkan karena semua proses pembentukan indeks dituangkan dalam sheet yang ada didalam excel itu sendiri. Tidak heran jika sebagian besar mahasiswa memilih untuk menggunakannya. Kekurangan yang utama dimiliki oleh aplikasi addins ini adalah pertama, aplikasi tidak stabil. Aplikasi addins sangat dipengaruhi oleh kondisi sofware M Excel sebagai induk aplikasi tersebut. Padahal M excel memiliki fungsi yang luas sehingga secara umum digunakan oleh peneliti untuk pemrosesan data yang lain. Hal ini memungkinkan peneliti menggunakan addins atau macro yang lain dan itu sangat mempengaruhi penggunaan addins rapfish di excel. Tidak jarang saya mendapatkan keluhan bahwa addins rapfish excel ini tidak bisa berjalan dengan semestinya. Parahnya, addins ini tidak menyertakan debug sehingga terkadang sebagian data sudah running dan digunakan oleh pengguna karena ketidaktauan kondisi error yang terjadi. itu adalah point yang sangat kritis.

Kelemahan selanjutnya bahwa addins tersebut hanya bisa dijalankan pada microsoft excel dengan kernel 32 bit. padahal, Seiring perkembangan teknologi tipe kernel tersebut perlahan sudah ditinggalkan. Secara default saat ini laptop atau komputer memiliki kernel 64 bit. Tak ayal jika pengguna harus menginstall kembali microsoft excel 32 bit agar bisa mengolah rapfish dengan baik. Kondisi ini tentu akan rumit jika pengguna memiliki prinsip hanya menggunakan aplikasi resmi. Padahal, dalam komputernya sudah terinstal aplikasi microsoft excel resmi 64 bit.

Aplikasi Rapfish berikutnya adalah paket script yang menggunakan aplikasi R. aplikasi ini memiliki kelebihan bisa berjalan dengan cepat pada komputer mana pun baik 64 atau 32 bit. Namun, script R tidak memberikan output selengkap addins excel. Output tingkat stress dan R squared tidak tercantum di dalamnya padahal dua komponen itu sangat krusial. Script R memang cocok untuk pengembangan software yang mengharuskan keputusan yang cepat seperti tingkat industri atau pemerintah. Selain itu, tidak semua peneliti atau mahasiswa mampu memahami bahasa script, sehingga meskipun terdapat tutorial yang cukup lengkap, kebanyakan mereka angkat tangan ketika muncul pesan error di layar.

Rapython: Kombinasi Rapfish Addins Excel dan Aplikasi R

Berdasarkan kelemahan yang dimiliki oleh aplikasi addins excel dan aplikasi R, maka saya meluncurkan sebuah aplikasi yang berbasis Python. Rapython berusaha menghadirkan output selengkap Addins Excel namun prosesnya lebih mudah dibanding Aplikasi R. Hal ini dikarenakan Rapython menggunakan pendekatan GUI windows sehingga pengguna hanya memasukkan input data tanpa harus mengatur script layaknya menggunakan R.

Tampilan Rapython

Secara umum, saat kita membuka aplikasi ini terdapat 3 tab, yakni main analysis, leverage analysis dan monte carlo. bagi yang sudah familiar menggunakan addins pasti tidak akan asing dengan menu yang ada dalam aplikasi Rapython ini.

Alur proses dari rapython ini juga dibuat sama dengan alur yang ada pada addins excel, yakni pertama pengguna akan menganalisis nilai rapfish atau MDS, selanjutnya dia bisa menganalisis leverage dan atau montecarlo.

Kesamaan dan Kemiripan Rapython dengan addins excel

Tantangan terbesar dalam penyusunan aplikasi ini adalah bagaimana membuatnya menyerupai atau identik dengan hasil yang dikeluarkan oleh addins excel. Addins excel menjadi tolok ukur karena mayoritas pengguna menggunakannya. Padahal, algoritma yang digunakan oleh addins excel yakni alscal itu sendiri berbeda dengan algoritma yang digunakan dalam paket python (yakni algoritma scikit learn). Algoritma scikit learn ini memiliki keunggulan dalam mengestimasi jarak antar fisheries dibandingkan alscal. sehingga perbedaan perhitungan antara algoritma scikit-learn (python) dan alscal (addins excel) seyogyanya bukan menjadi perdebatan lagi. Faktanya, alscal yang ada dalam module procrustes package sudah ditinggalkan oleh package python (procrustes terdapat di python 2 sedangkan saat ini sudah python 3.13). Oleh sebab itu saya memutuskan untuk menggunakan algoritma terbaru yang menyediakan module MDS.

Namun, bukan berarti hasil dari Rapython dan addins excel terlalu berbeda. Dua hal yang membuktikan bahwa Rapython bisa digunakan untuk menggantikan addins excel. Pertama. struktur script dan proses perhitungan Rapython dibuat sama seperti proses perhitungan mds di addins excel. hal ini sudah divalidasi menggunakan AI untuk membedakan kedua struktur script Rapython dan addins excel (menggunakan VBA). hasilnya adalah sebagai berikut:

# Analysis of Rapfish Code Comparison

After carefully reviewing both the Python (`Rapython.py`) and VBA Rapfish implementations, I can confirm that the main Rapfish analysis process is functionally equivalent between the two versions, with some implementation differences due to the languages. Here's the detailed comparison:

## Key Similarities

1. **Core Process Flow**: Both implementations follow the same fundamental steps:
   - Data loading and validation
   - Standardization (using either fisheries stats or GOOD-BAD fixed range)
   - Distance matrix calculation (Euclidean)
   - Multidimensional Scaling (MDS)
   - Rotation to align BAD-GOOD horizontally
   - Scaling to set BAD=0, GOOD=100, UP=50, DOWN=-50
   - Results visualization

2. **Standardization Methods**: Both offer the same two standardization options:
   - Fisheries statistics (mean and standard deviation)
   - Fixed GOOD-BAD range scaling (BAD=0, GOOD=1)

3. **Reference Points Handling**: Both handle the 4 reference points (GOOD, BAD, UP, DOWN) identically in the rotation and scaling process.

4. **Anchor Points**: Both support anchor points for stabilization.

## Implementation Differences

1. **MDS Implementation**:
   - VBA uses a Fortran DLL (`g77alscal.dll`) for MDS
   - Python uses scikit-learn's `MDS` class

2. **Error Handling**:
   - VBA has extensive error codes from the Fortran DLL
   - Python has simpler error handling with try/except blocks

3. **Visualization**:
   - VBA uses Excel's built-in charting
   - Python uses matplotlib with interactive Tkinter canvas

4. **Code Structure**:
   - VBA is procedural with separate subroutines
   - Python is object-oriented with a class structure

## Verification of Key Steps

1. **Standardization**:
   - Python's `standardize_scores()` matches VBA's standardization logic exactly
   - Both handle the GOOD-BAD fixed scaling identically: `(scores - bad) / (good - bad)`

2. **Distance Calculation**:
   - Both use Euclidean distance (`pdist` in Python, custom `Proximities` in VBA)

3. **Rotation**:
   - Both calculate the angle between BAD-GOOD and rotate all points by -θ
   - Python uses a rotation matrix, VBA has equivalent rotation logic

4. **Scaling**:
   - Both scale BAD to 0 and GOOD to 100 on X-axis
   - Both set UP to 50 and DOWN to -50 on Y-axis
   - Python's `scale_results()` function matches VBA's `FlipNScale` logic

## Conclusion

The Python implementation in `Rapython.py` correctly replicates all the key functionality of the original VBA Rapfish code. The main differences are in the implementation details (language features, libraries used), not in the core algorithm.

The Python version actually provides some improvements:
- Better error messages
- More interactive visualization
- Additional features like Monte Carlo simulation
- Cleaner code organization

You can be confident that the Python version will produce equivalent results to the VBA version when given the same input data.

AI bahkan menyadari bahwa Rapfish addins Excel justru memiliki area kode kesalahan yang luas karena tidak menyediakan debug ,dan juga belum memperhitungkan euclidean antar fisheries (meskipun kebanyakan penelitian hanya menganalisis satu fisheries).

Alasan kedua mengapa Rapython dapat menggantikan addins excel untuk menghitung MDS adalah nilai Mean Absolute percentage error (MAPE) dari perhitungan MDS yang ada di templatenya, hanya berkisar 8 persen. Jika asumsi perhitungan MDS excel yang paling benar, maka error hanya 3 persen. Padahal, sekali lagi ini bukan error melainkan perbedaan language atau algoritma sesuai alasan pertama tadi. Meskipun begitu 3 persen tidaklah buruk. Nilai MDS yang tidak robust pun bisa berubah karena nilai montecarlonya yang tidak stabil, jadi bukan hanya faktor alatnya saja. Saya menggunakan perbandingan nilai tersebut dalam template yang disediakan addins excel. Secara detil dijelaskan dalam video berikut:

This content is blocked because it requires marketing cookies.

Tutorial penggunaan Rapython: Multidimensional scaling Rapfish

Ketika anda mendownload aplikasi ini, silahkan mengekstraknya dan cukup klik sekali maka akan terbuka aplikasinya. aplikasi ini portable sehingga tidak perlu menginstallnya. Jika anda menggunakan untuk pertama kali, kemungkinan akan membutuhkan waktu yang agak lama karena komputer akan mengimpor module module python yang akan digunakan dalam aplikasi tersebut. Pastikan komputer anda kompatible untuk aplikasi ini.

Requirement: OS Windows 11 ke atas, 64 bit, RAM 8 GB. ini adalah spesifikasi laptop yang saya gunakan sebagai gambaran requirement aplikasi.

Persiapan data. Data yang perlu disiapkan untuk mengolah nilai multidimensional scaling adalah data yang sama dengan data addins excel. hanya saja, anda menyimpan dalam bentuk .xlsx atau format umum microsoft excel.

Data ini lengkap dengan atribut, fisheries, nilai good, bad, UP, DOWN, beserta anchornya. Penentuan data-data ini sudah lengkap dibahas di artikel sebelumnya. Selanjutnya pada aplikasi Rapython masukkan file excel ini beserta keterangan dimana row fisheries, good, bad, up, down, dan anchor seperti halnya anda menggunakan addins excel.

Perbedaannya.. format excel dan python (module pandas) memiliki perbedaan struktur baris. jika excel dimulai dengan row 1,2,3,4… maka pandas atau python dimuulai dengan row 0,1,2,3,4…. hal ini mempengaruhi penginputan pada Rapython. Jika baris Good dalam excel berada di row 30 maka masukkan kedalam aplikais (n-1) atau 29. untuk meyesuaikan struktur baris pandas yang membaca file yang sama. setelah itu, klik Run Rapfish

klik export result jika anda menginginkan nilainya dalam format excel, dan anda pun bebas memvisualisasikan hasil analisis ini.

Kemudian pada tab leverage cukup anda klik Run Leveraging maka akan keluar hasil analisis leveragenya:

Juga terdapat export leverage result dalam format excel. terakhir untuk montecarlo silahkan isikan berapa ulangan yang akan dilakukan dan nilai noisenya:

Demikian Penjelasan tentang aplikasi Rapython . Aplikasi Rapython dapat diunduh di sini:

Rapython Download

Selamat Belajar!