Prediksi Nilai Berdasarkan Tanggal
Memprediksi nilai berdasarkan tanggal sering dibutuhkan dalam berbagai ilmu, salah satu nya pada ilmu statitiska untuk melakukan analisisa. Dalam artikel ini, saya akan membagikan kode program Javascript untuk prediksi nilai berdasarkan tanggal (Predicting Values Based On Date) dengan pendekatan regresi linier berdasarkan tanggal yang diberikan.
Apa itu Regresi Linier?
Regresi linier adalah metode statistik yang digunakan untuk menemukan hubungan linier antara dua atau lebih variabel. Dengan ini, memungkinkan kita untuk menyesuaikan garis lurus ke titik-titik data yang diketahui, dan kemudian menggunakan garis tersebut untuk memprediksi nilai pada titik-titik lain di masa depan. Kami akan menggunakan metode ini untuk membuat fungsi yang dapat memprediksi nilai berdasarkan tanggal.
Sebuah tulisan dari IBM dapat memberikan gambaran kepada kita apa maksud dsari regresi linier ini, sebagaimana ditunjukkan pada grafik berikut:
Bahan yang disiapkan
- Kumpulkan Data
Pertama-tama, kita siapkan data yang diperlukan. Dalam hal ini kita siapkan data per tanggal, misalnya:- tanggal 2023-02-12 nilainya 34
- tanggal 2023-02-13 nilainya 90
- tanggal 2023-02-15 nilainya 60
- Siapkan Regresi Linier
Kita akan gunakan metode kuadrat terkecil untuk membuatkan garis lurus ke titik-titik data yang diketahui berdasarkan data diatas - Prediksi Nilai
Setelah kita memiliki model regresi linier, kita gunaka tanggal-tanggal baru yang ingin kita prediksi untuk mencari nilai yang sesuai dengan garis regresi.
Kode Program
Berikut adalah contoh implementasi fungsi JavaScript untuk memprediksi nilai berdasarkan tanggal:
// Fungsi untuk memprediksi nilai berdasarkan tanggal menggunakan pendekatan TREND seperti Excel
function predictTrend(data, targetDate) {
// Mengumpulkan nilai y dan x dari data
var knownYs = data.map(entry => entry.value);
var knownXs = data.map(entry => new Date(entry.date).getTime());
// Menghitung jumlah data
var n = knownYs.length;
// Menghitung jumlah X dan Y
var sumX = knownXs.reduce((acc, val) => acc + val, 0);
var sumY = knownYs.reduce((acc, val) => acc + val, 0);
var sumXY = knownXs.reduce((acc, val, index) => acc + val * knownYs[index], 0);
var sumXX = knownXs.reduce((acc, val) => acc + val * val, 0);
// Menghitung koefisien regresi (m) dan intercept (c)
var m = (n * sumXY - sumX * sumY) / (n * sumXX - sumX * sumX);
var c = (sumY - m * sumX) / n;
// Memperkirakan nilai Y baru berdasarkan nilai X baru
var newX = targetDate.getTime();
var newY = m * newX + c;
return newY;
}
// Data yang diberikan
var data = [
{ date: "2023-02-12", value: 34 },
{ date: "2023-02-13", value: 90 },
{ date: "2023-02-15", value: 60 }
];
// Tanggal yang ingin diprediksi nilainya
var targetDate = new Date("2023-02-14");
// Memperkirakan nilai untuk tanggal tertentu
var predictedValue = predictTrend(data, targetDate);
console.log("Perkiraan nilai untuk tanggal " + targetDate.toDateString() + " adalah: " + predictedValue);
Ketika dijalankan maka hasil dari program Javascript adalah 64.85714302847919. Untuk membandingkan hasil perhitungan kode program diatas, kita gunakan sebuah function dari Excel yaitu “TREND” dengan asumsi data yang dimasukkan adalah sama. Maka hasilnya adalah sama dengan keluaran dari Javascript yaitu seperti yang ditunjukkan pada gambar berikut:
Semoga artikel Predicting Values Based on Date using JavaScript ini bermanfaat.