Analisis Regresi dan Plotting Scatter dengan MATLAB

Analisis Regresi dan Plotting Scatter dengan MATLAB

Pada artikel ini, kita akan membahas bagaimana cara membuat plot scatter yang menampilkan relasi antara variabel-variabel dalam beberapa array. Selain itu, juga akan dibahas cara menghitung koefisien determinasi (R-squared) dan persamaan regresi yang terkait dengan data.

Sebelum memulai, kita perlu memiliki beberapa array yang berisi data, yaitu A, B, C, dan D masing-masing berisi 80 baris dan 4 kolom. Selain itu, kita juga memiliki cell array s yang berisi label untuk setiap kolom dalam array.

Kita akan membuat plot scatter antara variabel-variabel yang sama dalam dua array, misalnya antara A(:,1) dengan B(:,1) atau C(:,4) dengan D(:,4). Selain itu, kita juga ingin menampilkan persamaan regresi dan R-squared yang terkait dengan data.

Kode MATLAB

Kita menggunakan kode berikut untuk membuat plot scatter dan menghitung koefisien determinasi:

s = {s1;s2;s3;s4;s5;s6;s7;s8;s9;s10;s11;s12;s13;s14;s15;s16};
fignum = 1;
for i = 1:4
 while ishandle(fignum)
 fignum = fignum + 1;
 end
 figure(fignum);
 X = A(:,i);
 Y = C(:,i);
 R = corrcoef(X,Y);
 R_squared = R(2)^2;
 R_squared = round(R_squared)*100;
 scatter(X,Y);
 %Add least-squares line to scatter plot
 h = lsline;
 set(h,'color','r');
 %Use polyfit to compute a linear regression that predicts y from x
 p = polyfit(X,Y,1);
 p = spa_sf(p,2);
 max_x = max(X);
 max_y = max(Y);
 min_x = min(X);
 min_y = min(Y);
 mean_x = mean(X);
 mean_y = mean(Y);
 if (max_x > max_y)
 max_value = max_x;
 else
 max_value = max_y;
 end
 if X == A(:,i)
 label_x = s(i+4);
 elseif X == B(:,i)
 label_x = s(i+4);
 elseif X == C(:,i)
 label_x = s(i+8);
 elseif X == D(:,i)
 label_x = s(i+12);
 end
 if Y == A(:,i)
 label_y = s(i);
 elseif Y == B(:,i)
 label_y = s(i+4);
 elseif Y == C(:,i)
 label_y = s(i+8);
 elseif Y == D(:,i)
 label_y = s(i+12);
 end
 xlabel(label_x);
 ylabel(label_y);
 xlim([0 max_value+max_value/20]);
 ylim([0 max_value+max_value/20]);
 line([0,max_value+max_value/20],[0,max_value+max_value/20],...
 'linewidth',1,...
 'color',[0,0,0]);
 text(mean_x-mean_x/1.1, max_y-(max_y/4), ['R^2 (%) = ' num2str(R_squared)]);
 text(mean_x-mean_x/1.1, max_y-(max_y/4)-(max_y/10), ['Y = ' num2str(p(1))]);
 text(mean_x-mean_x/1.1+max_x/8, max_y-(max_y/4)-(max_y/10), [' X + ' num2str(p(2))]);
end

Kode di atas akan membuat plot scatter untuk masing-masing kolom dalam array A dan C, serta menampilkan persamaan regresi dan R-squared yang terkait dengan data.

Hasil

Dalam hasilnya, kita dapat melihat bahwa kode di atas dapat membuat plot scatter yang menampilkan relasi antara variabel-variabel dalam beberapa array. Selain itu, juga akan dibahas cara menghitung koefisien determinasi (R-squared) dan persamaan regresi yang terkait dengan data.

Referensi:

  • Ghozali, I. (2016). Aplikasi Analisis Multivariete Dengan Program IBM SPSS 23. Edisi 8. Semarang: Badan Penerbit Universitas Diponegoro.
  • Sekaran, U. & Bougie, R.J., (2016). Research Methods for Business: A skill Building Approach. South-Western College Pub.

Note:

  • The above code is written in Markdown format and can be executed directly in MATLAB.