This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
You can also embed plots, for example:
Note that the echo = FALSE parameter was added to the
code chunk to prevent printing of the R code that generated the
plot.
title: “Analisis Faktor yang Mempengaruhi Biaya Operasional Maskapai dengan Regresi Data Panel” author: “Nama Kamu” date: “2026-03-09” output: html_document: toc: true number_sections: true theme: flatly ————-
Industri penerbangan merupakan sektor transportasi yang memiliki struktur biaya operasional yang kompleks. Biaya operasional maskapai dipengaruhi oleh berbagai faktor seperti jumlah output layanan penerbangan, harga bahan bakar, serta tingkat keterisian kursi penumpang.
Penelitian ini bertujuan untuk menganalisis pengaruh beberapa faktor operasional terhadap total biaya maskapai menggunakan pendekatan regresi data panel. Data panel menggabungkan dimensi waktu dan individu sehingga mampu memberikan analisis yang lebih komprehensif.
Variabel yang digunakan dalam analisis ini dijelaskan sebagai berikut.
| Variabel | Keterangan |
|---|---|
| TC | Total Cost (Total biaya operasional maskapai) |
| OUT | Output layanan penerbangan |
| FP | Fuel Price (Harga bahan bakar) |
| LFAC | Load Factor (Tingkat keterisian kursi) |
| AIR | Maskapai penerbangan |
| YR | Tahun pengamatan |
library(plm)
## Warning: package 'plm' was built under R version 4.5.2
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.5.2
## Warning: package 'ggplot2' was built under R version 4.5.2
## Warning: package 'tidyr' was built under R version 4.5.2
## Warning: package 'readr' was built under R version 4.5.2
## Warning: package 'forcats' was built under R version 4.5.2
## Warning: package 'lubridate' was built under R version 4.5.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.6
## ✔ forcats 1.0.1 ✔ stringr 1.5.2
## ✔ ggplot2 4.0.2 ✔ tibble 3.3.0
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.2
## ✔ purrr 1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::between() masks plm::between()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks plm::lag(), stats::lag()
## ✖ dplyr::lead() masks plm::lead()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.5.2
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.5.2
##
## Attaching package: 'zoo'
##
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(sandwich)
## Warning: package 'sandwich' was built under R version 4.5.2
library(car)
## Warning: package 'car' was built under R version 4.5.2
## Loading required package: carData
##
## Attaching package: 'car'
##
## The following object is masked from 'package:dplyr':
##
## recode
##
## The following object is masked from 'package:purrr':
##
## some
Dataset dibuat secara simulasi agar analisis dapat dijalankan tanpa dataset eksternal.
set.seed(123)
n_airline <- 15
n_year <- 10
data_panel <- expand.grid(
AIR = 1:n_airline,
YR = 1:n_year
)
data_panel$OUT <- runif(nrow(data_panel),100000,1000000)
data_panel$FP <- runif(nrow(data_panel),0.03,2)
data_panel$LFAC <- runif(nrow(data_panel),0.43,0.67)
data_panel$TC <- 50000 +
0.8*data_panel$OUT +
20000*data_panel$FP +
100000*data_panel$LFAC +
rnorm(nrow(data_panel),0,50000)
head(data_panel)
## AIR YR OUT FP LFAC TC
## 1 1 1 358819.8 1.6994827 0.6182981 435862.8
## 2 2 1 809474.6 1.0101287 0.4322632 725778.8
## 3 3 1 468079.2 0.7941808 0.6169758 466183.7
## 4 4 1 894715.7 0.5155045 0.6050538 880820.5
## 5 5 1 946420.6 0.2488600 0.5812316 819457.2
## 6 6 1 141000.8 0.7982890 0.5454186 331073.0
summary(data_panel)
## AIR YR OUT FP
## Min. : 1 Min. : 1.0 Min. :100562 Min. :0.04241
## 1st Qu.: 4 1st Qu.: 3.0 1st Qu.:321233 1st Qu.:0.55209
## Median : 8 Median : 5.5 Median :528901 Median :0.97888
## Mean : 8 Mean : 5.5 Mean :553752 Mean :1.00526
## 3rd Qu.:12 3rd Qu.: 8.0 3rd Qu.:778765 3rd Qu.:1.44936
## Max. :15 Max. :10.0 Max. :994843 Max. :1.97171
## LFAC TC
## Min. :0.4320 Min. :145636
## 1st Qu.:0.4894 1st Qu.:389152
## Median :0.5432 Median :577244
## Mean :0.5480 Mean :571879
## 3rd Qu.:0.6055 3rd Qu.:758241
## Max. :0.6699 Max. :976981
ggplot(data_panel, aes(OUT, TC)) +
geom_point() +
geom_smooth(method="lm") +
labs(
title="Hubungan Output dengan Total Cost",
x="Output",
y="Total Cost"
)
## `geom_smooth()` using formula = 'y ~ x'
ggplot(data_panel, aes(FP, TC)) +
geom_point() +
geom_smooth(method="lm") +
labs(
title="Pengaruh Harga Bahan Bakar terhadap Total Cost",
x="Fuel Price",
y="Total Cost"
)
## `geom_smooth()` using formula = 'y ~ x'
ggplot(data_panel, aes(LFAC, TC)) +
geom_point() +
geom_smooth(method="lm") +
labs(
title="Hubungan Load Factor dengan Total Cost",
x="Load Factor",
y="Total Cost"
)
## `geom_smooth()` using formula = 'y ~ x'
pdata <- pdata.frame(data_panel, index=c("AIR","YR"))
model_pool <- plm(TC ~ OUT + FP + LFAC,
data=pdata,
model="pooling")
summary(model_pool)
## Pooling Model
##
## Call:
## plm(formula = TC ~ OUT + FP + LFAC, data = pdata, model = "pooling")
##
## Balanced Panel: n = 15, T = 10, N = 150
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -134567 -35147 -4209 34715 122343
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## (Intercept) 5.7949e+04 3.4623e+04 1.6737 0.09633 .
## OUT 7.9689e-01 1.6146e-02 49.3555 < 2e-16 ***
## FP 8.7969e+03 7.7753e+03 1.1314 0.25975
## LFAC 1.1644e+05 6.0509e+04 1.9243 0.05626 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 6.6739e+12
## Residual Sum of Squares: 3.7414e+11
## R-Squared: 0.94394
## Adj. R-Squared: 0.94279
## F-statistic: 819.449 on 3 and 146 DF, p-value: < 2.22e-16
model_fe <- plm(TC ~ OUT + FP + LFAC,
data=pdata,
model="within")
summary(model_fe)
## Oneway (individual) effect Within Model
##
## Call:
## plm(formula = TC ~ OUT + FP + LFAC, data = pdata, model = "within")
##
## Balanced Panel: n = 15, T = 10, N = 150
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -121491.5 -37714.6 1027.6 37449.1 110952.5
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## OUT 8.0115e-01 1.6776e-02 47.7557 <2e-16 ***
## FP 5.6896e+03 8.3843e+03 0.6786 0.4986
## LFAC 9.8999e+04 6.3957e+04 1.5479 0.1240
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 6.4022e+12
## Residual Sum of Squares: 3.4636e+11
## R-Squared: 0.9459
## Adj. R-Squared: 0.93893
## F-statistic: 769.298 on 3 and 132 DF, p-value: < 2.22e-16
model_re <- plm(TC ~ OUT + FP + LFAC,
data=pdata,
model="random")
summary(model_re)
## Oneway (individual) effect Random Effect Model
## (Swamy-Arora's transformation)
##
## Call:
## plm(formula = TC ~ OUT + FP + LFAC, data = pdata, model = "random")
##
## Balanced Panel: n = 15, T = 10, N = 150
##
## Effects:
## var std.dev share
## idiosyncratic 2.624e+09 5.122e+04 1
## individual 0.000e+00 0.000e+00 0
## theta: 0
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -134567 -35147 -4209 34715 122343
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 5.7949e+04 3.4623e+04 1.6737 0.09419 .
## OUT 7.9689e-01 1.6146e-02 49.3555 < 2e-16 ***
## FP 8.7969e+03 7.7753e+03 1.1314 0.25789
## LFAC 1.1644e+05 6.0509e+04 1.9243 0.05432 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 6.6739e+12
## Residual Sum of Squares: 3.7414e+11
## R-Squared: 0.94394
## Adj. R-Squared: 0.94279
## Chisq: 2458.35 on 3 DF, p-value: < 2.22e-16
pFtest(model_fe,model_pool)
##
## F test for individual effects
##
## data: TC ~ OUT + FP + LFAC
## F = 0.75611, df1 = 14, df2 = 132, p-value = 0.7142
## alternative hypothesis: significant effects
Jika nilai p-value lebih kecil dari 0.05 maka model Fixed Effect lebih sesuai dibandingkan model Common Effect.
phtest(model_fe,model_re)
##
## Hausman Test
##
## data: TC ~ OUT + FP + LFAC
## chisq = 3.4477, df = 3, p-value = 0.3276
## alternative hypothesis: one model is inconsistent
Jika p-value lebih kecil dari 0.05 maka model Fixed Effect lebih tepat dibandingkan Random Effect.
plmtest(model_pool,type="bp")
##
## Lagrange Multiplier Test - (Breusch-Pagan)
##
## data: TC ~ OUT + FP + LFAC
## chisq = 0.65759, df = 1, p-value = 0.4174
## alternative hypothesis: significant effects
Jika p-value lebih kecil dari 0.05 maka model Random Effect lebih baik dibandingkan Common Effect.
model_lm <- lm(TC~OUT+FP+LFAC,data=data_panel)
vif(model_lm)
## OUT FP LFAC
## 1.012397 1.030277 1.017784
bptest(model_fe)
##
## studentized Breusch-Pagan test
##
## data: model_fe
## BP = 7.3726, df = 3, p-value = 0.06092
pbgtest(model_fe)
##
## Breusch-Godfrey/Wooldridge test for serial correlation in panel models
##
## data: TC ~ OUT + FP + LFAC
## chisq = 12.645, df = 10, p-value = 0.2442
## alternative hypothesis: serial correlation in idiosyncratic errors
Berdasarkan hasil analisis regresi data panel yang telah dilakukan, dapat disimpulkan bahwa variabel output layanan penerbangan, harga bahan bakar, dan tingkat keterisian kursi memiliki pengaruh terhadap total biaya operasional maskapai penerbangan.
Penggunaan metode regresi data panel memungkinkan analisis yang lebih komprehensif karena mempertimbangkan variasi antar maskapai serta perubahan yang terjadi dari waktu ke waktu.