Apakah Ada Kemungkinan Kebakaran Hutan Ditujukan Untuk Pembesaran Lahan Sawit?

Adityo Sanjaya Profile

Pada September s/d Oktober 2015, muncul kebakaran hutan di beberapa provinsi di Indonesia. Hal ini menyebabkan munculnya kabut asap di beberapa provinsi tersebut dan beberapa negara tetangga. Dengan menggunakan dua variables yang paling menggambarkan dugaan tersebut, luas kebakaran hutan dan luas perkebunan kelapa sawit, saya menemukan terdapat kemungkinan bahwa kebakaran hutan ditujukan untuk pembesaran kelapa sawit. Saya menemukan bahwa besarnya luas kebakaran hutan di tahun sebelumnya di setiap provinsi, secara rata-rata memprediksi besarnya lahan perkebunan pada masa sekarang.

Berikut adalah visualisasi kebakaran hutan dan persebaaran asap di Indonesia contoh visualisasi

Analisis ini dibagi menjadi empat bagian:

I. Data

II. Exploratory Data Analysis (EDA)

II.1 Summary Data

II.2 Standardization pada Data

II.3 Plotting atas Data

III. Simple (Wrong) Regression

III.1 OLS

III.2 Robust Linear Model

IV Panel Regression

IV.1 Panel Regression (Wrong)

IV.2 Panel Dynamics Regression

V. Pengecekan Asumsi

V.1 Heterogenitas Individu

V.2 Stasioneritas

I. Data

Saya menggunakan data dari 2 sumber:

  1. Data Luas Kebakaran per Provinsi Kementrian Lingkungan Hidup
  2. Data Luas Perkebunan Kelapa Sawit per Provinsi Kementrian Pertanian

Kedua data tersebut merupakan data longitudinal. Saya memilih subset dari sample yang memiliki nilai individu x time terbanyak untuk mendapatkan maximal data, dan meminimalisir pengaruh unbalanced data. Saya mendapatkan data sebagai berikut:


In [136]:
DataSawitBersih <- read.csv(file="Data Sawit Bersih.csv",head=TRUE,sep=",")
DataSawitBersih


Out[136]:
Tahun.ProvinsiProvLuas.Kebakaran.Hutan.tLuas.Lahan.Kelapa.Sawit.t1
12011Jambi89,00687892
22012Jambi11,25657929
32013Jambi199,10688810
42011Kalimantan Barat50,00885075
52012Kalimantan Barat577,40914835
62013Kalimantan Barat22,70959226
72012Kalimantan Selatan60,50475739
82013Kalimantan Selatan417,50499873
92011Kalimantan Tengah22,001024973
102012Kalimantan Tengah55,151099692
112013Kalimantan Tengah3.11156653
122011Kalimantan Timur148,80716662
132012Kalimantan Timur51,50816257
142011Riau74,502037733
152012Riau1.060,002193721
162013Riau1.077,502296849
172011Sulawesi Selatan31,7541982
182012Sulawesi Selatan45,3036262
192013Sulawesi Selatan40,5037806
202011Sulawesi Tengah1112661
212012Sulawesi Tengah30,83140882
222013Sulawesi Tengah1,00147757
232011Sulawesi Tenggara85,90376858
242012Sulawesi Tenggara346,10364208
252013Sulawesi Tenggara13,00381754
262011Sumatera Selatan84,50821391
272013Sumatera Selatan484,151111050
282011Sumatera Utara5,001192466
292012Sumatera Utara1.181,001340348
302013Sumatera Utara295,401392532

Tabel 1. Data luas kebakaran hutan dan luas perkebunan kelapa sawit dalam satu provinsi

  1. tahun adalah periode dari kebakaran hutan, perlu digarisbawahi bahwa luas kelapa sawit adalah data periode mmendatang
  2. luas kebakaran hutan adalah data luas wilayah kebakaran hutan di satu provinsi di periode sekarang
  3. lahan luas kelapa sawit adalah data luas wilayah kebakaran hutan di satu provinsi di periode mendatang. Contoh pada baris 1, menunjukan luas kebakaran pada Provinsi Jambi pada tahun 2011, dan luas lahan kelapa sawit pada tahun 2012.

Kemudian saya menggunakan angka sebagai penanda provinsi sesuai gambar 1, e.g, 1 adalah Jambi, 2 adalah Kalimantan Barat, dst, sebagai berikut:


In [137]:
DataSawitUnbalanced <- read.csv(file="DataSawitUnbalanced.csv",head=TRUE,sep=",")
DataSawitUnbalanced


Out[137]:
YearProvApiSawit
12011189687892
22012111.25657929
320131199.1688810
42011250885075
520122577.4914835
62013222.7959226
72012360.5475739
820133417.5499873
920114221024973
102012455.151099692
11201343.11156653
1220115148.8716662
132012551.5816257
142011674.52037733
152012610602193721
16201361077.52296849
172011731.7541982
182012745.336262
192013740.537806
20201181112661
212012830.83140882
22201381147757
232011985.9376858
2420129346.1364208
252013913381754
2620111084.5821391
27201310484.151111050
2820111151192466
2920121111811340348
30201311295.41392532

Tabel 2. Data luas kebakaran hutan pada periode sekarang dan luas lahan sawit pada tahun berikutnya.

II. Exploratory Data Analysis (EDA)

Pada EDA, saya mencoba untuk menjelaskan karakteristik pada data menggunakan data visualization.

  1. Memberikan summary atas data.
  2. Melakukan transformasi data dengan melakukan standardisasi atas standard deviation.
  3. Melakukan plotting atas data, memperlihatkan pengaruh input terhadap output.

II.1 Summary Data

Berikut adalah summary atas data Luas Kebakaran Hutan, dan data Luas Lahan Kelapa Sawit pada period berikutnya:


In [138]:
summary(DataSawitUnbalanced$Api)


Out[138]:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00   24.73   57.82  218.80  271.30 1181.00 

In [139]:
summary(DataSawitUnbalanced$Sawit)


Out[139]:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  36260  378100  766500  820300 1108000 2297000 

In [140]:
Variance.Api <- var(DataSawitUnbalanced$Api)
Variance.Sawit <- var(DataSawitUnbalanced$Sawit)
Covariance <- cov(DataSawitUnbalanced$Api, DataSawitUnbalanced$Sawit)

plotvar <- cbind(Variance.Api, Variance.Sawit, Covariance)
plotvar


Out[140]:
Variance.ApiVariance.SawitCovariance
1.138032e+053.714785e+111.248015e+08

II.2 Standardization pada Data

Kemudian saya mengubah skala dari variabel luas lahan kebakaran dan luas lahan kelapa sawit mengikuti z-distribution, seperti yang disarankan oleh Gelman Gelman (2008) pdf, namun menggunakan hanya satu standard deviation

\begin{equation} X_i standardized = \left(\frac{X_i-\mu}{\sigma}\right). \end{equation}

Sehingga saya mendapatkan variabel yang memiliki rata-rata yang sama, yang distandarisasi dengan standard deviation. Sehingga mendapatkan data dengan nilai mean yang sama sebagai berikut:


In [141]:
Luas_Api <- scale(DataSawitUnbalanced$Api, center = T, scale = T)
Luas_Sawit_t1 <- scale(DataSawitUnbalanced$Sawit, center = T, scale = T)

In [72]:
summary(Luas_Api)


Out[72]:
       V1         
 Min.   :-0.6458  
 1st Qu.:-0.5754  
 Median :-0.4773  
 Mean   : 0.0000  
 3rd Qu.: 0.1556  
 Max.   : 2.8521  

In [68]:
summary(Luas_Sawit_t1)


Out[68]:
       V1          
 Min.   :-1.28643  
 1st Qu.:-0.72560  
 Median :-0.08838  
 Mean   : 0.00000  
 3rd Qu.: 0.47233  
 Max.   : 2.42255  

In [142]:
Variance.Api1 <- var(Luas_Api)
Variance.Sawit1 <- var(Luas_Sawit_t1)
Covariance1 <- cov(Luas_Api, Luas_Sawit_t1)
Correlation1 <- cor(Luas_Api, Luas_Sawit_t1)


plotvar1 <- cbind(Variance.Api1, Variance.Sawit1, Covariance1, Correlation1 )
plotvar1


Out[142]:
1.00000001.00000000.60698180.6069818

II.3 Plotting dari Data

Saya menggunakan data yang telah distandarkan untuk memudahkan analisa visual karena memiliki skala yang sama. Berikut adalah penggambaran atas pola yang sama yang dimiliki oleh luas kebakaran pada periode sekarang dan luas lahan kelapa sawit pada periode berikutnya:


In [166]:
Api_ts <- ts(Luas_Api)
Sawit_ts <- ts(Luas_Sawit_t1)
Pseudo_time_series <- cbind( Sawit_ts, Api_ts) 

# plotting data, dianggap time series

#plot(Pseudo_time_series, col = "red")

Gambar 1. Pola variabel kebakaran hutan dan luas lahan kelapa sawit.

Penemuan:

  1. Terdapat pola yang sama pada data luas kebakaran hutan (Api_ts) dan luas lahan kelapa sawit (Sawit_ts).
  2. Kemungkinan adanya outlier yang meningkatkan nilai estimasi (beta) pada regresi kemudian. Hal ini dapat dilihat pada gambar 1, pada (pseudo) index time 14 s/d 17, kedua grafik memiliki pola yang sama.

Berikut adalah plotting dari scatterplot:


In [165]:
#qplot(Luas_Api, Luas_Sawit_t1)

gambar 2. Scatterplot Luas Kebakaran Hutan dan Luas Lahan Kelapa Sawit

Kesimpulan:

  1. Kemungkinan data joint distribution tidak terdistribusi dengan konstan
  2. Adanya outlier di sisi kanan atas yang akan membuat nilai beta pada estimasi regresi biased up
  3. Akibat dari poin kedua mengharuskan menggunakan metode estimasi yang robust terhadap outlier

III. Simple (Wrong) Regression

Pada bagian ini saya menggunakan metode estimasi yang sederhana namun salah. Hal ini dikarenakan metode yang saya gunakan dalam menganggap data adalah cross section. Namun hal ini memberikan gambaran bahwa terdapat pola yang sama, yaitu Luas kebakaran berpengaruh pada besarnya luas lahan kelapa sawit di periode mendatang. Lagi, saya mengigatkan bahwa ini adalah metode yang salah.

III.1OLS Cross Section

Pada bagian ini saya menggunakan metode OLS cross section untuk mengestimasi pengaruh luas kebakaran hutan pada luas lahan kelapa sawit.

metode OLS yang digunakan:

\begin{equation} y=\beta_0 +\beta_1 x +\varepsilon,\quad i=1,\dots,n.\! \end{equation}

yang mana:

  1. y = Luas Lahan kelapa sawit (periode berikutnya)

  2. x = Luas Lahan hutan terbakar (periode sekarang)


In [167]:
OLS <- lm(Luas_Sawit_t1 ~  Luas_Api )
summary(OLS)


Out[167]:
Call:
lm(formula = Luas_Sawit_t1 ~ Luas_Api)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.97733 -0.75472 -0.02221  0.66266  2.25713 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 6.696e-17  1.477e-01   0.000 1.000000    
Luas_Api    6.070e-01  1.502e-01   4.042 0.000376 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.8088 on 28 degrees of freedom
Multiple R-squared:  0.3684,	Adjusted R-squared:  0.3459 
F-statistic: 16.33 on 1 and 28 DF,  p-value: 0.0003759

Ups, Luas_Api signifikan mempengaruhi Luas_sawit


In [106]:
require(foreign)
require(MASS)


Loading required package: foreign

III.1 Robust Regression Cross Section

Pada bagian ini saya menggunakan metode Robust Regression dengan iterated re-weighted least squares cross section untuk mengestimasi pengaruh luas kebakaran hutan pada luas lahan kelapa sawit. Metode ini digunakan karena adanya kemungkinan outlier mengakibatkan beta Api biased up.

metode Robust Regression yang digunakan:

\begin{equation} y=\beta_0 +\beta_1 x +\varepsilon,\quad i=1,\dots,n.\! \end{equation}

yang mana:

  1. y = Luas Lahan kelapa sawit (periode berikutnya)

  2. x = Luas Lahan hutan terbakar (periode sekarang)


In [109]:
Robust_Regression <- rlm(Luas_Sawit_t1 ~  Luas_Api )
summary(Robust_Regression)


Out[109]:
Call: rlm(formula = Luas_Sawit_t1 ~ Luas_Api)
Residuals:
      Min        1Q    Median        3Q       Max 
-0.954105 -0.718872  0.002098  0.697734  2.290292 

Coefficients:
            Value   Std. Error t value
(Intercept) -0.0279  0.1395    -0.1998
Luas_Api     0.6193  0.1419     4.3636

Residual standard error: 1.081 on 28 degrees of freedom


In [ ]:

IV Panel Regression

Data yang saya miliki berbentuk longitudinal, sehingga metode terbaik adalah mengguanaka Panel Regression: \begin{equation} y_{it}=a+bx_{it}+\epsilon_{it} \end{equation}

yang mana:

  1. y = Luas Lahan kelapa sawit (periode berikutnya)

  2. x = Luas Lahan hutan terbakar (periode sekarang)


In [131]:
library(plm)
panel_plm <- plm(Sawit ~ Api , model = "between", data = DataSawitUnbalanced)

summary(panel_plm)


Out[131]:
Oneway (individual) effect Between Model

Call:
plm(formula = Sawit ~ Api, data = DataSawitUnbalanced, model = "between")

Unbalanced Panel: n=3, T=10-10, N=30

Residuals :
   Min. 1st Qu.  Median 3rd Qu.    Max. 
 -29800  -21500  -13100   14900   42900 

Coefficients :
             Estimate Std. Error t-value Pr(>|t|)  
(Intercept) 796433.47   65409.19 12.1762  0.05217 .
Api            109.19     262.95  0.4152  0.74944  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Total Sum of Squares:    3400700000
Residual Sum of Squares: 2900600000
R-Squared      :  0.14707 
      Adj. R-Squared :  0.049024 
F-statistic: 0.172431 on 1 and 1 DF, p-value: 0.74944

In [134]:
panel_plmb <- plm(Sawit ~ Api , model = "between", data = DataSawitUnbalanced)
panel_plmw <- plm(Sawit ~ Api , model = "within", data = DataSawitUnbalanced)
summary(panel_plmb)
summary(panel_plmw)


Out[134]:
Oneway (individual) effect Between Model

Call:
plm(formula = Sawit ~ Api, data = DataSawitUnbalanced, model = "between")

Unbalanced Panel: n=3, T=10-10, N=30

Residuals :
   Min. 1st Qu.  Median 3rd Qu.    Max. 
 -29800  -21500  -13100   14900   42900 

Coefficients :
             Estimate Std. Error t-value Pr(>|t|)  
(Intercept) 796433.47   65409.19 12.1762  0.05217 .
Api            109.19     262.95  0.4152  0.74944  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Total Sum of Squares:    3400700000
Residual Sum of Squares: 2900600000
R-Squared      :  0.14707 
      Adj. R-Squared :  0.049024 
F-statistic: 0.172431 on 1 and 1 DF, p-value: 0.74944
Out[134]:
Oneway (individual) effect Within Model

Call:
plm(formula = Sawit ~ Api, data = DataSawitUnbalanced, model = "within")

Unbalanced Panel: n=3, T=10-10, N=30

Residuals :
   Min. 1st Qu.  Median 3rd Qu.    Max. 
-714000 -403000  -74300  379000 1230000 

Coefficients :
    Estimate Std. Error t-value  Pr(>|t|)    
Api  1240.44     290.16   4.275 0.0002275 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Total Sum of Squares:    1.0739e+13
Residual Sum of Squares: 6.3062e+12
R-Squared      :  0.41277 
      Adj. R-Squared :  0.35773 
F-statistic: 18.2754 on 1 and 26 DF, p-value: 0.00022754