R Codes:

install.packages("tsbox")
library(tsbox)
install.packages("tseries")
library(tseries)
install.packages("MASS")
library(MASS)
install.packages("forecast")
library(forecast)
coin <- read.csv("C:\\Users\\mbbac\\Downloads\\bitcoin_dataset_trim.csv")
#use only the variables "Date" and "btc_market_price"

coin2<-data.frame(
  Dates=coin$Date,
  btc_price=coin$btc_market_price
)
#convert data frame to time series

coin_ts<-ts_ts(ts_long(coin2))

#checking for the class
class(coin_ts)
#Step 1: Plot

plot(coin_ts)

Insights about the plot: 1. Trend (Upward) 2. Seasonality 3. Increasing variance 4. Stationary

#Step 2: Generate sample ACF and PACF of original series

acf(coin_ts)
pacf(coin_ts)

Insights about the ACF plot: 1. Autocorrelation at various lags 2. Gradual decay (trend or nonstationarity) 3. Need for differencing (gradual decay) thus we perform unit root test (formal test) to test stationarity.

### Augmented Dickey-Fuller Test

adf.test(coin_ts)

### KPSS Test for Level Stationarity

kpss.test(coin_ts)

Both test result: “the process is not stationary”

### Differencing

diff_ts <- diff(coin_ts, differences = 2)

### Original vs Differenced Series

par(mfrow = c(2, 1))
plot(coin_ts, main = "Original Time Series", ylab = "Value", col = "blue")
plot(diff_ts, main = "Differenced Time Series", ylab = "Value", col = "red")

After first differencing, the series still shows non constancy of variance (increasing variance). Same result if we do second differencing.

### Box Cox Transformation

lambda <- BoxCox.lambda(coin_ts)  # Find the optimal lambda
boxcox_ts <- BoxCox(coin_ts, lambda = lambda)  # Apply the transformation
plot(boxcox_ts, main = "Box-Cox Transformed Time Series", col = "purple")

lambda result: 1 (no transformation needed) Plot for Box-Cox transformed is still the same with the original time series data.

### Alternative: Log Transformation

log_ts <- log(coin_ts) 
plot(log_ts, main = "Log-Transformed Time Series", col = "blue")

Insights: 1. Trend 2. Seasonality 3. Increasing variance

LS0tDQp0aXRsZTogIlN0YXQgMTQ1IFRha2UgSG9tZSBFeGFtIg0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOiBkZWZhdWx0DQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQoNClIgQ29kZXM6DQoNCmBgYHtyfQ0KaW5zdGFsbC5wYWNrYWdlcygidHNib3giKQ0KbGlicmFyeSh0c2JveCkNCmluc3RhbGwucGFja2FnZXMoInRzZXJpZXMiKQ0KbGlicmFyeSh0c2VyaWVzKQ0KaW5zdGFsbC5wYWNrYWdlcygiTUFTUyIpDQpsaWJyYXJ5KE1BU1MpDQppbnN0YWxsLnBhY2thZ2VzKCJmb3JlY2FzdCIpDQpsaWJyYXJ5KGZvcmVjYXN0KQ0KYGBgDQoNCmBgYHtyfQ0KY29pbiA8LSByZWFkLmNzdigiQzpcXFVzZXJzXFxtYmJhY1xcRG93bmxvYWRzXFxiaXRjb2luX2RhdGFzZXRfdHJpbS5jc3YiKQ0KYGBgDQoNCmBgYHtyfQ0KI3VzZSBvbmx5IHRoZSB2YXJpYWJsZXMgIkRhdGUiIGFuZCAiYnRjX21hcmtldF9wcmljZSINCg0KY29pbjI8LWRhdGEuZnJhbWUoDQogIERhdGVzPWNvaW4kRGF0ZSwNCiAgYnRjX3ByaWNlPWNvaW4kYnRjX21hcmtldF9wcmljZQ0KKQ0KYGBgDQoNCmBgYHtyfQ0KI2NvbnZlcnQgZGF0YSBmcmFtZSB0byB0aW1lIHNlcmllcw0KDQpjb2luX3RzPC10c190cyh0c19sb25nKGNvaW4yKSkNCg0KI2NoZWNraW5nIGZvciB0aGUgY2xhc3MNCmNsYXNzKGNvaW5fdHMpDQpgYGANCg0KYGBge3J9DQojU3RlcCAxOiBQbG90DQoNCnBsb3QoY29pbl90cykNCmBgYA0KSW5zaWdodHMgYWJvdXQgdGhlIHBsb3Q6DQoxLiBUcmVuZCAoVXB3YXJkKQ0KMi4gU2Vhc29uYWxpdHkNCjMuIEluY3JlYXNpbmcgdmFyaWFuY2UNCjQuIFN0YXRpb25hcnkNCg0KYGBge3J9DQojU3RlcCAyOiBHZW5lcmF0ZSBzYW1wbGUgQUNGIGFuZCBQQUNGIG9mIG9yaWdpbmFsIHNlcmllcw0KDQphY2YoY29pbl90cykNCnBhY2YoY29pbl90cykNCmBgYA0KSW5zaWdodHMgYWJvdXQgdGhlIEFDRiBwbG90Og0KMS4gQXV0b2NvcnJlbGF0aW9uIGF0IHZhcmlvdXMgbGFncw0KMi4gR3JhZHVhbCBkZWNheSAodHJlbmQgb3Igbm9uc3RhdGlvbmFyaXR5KQ0KMy4gTmVlZCBmb3IgZGlmZmVyZW5jaW5nIChncmFkdWFsIGRlY2F5KSB0aHVzIHdlIHBlcmZvcm0gdW5pdCByb290IHRlc3QgKGZvcm1hbCB0ZXN0KSB0byB0ZXN0IHN0YXRpb25hcml0eS4NCg0KYGBge3J9DQojIyMgQXVnbWVudGVkIERpY2tleS1GdWxsZXIgVGVzdA0KDQphZGYudGVzdChjb2luX3RzKQ0KDQojIyMgS1BTUyBUZXN0IGZvciBMZXZlbCBTdGF0aW9uYXJpdHkNCg0Ka3Bzcy50ZXN0KGNvaW5fdHMpDQpgYGANCkJvdGggdGVzdCByZXN1bHQ6ICJ0aGUgcHJvY2VzcyBpcyBub3Qgc3RhdGlvbmFyeSINCg0KYGBge3J9DQojIyMgRGlmZmVyZW5jaW5nDQoNCmRpZmZfdHMgPC0gZGlmZihjb2luX3RzLCBkaWZmZXJlbmNlcyA9IDIpDQoNCiMjIyBPcmlnaW5hbCB2cyBEaWZmZXJlbmNlZCBTZXJpZXMNCg0KcGFyKG1mcm93ID0gYygyLCAxKSkNCnBsb3QoY29pbl90cywgbWFpbiA9ICJPcmlnaW5hbCBUaW1lIFNlcmllcyIsIHlsYWIgPSAiVmFsdWUiLCBjb2wgPSAiYmx1ZSIpDQpwbG90KGRpZmZfdHMsIG1haW4gPSAiRGlmZmVyZW5jZWQgVGltZSBTZXJpZXMiLCB5bGFiID0gIlZhbHVlIiwgY29sID0gInJlZCIpDQoNCmBgYA0KQWZ0ZXIgZmlyc3QgZGlmZmVyZW5jaW5nLCB0aGUgc2VyaWVzIHN0aWxsIHNob3dzIG5vbiBjb25zdGFuY3kgb2YgdmFyaWFuY2UgKGluY3JlYXNpbmcgdmFyaWFuY2UpLiBTYW1lIHJlc3VsdCBpZiB3ZSBkbyBzZWNvbmQgZGlmZmVyZW5jaW5nLg0KDQpgYGB7cn0NCiMjIyBCb3ggQ294IFRyYW5zZm9ybWF0aW9uDQoNCmxhbWJkYSA8LSBCb3hDb3gubGFtYmRhKGNvaW5fdHMpICAjIEZpbmQgdGhlIG9wdGltYWwgbGFtYmRhDQpib3hjb3hfdHMgPC0gQm94Q294KGNvaW5fdHMsIGxhbWJkYSA9IGxhbWJkYSkgICMgQXBwbHkgdGhlIHRyYW5zZm9ybWF0aW9uDQpwbG90KGJveGNveF90cywgbWFpbiA9ICJCb3gtQ294IFRyYW5zZm9ybWVkIFRpbWUgU2VyaWVzIiwgY29sID0gInB1cnBsZSIpDQpgYGANCmxhbWJkYSByZXN1bHQ6IDEgKG5vIHRyYW5zZm9ybWF0aW9uIG5lZWRlZCkNClBsb3QgZm9yIEJveC1Db3ggdHJhbnNmb3JtZWQgaXMgc3RpbGwgdGhlIHNhbWUgd2l0aCB0aGUgb3JpZ2luYWwgdGltZSBzZXJpZXMgZGF0YS4gDQoNCmBgYHtyfQ0KIyMjIEFsdGVybmF0aXZlOiBMb2cgVHJhbnNmb3JtYXRpb24NCg0KbG9nX3RzIDwtIGxvZyhjb2luX3RzKSANCnBsb3QobG9nX3RzLCBtYWluID0gIkxvZy1UcmFuc2Zvcm1lZCBUaW1lIFNlcmllcyIsIGNvbCA9ICJibHVlIikNCmBgYA0KSW5zaWdodHM6DQoxLiBUcmVuZA0KMi4gU2Vhc29uYWxpdHkNCjMuIEluY3JlYXNpbmcgdmFyaWFuY2UNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo=