Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. install.packages("tsDyn")
  2. library(vars)
  3. library(urca)
  4. library(stargazer)
  5. library(tsDyn)
  6.  
  7. data <- Dados_Problema12[33:135,2:17]
  8.  
  9. # padronização
  10. padr <- function(x){
  11. x = (x - mean(x))/sd(x)
  12. }
  13. data <- as.data.frame(lapply(data, padr))
  14.  
  15. # 1a diferença // ???
  16. #data[[1]] <-c(NA,diff(data[[1]]))
  17. #data[[3]] <-c(NA,diff(data[[3]]))
  18. #data <- data[-1,]
  19.  
  20. # VAR
  21. select <- VARselect(data)
  22. reg_var <- VAR(data, p = select$selection[[4]], type = "const")
  23. #stargazer(reg_var$varresult, type = "text")
  24.  
  25. # PFA
  26. omega_hat <- var(as.matrix(data))
  27. c_hat <- (unlist(lapply(data,mean)))
  28.  
  29. autovetores <- eigen(omega_hat)$vector
  30. colnames(auto_vetores) <- colnames(data)
  31.  
  32. autovalores <- as.data.frame(t(eigen(omega_hat)$value)) # auto valores decrescentes
  33. colnames(auto_valores) <- colnames(data)
  34. autovalores <- sort(auto_valores, decreasing = T)
  35.  
  36. # Variância Explicada // Não tenho certeza
  37. i <- 1:16
  38. var_explicada <- autovalores[i]/sum(autovalores[i])
  39. stargazer(var_explicada, type = 'text',summary.stat="mean") # k = 2
  40.  
  41. z1 <- as.matrix(data) %*% autovetores[,1]
  42. z2 <- as.matrix(data) %*% autovetores[,2]
  43.  
  44. # PCA
  45. W <- autovetores[,1:2]
  46. Z <- cbind(z1,z2)
  47. lambda <- t(Z) %*% Z
  48. lambda
  49.  
  50. pi <- W %*% lambda**(1/2)
  51. D <- diag(omega_hat - pi %*% t(pi))
  52. stargazer(D, type = "text")
  53. View(D)
  54.  
  55. # Funções para PFA
  56. auto_vec_2 <- function(s){
  57. eigen(omega_fun(s))$vector[,1:2]
  58. }
  59.  
  60. lambda_fun <- function(s){
  61. Z = as.matrix(data) %*% auto_vec_2(s)
  62. t(Z) %*% Z
  63. }
  64. lambda_fun(1)
  65.  
  66. pi_fun <- function(s){
  67. auto_vec_2(s-1) %*% lambda_fun(s-1)**(1/2)
  68. }
  69. pi
  70. omega_fun <- function(s){
  71. if (s == 0) omega_hat
  72. else omega_fun(s-1) - D_fun(s-1)
  73. }
  74.  
  75. D_fun <- function(s){
  76. if (s == 0) 0
  77. else diag(omega_fun(s) - pi_fun(s-1) %*% t(pi_fun(s-1)))
  78. }
  79.  
  80. pfa_fun <- function(delta){
  81. s <- 1
  82. while(prod(D_fun(s)-D_fun(s-1)) > delta){
  83. print(s)
  84. s <- s+1
  85. }
  86. invisible(list(pi_fun(s),D_fun(s)))
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement