Dalam analisis statistika, kita sering dihadapi dengan masalah mengidentifikasi relasi antara dua variabel. Salah satu cara yang efektif untuk memvisualisasikan relasi tersebut adalah dengan menggunakan scatter plot dan menambahkan garis regresi atau kurva smoothing ke dalamnya.
Dalam R, kita dapat menggunakan fungsi lm()
untuk fitting model regresi linear dan fungsi loess.smooth()
atau scatter.smooth()
untuk estimasi kurva smoothing. Dalam contoh di bawah ini, kita akan menambahkan garis regresi dan kurva smoothing ke dalam scatter plot antara variabel age
dan hvltt
.
Contoh:
> usedata('active')
> attach(active)
>
> plot(age, hvltt)
>
> scatter.smooth(age, hvltt, lpars = list(col = "blue", lwd = 3, lty = 3))
> abline(lm(hvltt~age), col='red',lwd=3)
> legend('topright', c('Linear','Smoothing'), lty=c(1,2), lwd=c(3,3), col=c('red','blue'))
>
Dalam contoh di atas, kita menggunakan fungsi scatter.smooth()
untuk estimasi kurva smoothing dan fungsi abline()
untuk menambahkan garis regresi ke dalam scatter plot. Kita juga menggunakan fungsi legend()
untuk menambahkan legenda ke dalam graph.
Visualisasi Scatter Plot dengan Kurva Fitting
Selain menggunakan garis regresi, kita juga dapat menambahkan kurva fitting ke dalam scatter plot. Contoh di bawah ini menunjukkan cara membuat scatter plot dengan menggunakan fungsi plot()
dan menambahkan kurva polynomial fitting dengan menggunakan fungsi lm()
.
> # Membuat scatter plot
> plot(age, hvltt)
>
> # Membuat model regresi polynomial
> lm(hvltt ~ poly(age, degree = 2))
>
> # Menambahkan kurva regresi ke dalam graph
> abline(lm(hvltt ~ poly(age, degree = 2)), col='red',lwd=3)
>
Dalam contoh di atas, kita menggunakan fungsi plot()
untuk membuat scatter plot dan fungsi lm()
untuk fitting model regresi polynomial. Kita juga menggunakan fungsi abline()
untuk menambahkan kurva regresi ke dalam graph.
Visualisasi dengan ggplot2
Selain menggunakan R base, kita juga dapat menggunakan paket ggplot2
untuk membuat visualisasi scatter plot dengan menambahkan kurva fitting. Contoh di bawah ini menunjukkan cara membuat scatter plot dengan menggunakan fungsi ggplot()
dan menambahkan kurva polynomial fitting dengan menggunakan fungsi stat_function()
.
> # Membuat data
> x <- seq(from = 4, to = 6, length.out = 10)
> y <- 1986*0.840897^x + rnorm(10, sd = 30)
> xy <- data.frame(x, y)
>
> # Defining function
> myfun <- function(x) 1986*0.840897^x
>
> # Membuat visualisasi dengan ggplot2
> library(ggplot2)
> ggplot(xy, aes(x = x, y = y)) +
+ theme_bw() +
+ geom_point() +
+ stat_function(fun = myfun)
>
Dalam contoh di atas, kita menggunakan fungsi ggplot()
untuk membuat scatter plot dan fungsi stat_function()
untuk menambahkan kurva fitting. Kita juga menggunakan tema theme_bw()
untuk memberikan desain yang lebih rapih pada graph.