Distribusi probabilitas merupakan konsep dasar dalam statistika dan analisis data. Pada tutorial ini, kita akan membahas cara memanfaatkan MATLAB untuk:
Semua contoh akan menggunakan data sintetis maupun dataset nyata yang dapat diimport ke MATLAB.
Pastikan MATLAB terinstal dengan Toolbox Statistics and Machine Learning Toolbox. Pada command window, cek ketersediaan toolbox dengan perintah:
ver Jika toolbox tidak terlihat, instal melalui AddOns Explorer.
Data dapat diimport dari file CSV, Excel, atau langsung didefinisikan dalam script.
% Membuat data normal dengan mean 5 dan std 2data = 5 + 2*randn(1000,1); filename = 'data_ukuran.csv';tbl = readtable(filename);data = tbl.Ukuran; % Asumsi kolom bernama 'Ukuran' Langkah pertama adalah melihat bentuk data dengan histogram.
histogram(data,30,'Normalization','pdf');title('Histogram Data');xlabel('Nilai');ylabel('Frekuensi (pdf)'); Penambahan 'Normalization','pdf' menampilkan histogram dalam skala kepadatan sehingga dapat dibandingkan dengan PDF yang diestimasikan.
MATLAB menyediakan fungsi fitdist untuk mengestimasi parameter berbagai distribusi. Berikut beberapa distribusi yang umum dipakai:
'Normal')'Lognormal')'Exponential')'Gamma')'Weibull')pd_norm = fitdist(data,'Normal'); pd_gamma = fitdist(data,'Gamma'); Setelah mengfit distribusi, kita dapat menampilkan fungsi kepadatan dan kumulatifnya bersamaan dengan histogram.
x = linspace(min(data),max(data),100);% PDF dan CDF Normalpdf_norm = pdf(pd_norm,x);cdf_norm = cdf(pd_norm,x);% Plotfigure;histogram(data,30,'Normalization','pdf','EdgeColor','none');hold on;plot(x,pdf_norm,'r','LineWidth',2);title('Histogram + PDF (Normal)');legend('Data','PDF Normal');hold off;figure;plot(x,cdf_norm,'b','LineWidth',2);title('CDF (Normal)');xlabel('Nilai');ylabel('Probabilitas'); Gantilah pd_norm dengan objek distribusi lain untuk membandingkan hasilnya.
Untuk menilai seberapa cocok suatu distribusi dengan data, gunakan chi2gof atau kstest.
[h,p,stats] = chi2gof(data,'CDF',pd_norm);fprintf('ChiSquare: h=%d, p=%.4f\\n',h,p); [h,p] = kstest(data,'CDF',pd_norm);fprintf('KS Test: h=%d, p=%.4f\\n',h,p); Nilai p yang besar (biasanya >0.05) menunjukkan tidak ada bukti yang cukup untuk menolak hipotesis bahwa data mengikuti distribusi yang dipilih.
Seringkali diperlukan perbandingan kuantitatif antara beberapa kandidat. Teknik yang praktis:
distNames = {'Normal','Lognormal','Gamma','Weibull'};aicVals = zeros(length(distNames),1);bicVals = zeros(length(distNames),1);for i=1:length(distNames) pd = fitdist(data,distNames{i}); logL = sum(log(pdf(pd,data))); k = numel(pd.ParameterValues); n = length(data); aicVals(i) = 2*k - 2*logL; bicVals(i) = k*log(n) - 2*logL;endT = table(distNames',aicVals,bicVals,'VariableNames',... {'Distribusi','AIC','BIC'});disp(T); Model dengan nilai AIC atau BIC terkecil dianggap paling sesuai.
Setelah memilih model terbaik, Anda dapat mensimulasikan data baru untuk analisis Monte Carlo.
% Asumsikan distribusi Gamma terpilihpd_best = pd_gamma; % atau objek yang memiliki AIC/BIC terkecilsimData = random(pd_best,1000,1);% Plot perbandinganfigure;histogram(data,30,'Normalization','pdf','FaceAlpha',0.5);hold on;histogram(simData,30,'Normalization','pdf','FaceAlpha',0.5);legend('Data Asli','Data Simulasi');title('Perbandingan Data Asli dan Simulasi');hold off; Dengan toolbox statistik MATLAB, proses penentuan fungsi distribusi probabilitas dapat dilakukan secara sistematis: mulai dari impor data, visualisasi, fitting, evaluasi goodnessoffit, hingga pemilihan model terbaik menggunakan kriteria informasi. Teknikteknik yang dipaparkan di atas dapat diterapkan pada berbagai bidang seperti teknik, keuangan, bioinformatika, atau ilmu sosial.
Selalu lakukan pemeriksaan visual terlebih dahulu; histogram dan kurva PDF membantu menilai kelogikan estimasi. Kemudian, gunakan uji statistik dan nilai AIC/BIC untuk keputusan kuantitatif.
