Có một cái nhìn về Lambert W x F đuôi nặng hoặc xiên Lambert W x F phân phối một thử (từ chối trách nhiệm: Tôi là tác giả). Trong R chúng được thực hiện trong gói LambertW .
Bài viết liên quan:
Một lợi thế so với phân phối Cauchy hoặc sinh viên với mức độ tự do cố định là các tham số đuôi có thể được ước tính từ dữ liệu - vì vậy bạn có thể để dữ liệu quyết định những khoảnh khắc tồn tại. Ngoài ra, khung Lambert W x F cho phép bạn chuyển đổi dữ liệu của mình và loại bỏ độ lệch / đuôi nặng. Itt là rất quan trọng để lưu ý rằng mặc dù OLS không đòi hỏi bình thường của hoặc . Tuy nhiên, đối với EDA của bạn, nó có thể đáng giá.XyX
Dưới đây là một ví dụ về các ước tính của Lambert W x Gaussian được áp dụng cho lợi nhuận của quỹ đầu tư.
library(fEcofin)
ret <- ts(equityFunds[, -1] * 100)
plot(ret)
Các số liệu tóm tắt về lợi nhuận là tương tự (không cực đoan) như trong bài viết của OP.
data_metrics <- function(x) {
c(mean = mean(x), sd = sd(x), min = min(x), max = max(x),
skewness = skewness(x), kurtosis = kurtosis(x))
}
ret.metrics <- t(apply(ret, 2, data_metrics))
ret.metrics
## mean sd min max skewness kurtosis
## EASTEU 0.1300 1.538 -18.42 12.38 -1.855 28.95
## LATAM 0.1206 1.468 -6.06 5.66 -0.434 4.21
## CHINA 0.0864 0.911 -4.71 4.27 -0.322 5.42
## INDIA 0.1515 1.502 -12.72 14.05 -0.505 15.22
## ENERGY 0.0997 1.187 -5.00 5.02 -0.271 4.48
## MINING 0.1315 1.394 -7.72 5.69 -0.692 5.64
## GOLD 0.1098 1.855 -10.14 6.99 -0.350 5.11
## WATER 0.0628 0.748 -5.07 3.72 -0.405 6.08
Hầu hết các loạt cho thấy rõ các đặc điểm không bình thường (độ lệch mạnh và / hoặc kurtosis lớn). Hãy Gaussianize từng chuỗi bằng cách sử dụng phân phối Lambert W x Gaussian đuôi nặng (= Tukey's h) bằng cách sử dụng phương pháp ước tính khoảnh khắc ( IGMM
).
library(LambertW)
ret.gauss <- Gaussianize(ret, type = "h", method = "IGMM")
colnames(ret.gauss) <- gsub(".X", "", colnames(ret.gauss))
plot(ts(ret.gauss))
Các ô chuỗi thời gian hiển thị đuôi ít hơn nhiều và biến đổi ổn định hơn theo thời gian (mặc dù không phải là hằng số). Tính toán lại các số liệu trên chuỗi thời gian Gaussianized:
ret.gauss.metrics <- t(apply(ret.gauss, 2, data_metrics))
ret.gauss.metrics
## mean sd min max skewness kurtosis
## EASTEU 0.1663 0.962 -3.50 3.46 -0.193 3
## LATAM 0.1371 1.279 -3.91 3.93 -0.253 3
## CHINA 0.0933 0.734 -2.32 2.36 -0.102 3
## INDIA 0.1819 1.002 -3.35 3.78 -0.193 3
## ENERGY 0.1088 1.006 -3.03 3.18 -0.144 3
## MINING 0.1610 1.109 -3.55 3.34 -0.298 3
## GOLD 0.1241 1.537 -5.15 4.48 -0.123 3
## WATER 0.0704 0.607 -2.17 2.02 -0.157 3
Các IGMM
thuật toán đạt được chính xác những gì nó đã được đặt ra để làm: chuyển đổi dữ liệu để có nhọn bằng để . Thật thú vị, tất cả các chuỗi thời gian bây giờ có độ lệch tiêu cực, phù hợp với hầu hết các tài liệu chuỗi thời gian tài chính. Điều quan trọng để chỉ ra ở đây chỉ hoạt động bên lề, không phải chung (tương tự ).3Gaussianize()
scale()
Hồi quy bivariate đơn giản
Để xem xét ảnh hưởng của Gaussianization trên OLS, hãy xem xét dự đoán lợi nhuận "EASTEU" từ lợi nhuận "INDIA" và ngược lại. Mặc dù chúng tôi đang xem xét lợi nhuận trong cùng một ngày giữa trên (không có biến bị trễ), nó vẫn cung cấp giá trị cho dự đoán thị trường chứng khoán với chênh lệch thời gian 6h + giữa Ấn Độ và châu Âu. r I N D I A , trEASTEU,trINDIA,t
layout(matrix(1:2, ncol = 2, byrow = TRUE))
plot(ret[, "INDIA"], ret[, "EASTEU"])
grid()
plot(ret.gauss[, "INDIA"], ret.gauss[, "EASTEU"])
grid()
Phân tán bên trái của loạt phim gốc cho thấy các ngoại lệ mạnh mẽ không xảy ra vào cùng một ngày, nhưng tại các thời điểm khác nhau ở Ấn Độ và Châu Âu; ngoài ra, không rõ liệu đám mây dữ liệu ở trung tâm không hỗ trợ tương quan hay phụ thuộc âm / dương. Do các ngoại lệ ảnh hưởng mạnh đến các ước tính phương sai và tương quan, nên đáng để xem xét sự phụ thuộc với các đuôi nặng bị loại bỏ (biểu đồ tán xạ phải). Ở đây các mô hình rõ ràng hơn nhiều và mối quan hệ tích cực giữa Ấn Độ và thị trường Đông Âu trở nên rõ ràng.
# try these models on your own
mod <- lm(EASTEU ~ INDIA * CHINA, data = ret)
mod.robust <- rlm(EASTEU ~ INDIA, data = ret)
mod.gauss <- lm(EASTEU ~ INDIA, data = ret.gauss)
summary(mod)
summary(mod.robust)
summary(mod.gauss)
Nhân quả Granger
Thử nghiệm quan hệ nhân quả Granger dựa trên mô hình (Tôi sử dụng để nắm bắt hiệu ứng tuần của các giao dịch hàng ngày) cho "EASTEU" và "INDIA" từ chối "không có quan hệ nhân quả Granger" cho cả hai hướng.p = 5VAR(5)p=5
library(vars)
mod.vars <- vars::VAR(ret[, c("EASTEU", "INDIA")], p = 5)
causality(mod.vars, "INDIA")$Granger
##
## Granger causality H0: INDIA do not Granger-cause EASTEU
##
## data: VAR object mod.vars
## F-Test = 3, df1 = 5, df2 = 3000, p-value = 0.02
causality(mod.vars, "EASTEU")$Granger
##
## Granger causality H0: EASTEU do not Granger-cause INDIA
##
## data: VAR object mod.vars
## F-Test = 4, df1 = 5, df2 = 3000, p-value = 0.003
Tuy nhiên, đối với dữ liệu Gaussianized, câu trả lời là khác nhau! Ở đây, bài kiểm tra không thể từ chối H0 rằng "ẤN ĐỘ không gây ra EASTEU", nhưng vẫn từ chối rằng "EASTEU không gây ra Ấn Độ gây ra Ấn Độ". Vì vậy, dữ liệu Gaussianized ủng hộ giả thuyết rằng thị trường châu Âu thúc đẩy thị trường ở Ấn Độ vào ngày hôm sau.
mod.vars.gauss <- vars::VAR(ret.gauss[, c("EASTEU", "INDIA")], p = 5)
causality(mod.vars.gauss, "INDIA")$Granger
##
## Granger causality H0: INDIA do not Granger-cause EASTEU
##
## data: VAR object mod.vars.gauss
## F-Test = 0.8, df1 = 5, df2 = 3000, p-value = 0.5
causality(mod.vars.gauss, "EASTEU")$Granger
##
## Granger causality H0: EASTEU do not Granger-cause INDIA
##
## data: VAR object mod.vars.gauss
## F-Test = 2, df1 = 5, df2 = 3000, p-value = 0.06
Lưu ý rằng tôi không rõ câu trả lời nào là đúng (nếu có), nhưng đó là một quan sát thú vị để thực hiện. Không cần phải nói rằng toàn bộ thử nghiệm Nhân quả này phụ thuộc vào là mô hình chính xác - điều mà rất có thể là không; nhưng tôi nghĩ rằng nó phục vụ tốt cho Illustratiton.VAR(5)