Minyak sawit merupakan salah satu komoditas penting dalam perdagangan internasional yang memiliki peran besar dalam perekonomian, khususnya di negara penghasil seperti Indonesia. Harga minyak sawit berjangka sering mengalami fluktuasi akibat berbagai faktor pasar, sehingga diperlukan analisis untuk memahami pergerakan harga tersebut. Salah satu metode yang dapat digunakan adalah regresi linier berganda untuk mengetahui pengaruh beberapa variabel harga terhadap return minyak sawit berjangka. Dalam analisis ini digunakan data historis yang meliputi harga penutupan, harga pembukaan, harga tertinggi, dan harga terendah, dengan return sebagai variabel dependen serta range harga dan harga pembukaan sebagai variabel independen.
Data yang digunakan merupakan data historis harga minyak sawit berjangka yang terdiri dari 196 observasi. Variabel yang terdapat pada data antara lain:
Tanggal : waktu perdagangan
Terakhir : harga penutupan
Pembukaan : harga pembukaan
Tertinggi : harga tertinggi dalam satu hari
Terendah : harga terendah dalam satu hari
Dari data tersebut dibuat dua variabel tambahan yaitu:
Return : perubahan logaritmik dari harga penutupan
Range : selisih antara harga tertinggi dan harga terendah
Model regresi yang digunakan adalah regresi linier berganda dengan bentuk:
Return=β0+β1Range+β2Pembukaan+ϵ
Berdasarkan hasil estimasi diperoleh persamaan regresi sebagai berikut:
Return=−0.05006+0.0000158(Range)+0.0000117(Pembukaan)
data <- read.csv("C://Users//kvnan//Downloads//Data Historis Minyak Sawit Berjangka.csv")
dim(data)
## [1] 196 7
head(data)
## Tanggal Terakhir Pembukaan Tertinggi Terendah Vol. Perubahan.
## 1 05/03/2026 4.367,00 4.219,00 4.373,00 4.201,00 61,93K 3,80%
## 2 04/03/2026 4.207,00 4.159,00 4.268,00 4.132,00 63,33K 0,67%
## 3 03/03/2026 4.179,00 4.188,00 4.205,00 4.143,00 36,42K -0,17%
## 4 02/03/2026 4.186,00 4.065,00 4.188,00 4.060,00 87,76K 3,56%
## 5 26/02/2026 4.042,00 4.017,00 4.055,00 4.005,00 32,48K 0,92%
## 6 25/02/2026 4.005,00 4.055,00 4.067,00 3.997,00 30,71K -1,18%
summary(data)
## Tanggal Terakhir Pembukaan Tertinggi
## Length:196 Length:196 Length:196 Length:196
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
## Terendah Vol. Perubahan.
## Length:196 Length:196 Length:196
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
clean_number <- function(x)
{
x <- gsub("\\.", "", x)
x <- gsub(",", ".", x)
as.numeric(x)
}
data$Terakhir <- clean_number(data$Terakhir)
data$Pembukaan <- clean_number(data$Pembukaan)
data$Tertinggi <- clean_number(data$Tertinggi)
data$Terendah <- clean_number(data$Terendah)
summary(data)
## Tanggal Terakhir Pembukaan Tertinggi Terendah
## Length:196 Min. :3728 Min. :3725 Min. :3796 Min. :3696
## Class :character 1st Qu.:4036 1st Qu.:4036 1st Qu.:4069 1st Qu.:3998
## Mode :character Median :4152 Median :4153 Median :4192 Median :4106
## Mean :4179 Mean :4183 Mean :4222 Mean :4142
## 3rd Qu.:4366 3rd Qu.:4380 3rd Qu.:4412 3rd Qu.:4327
## Max. :4591 Max. :4650 Max. :4664 Max. :4541
## Vol. Perubahan.
## Length:196 Length:196
## Class :character Class :character
## Mode :character Mode :character
##
##
##
# membuat variabel return
data$return <- c(NA, diff(log(data$Terakhir)))
# membuat variabel range
data$range <- data$Tertinggi - data$Terendah
data <- na.omit(data)
model_final <- lm(return ~ range + Pembukaan, data=data)
summary(model_final)
##
## Call:
## lm(formula = return ~ range + Pembukaan, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.038091 -0.009193 0.000088 0.009722 0.042451
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -5.006e-02 2.019e-02 -2.480 0.0140 *
## range 1.581e-05 3.417e-05 0.463 0.6441
## Pembukaan 1.170e-05 4.836e-06 2.420 0.0164 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01389 on 192 degrees of freedom
## Multiple R-squared: 0.03192, Adjusted R-squared: 0.02183
## F-statistic: 3.165 on 2 and 192 DF, p-value: 0.04443
shapiro.test(residuals(model_final))
##
## Shapiro-Wilk normality test
##
## data: residuals(model_final)
## W = 0.99783, p-value = 0.9959
res <- residuals(model_final)
hist(res,
main="Histogram Residual",
xlab="Residual",
col="lightblue",
border="black")
qqnorm(res, main="Normal Q-Q Plot")
qqline(res, col="red", lwd=2)
Uji normalitas dilakukan menggunakan Shapiro-Wilk Test dan diperoleh nilai p-value sebesar 0.9959. Karena nilai tersebut lebih besar dari 0.05, maka residual model dapat dikatakan berdistribusi normal.
library(car)
## Loading required package: carData
vif(model_final)
## range Pembukaan
## 1.008495 1.008495
# plot hubungan antar variabel independen
pairs(data[,c("range","Pembukaan")],
main="Scatter Plot Antar Variabel Independen",
pch=16)
Hasil uji multikolinearitas menggunakan Variance Inflation Factor (VIF) menunjukkan nilai sekitar 1.008 untuk masing-masing variabel independen. Nilai ini jauh lebih kecil dari batas umum 10 sehingga dapat disimpulkan bahwa tidak terdapat multikolinearitas antar variabel independen.
library(lmtest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
bptest(model_final)
##
## studentized Breusch-Pagan test
##
## data: model_final
## BP = 0.8598, df = 2, p-value = 0.6506
plot(fitted(model_final), residuals(model_final),
main="Residual vs Fitted",
xlab="Nilai Prediksi",
ylab="Residual",
pch=16)
abline(h=0, col="red", lwd=2)
Uji heteroskedastisitas menggunakan Breusch-Pagan Test menghasilkan nilai p-value sebesar 0.6506. Karena nilai p-value lebih besar dari 0.05 maka dapat disimpulkan bahwa tidak terdapat gejala heteroskedastisitas dalam model regresi.
dwtest(model_final)
##
## Durbin-Watson test
##
## data: model_final
## DW = 1.809, p-value = 0.07778
## alternative hypothesis: true autocorrelation is greater than 0
acf(residuals(model_final),
main="ACF Residual Model")
Uji autokorelasi menggunakan Durbin-Watson Test menghasilkan nilai statistik sebesar 1.809 dengan p-value sebesar 0.07778. Nilai ini mendekati 2 sehingga dapat disimpulkan bahwa tidak terdapat autokorelasi yang signifikan pada residual model.
plot(data$Terakhir, type="l",
main="Pergerakan Harga Minyak Sawit Berjangka",
xlab="Waktu",
ylab="Harga",
lwd=2)
Grafik pergerakan harga minyak sawit berjangka menunjukkan bahwa harga mengalami fluktuasi sepanjang periode pengamatan. Pada awal periode, harga berada di sekitar kisaran 3900–4100, kemudian mengalami peningkatan hingga mendekati 4600 pada pertengahan periode. Setelah itu harga kembali mengalami penurunan hingga berada di kisaran 3800, sebelum akhirnya kembali mengalami kenaikan pada bagian akhir periode pengamatan.
Pola ini menunjukkan bahwa harga minyak sawit memiliki pergerakan yang dinamis dan tidak stabil, yang merupakan karakteristik umum dari harga komoditas di pasar berjangka. Fluktuasi harga ini dapat dipengaruhi oleh berbagai faktor seperti kondisi pasar global, permintaan komoditas, serta aktivitas perdagangan.
plot(data$return, type="l",
main="Return Harga Minyak Sawit",
xlab="Waktu",
ylab="Return",
col="blue")
Grafik return menunjukkan bahwa nilai return berfluktuasi di sekitar nilai nol sepanjang periode pengamatan. Sebagian besar nilai return berada pada kisaran -0.04 hingga 0.04.
Hal ini menunjukkan bahwa perubahan harga dari satu periode ke periode berikutnya relatif kecil dan tidak memiliki tren tertentu. Return yang bergerak di sekitar nol merupakan karakteristik umum dari data keuangan, karena perubahan harga biasanya bersifat acak dan dipengaruhi oleh banyak faktor eksternal.
plot(data$Pembukaan, data$return,
main="Hubungan Harga Pembukaan dan Return",
xlab="Harga Pembukaan",
ylab="Return",
pch=16)
abline(lm(return ~ Pembukaan, data=data), col="red", lwd=2)
Scatter plot yang menunjukkan hubungan antara harga pembukaan dan return memperlihatkan bahwa titik-titik data tersebar secara acak di sekitar garis regresi. Garis regresi yang hampir datar menunjukkan bahwa hubungan antara kedua variabel tersebut tidak terlalu kuat secara visual.
Terdapat kecenderungan bahwa ketika harga pembukaan meningkat, return juga mengalami sedikit peningkatan. Hal ini sejalan dengan hasil uji regresi sebelumnya yang menunjukkan bahwa variabel harga pembukaan memiliki pengaruh signifikan terhadap return, meskipun pengaruhnya relatif kecil.
par(mfrow=c(2,2))
plot(model_final)
Pada grafik ini terlihat bahwa titik-titik residual menyebar secara acak di sekitar garis horizontal. Tidak terlihat pola tertentu pada penyebaran residual, sehingga dapat disimpulkan bahwa tidak terdapat indikasi heteroskedastisitas yang kuat dalam model regresi.
Grafik Q-Q menunjukkan bahwa sebagian besar titik residual berada di sekitar garis diagonal. Hal ini menunjukkan bahwa distribusi residual mendekati distribusi normal, sehingga asumsi normalitas pada model regresi dapat dikatakan terpenuhi.
Grafik ini menunjukkan bahwa penyebaran residual relatif konstan di sepanjang nilai fitted. Hal ini menunjukkan bahwa varians residual cenderung homogen, sehingga tidak terdapat indikasi heteroskedastisitas yang signifikan.
Grafik ini digunakan untuk mendeteksi adanya pengaruh observasi ekstrem. Berdasarkan grafik terlihat bahwa sebagian besar titik berada di dalam batas Cook’s Distance, sehingga dapat disimpulkan bahwa tidak terdapat pengamatan yang memiliki pengaruh ekstrem terhadap model regresi.
cor(data[,c("Terakhir","Pembukaan","Tertinggi","Terendah")])
## Terakhir Pembukaan Tertinggi Terendah
## Terakhir 1.0000000 0.9725008 0.9891722 0.9918444
## Pembukaan 0.9725008 1.0000000 0.9896062 0.9860949
## Tertinggi 0.9891722 0.9896062 1.0000000 0.9898593
## Terendah 0.9918444 0.9860949 0.9898593 1.0000000
Nilai korelasi yang mendekati 1 menunjukkan bahwa variabel harga memiliki hubungan yang sangat kuat dan positif. Hal ini wajar karena variabel-variabel tersebut merupakan harga dalam satu periode perdagangan yang saling berkaitan satu sama lain.
Sebagai contoh, ketika harga tertinggi meningkat, biasanya harga penutupan dan harga pembukaan juga akan meningkat. Oleh karena itu hubungan antar variabel harga cenderung sangat kuat.