[Returnanalytics-commits] r2945 - in pkg/PerformanceAnalytics/sandbox/pulkit: . R man src week7

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Fri Aug 30 20:09:31 CEST 2013


Author: pulkit
Date: 2013-08-30 20:09:31 +0200 (Fri, 30 Aug 2013)
New Revision: 2945

Added:
   pkg/PerformanceAnalytics/sandbox/pulkit/week7/ExtremeDrawdown.R
   pkg/PerformanceAnalytics/sandbox/pulkit/week7/gpdmle.R
Removed:
   pkg/PerformanceAnalytics/sandbox/pulkit/R/ExtremeDrawdown.R
   pkg/PerformanceAnalytics/sandbox/pulkit/R/gpdmle.R
Modified:
   pkg/PerformanceAnalytics/sandbox/pulkit/DESCRIPTION
   pkg/PerformanceAnalytics/sandbox/pulkit/NAMESPACE
   pkg/PerformanceAnalytics/sandbox/pulkit/man/chart.BenchmarkSR.Rd
   pkg/PerformanceAnalytics/sandbox/pulkit/src/moment.c
Log:
check changes

Modified: pkg/PerformanceAnalytics/sandbox/pulkit/DESCRIPTION
===================================================================
--- pkg/PerformanceAnalytics/sandbox/pulkit/DESCRIPTION	2013-08-30 15:28:20 UTC (rev 2944)
+++ pkg/PerformanceAnalytics/sandbox/pulkit/DESCRIPTION	2013-08-30 18:09:31 UTC (rev 2945)
@@ -30,8 +30,6 @@
     'DrawdownBeta.R'
     'EDDCOPS.R'
     'Edd.R'
-    'ExtremeDrawdown.R'
-    'gpdmle.R'
     'GoldenSection.R'
     'MaxDD.R'
     'MinTRL.R'
@@ -47,3 +45,6 @@
     'TriplePenance.R'
     'TuW.R'
     'na.skip.R'
+    'capm_aorda.R'
+    'psr_python.R'
+    'ret.R'

Modified: pkg/PerformanceAnalytics/sandbox/pulkit/NAMESPACE
===================================================================
--- pkg/PerformanceAnalytics/sandbox/pulkit/NAMESPACE	2013-08-30 15:28:20 UTC (rev 2944)
+++ pkg/PerformanceAnalytics/sandbox/pulkit/NAMESPACE	2013-08-30 18:09:31 UTC (rev 2945)
@@ -7,7 +7,6 @@
 export(chart.Penance)
 export(chart.REDD)
 export(chart.SRIndifference)
-export(DrawdownGPD)
 export(EconomicDrawdown)
 export(EDDCOPS)
 export(golden_section)

Deleted: pkg/PerformanceAnalytics/sandbox/pulkit/R/ExtremeDrawdown.R
===================================================================
--- pkg/PerformanceAnalytics/sandbox/pulkit/R/ExtremeDrawdown.R	2013-08-30 15:28:20 UTC (rev 2944)
+++ pkg/PerformanceAnalytics/sandbox/pulkit/R/ExtremeDrawdown.R	2013-08-30 18:09:31 UTC (rev 2945)
@@ -1,92 +0,0 @@
-#'@title
-#'Modelling Drawdown using Extreme Value Theory
-#'
-#"@description
-#'It has been shown empirically that Drawdowns can be modelled using Modified Generalized Pareto 
-#'distribution(MGPD), Generalized Pareto Distribution(GPD) and other particular cases of MGPD such 
-#'as weibull distribution \eqn{MGPD(\gamma,0,\psi)} and unit exponential distribution\eqn{MGPD(1,0,\psi)}
-#'
-#' Modified Generalized Pareto Distribution is given by the following formula
-#'
-#' \deqn{
-#' G_{\eta}(m) = \begin{array}{l} 1-(1+\eta\frac{m^\gamma}{\psi})^(-1/\eta), if \eta \neq 0 \\ 1- e^{-frac{m^\gamma}{\psi}}, if \eta = 0,\end{array}}
-#'
-#' Here \eqn{\gamma{\epsilon}R} is the modifying parameter. When \eqn{\gamma<1} the corresponding densities are
-#' strictly decreasing with heavier tail; the GDP is recovered by setting \eqn{\gamma = 1} .\eqn{\gamma \textgreater 1}
-#' 
-#' The GDP is given by the following equation. \eqn{MGPD(1,\eta,\psi)}
-#'
-#'\deqn{G_{\eta}(m) = \begin{array}{l} 1-(1+\eta\frac{m}{\psi})^(-1/\eta), if \eta \neq 0 \\ 1- e^{-frac{m}{\psi}}, if \eta = 0,\end{array}}
-#'
-#' The weibull distribution is given by the following equation \eqn{MGPD(\gamma,0,\psi)}
-#'
-#'\deqn{G(m) =  1- e^{-frac{m^\gamma}{\psi}}}
-#'
-#'In this function weibull and generalized Pareto distribution has been covered. This function can be 
-#'expanded in the future to include more Extreme Value distributions as the literature on such distribution
-#'matures in the future. 
-#'
-#' @param R an xts, vector, matrix, data frame, timeSeries or zoo object of asset return 
-#' @param type The type of distribution "gpd","pd","weibull"
-#' @param threshold The threshold beyond which the drawdowns have to be modelled
-#'
-#'
-#'@references
-#'Mendes, Beatriz V.M. and Leal, Ricardo P.C., Maximum Drawdown: Models and Applications (November 2003). 
-#'Coppead Working Paper Series No. 359.Available at SSRN: http://ssrn.com/abstract=477322 or http://dx.doi.org/10.2139/ssrn.477322.
-#'
-#'@export
-DrawdownGPD<-function(R,type=c("gpd","weibull"),threshold=0.90){
-    x = checkData(R)
-    columns = ncol(R)
-    columnnames = colnames(R)
-    type = type[1]
-    dr = -Drawdowns(R)
-
-
-    gpdfit<-function(data,threshold){
-        if(type=="gpd"){
-            gpd_fit = gpd(data,threshold)
-            result = list(shape = gpd_fit$param[2],scale = gpd_fit$param[1])
-            return(result)
-            }
-        if(type=="wiebull"){
-            # From package MASS
-            if(any( data<= 0)) stop("Weibull values must be > 0")
-            lx <- log(data)
-            m <- mean(lx); v <- var(lx)
-            shape <- 1.2/sqrt(v); scale <- exp(m + 0.572/shape)
-            result <- list(shape = shape, scale = scale)
-            return(result)
-            }
-    }
-    for(column in 1:columns){
-        data = sort(as.vector(dr[,column]))
-        threshold = data[threshold*nrow(R)]
-        column.parameters <- gpdfit(data,threshold)
-            if(column == 1){
-                shape = column.parameters$shape
-                scale = column.parameters$scale
-            }
-            else {
-                scale = merge(scale, column.parameters$scale) 
-                shape = merge(shape, column.parameters$shape)
-                print(scale)
-                print(shape)
-            }
-    }
-    parameters = rbind(scale,shape)
-    colnames(parameters) = columnnames
-    parameters = reclass(parameters, x)
-    rownames(parameters)=c("scale","shape")
-    return(parameters)
-}
-
-
-
-
-
-
-
-
-

Deleted: pkg/PerformanceAnalytics/sandbox/pulkit/R/gpdmle.R
===================================================================
--- pkg/PerformanceAnalytics/sandbox/pulkit/R/gpdmle.R	2013-08-30 15:28:20 UTC (rev 2944)
+++ pkg/PerformanceAnalytics/sandbox/pulkit/R/gpdmle.R	2013-08-30 18:09:31 UTC (rev 2945)
@@ -1,172 +0,0 @@
-## This function comes from the  package "POT" . The gpd function
-## corresponds to the gpdmle function. So, I'm very gratefull to Mathieu Ribatet.
-
-gpd <- function(x, threshold, start, ...,
-                   std.err.type = "observed", corr = FALSE,
-                   method = "BFGS", warn.inf = TRUE){
-
-  if (all(c("observed", "expected", "none") != std.err.type))
-    stop("``std.err.type'' must be one of 'observed', 'expected' or 'none'")
-  
-  nlpot <- function(scale, shape) { 
-    -.C("gpdlik", exceed, nat, threshold, scale,
-        shape, dns = double(1), PACKAGE = "POT")$dns
-  }
-  
-  nn <- length(x)
-  
-  threshold <- rep(threshold, length.out = nn)
-  
-  high <- (x > threshold) & !is.na(x)
-  threshold <- as.double(threshold[high])
-  exceed <- as.double(x[high])
-  nat <- length(exceed)
-  
-  if(!nat) stop("no data above threshold")
-  
-  pat <- nat/nn
-  param <- c("scale", "shape")
-  
-  if(missing(start)) {
-    
-    start <- list(scale = 0, shape = 0)
-    start$scale <- mean(exceed) - min(threshold)
-    
-    start <- start[!(param %in% names(list(...)))]
-    
-  }
-  
-  if(!is.list(start)) 
-    stop("`start' must be a named list")
-  
-  if(!length(start))
-    stop("there are no parameters left to maximize over")
-  
-  nm <- names(start)
-  l <- length(nm)
-  f <- formals(nlpot)
-  names(f) <- param
-  m <- match(nm, param)
-  
-  if(any(is.na(m))) 
-    stop("`start' specifies unknown arguments")
-  
-  formals(nlpot) <- c(f[m], f[-m])
-  nllh <- function(p, ...) nlpot(p, ...)
-  
-  if(l > 1)
-    body(nllh) <- parse(text = paste("nlpot(", paste("p[",1:l,
-                          "]", collapse = ", "), ", ...)"))
-  
-  fixed.param <- list(...)[names(list(...)) %in% param]
-  
-  if(any(!(param %in% c(nm,names(fixed.param)))))
-    stop("unspecified parameters")
-  
-  start.arg <- c(list(p = unlist(start)), fixed.param)
-  if( warn.inf && do.call("nllh", start.arg) == 1e6 )
-    warning("negative log-likelihood is infinite at starting values")
-  
-  opt <- optim(start, nllh, hessian = TRUE, ..., method = method)
-    
-  if ((opt$convergence != 0) || (opt$value == 1e6)) {
-    warning("optimization may not have succeeded")
-    if(opt$convergence == 1) opt$convergence <- "iteration limit reached"
-  }
-  
-  else opt$convergence <- "successful"
-
-  if (std.err.type != "none"){
-    
-    tol <- .Machine$double.eps^0.5
-    
-    if(std.err.type == "observed") {
-      
-      var.cov <- qr(opt$hessian, tol = tol)
-      if(var.cov$rank != ncol(var.cov$qr)){
-        warning("observed information matrix is singular; passing std.err.type to ``expected''")
-        obs.fish <- FALSE
-        return
-      }
-      
-      if (std.err.type == "observed"){
-        var.cov <- try(solve(var.cov, tol = tol), silent = TRUE)
-
-        if(!is.matrix(var.cov)){
-          warning("observed information matrix is singular; passing std.err.type to ''none''")
-          std.err.type <- "expected"
-          return
-        }
-
-        else{
-          std.err <- diag(var.cov)
-          if(any(std.err <= 0)){
-            warning("observed information matrix is singular; passing std.err.type to ``expected''")
-            std.err.type <- "expected"
-            return
-          }
-          
-          std.err <- sqrt(std.err)
-        
-          if(corr) {
-            .mat <- diag(1/std.err, nrow = length(std.err))
-            corr.mat <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm))
-            diag(corr.mat) <- rep(1, length(std.err))
-          }
-          else {
-            corr.mat <- NULL
-          }
-        }
-      }
-    }
-    
-    if (std.err.type == "expected"){
-      
-      shape <- opt$par[2]
-      scale <- opt$par[1]
-      a22 <- 2/((1+shape)*(1+2*shape))
-      a12 <- 1/(scale*(1+shape)*(1+2*shape))
-      a11 <- 1/((scale^2)*(1+2*shape))
-      ##Expected Matix of Information of Fisher
-      expFisher <- nat * matrix(c(a11,a12,a12,a22),nrow=2)
-
-      expFisher <- qr(expFisher, tol = tol)
-      var.cov <- solve(expFisher, tol = tol)
-      std.err <- sqrt(diag(var.cov))
-      
-      if(corr) {
-        .mat <- diag(1/std.err, nrow = length(std.err))
-        corr.mat <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm))
-        diag(corr.mat) <- rep(1, length(std.err))
-      }
-      else
-        corr.mat <- NULL
-    }
-
-    colnames(var.cov) <- nm
-    rownames(var.cov) <- nm
-    names(std.err) <- nm
-  }
-
-  else{
-    std.err <- std.err.type <- corr.mat <- NULL
-    var.cov <- NULL
-  }
-  
-  
-  param <- c(opt$par, unlist(fixed.param))
-  scale <- param["scale"]
-  
-  var.thresh <- !all(threshold == threshold[1])
-
-  if (!var.thresh)
-    threshold <- threshold[1]
-  
-  list(fitted.values = opt$par, std.err = std.err, std.err.type = std.err.type,
-       var.cov = var.cov, fixed = unlist(fixed.param), param = param,
-       deviance = 2*opt$value, corr = corr.mat, convergence = opt$convergence,
-       counts = opt$counts, message = opt$message, threshold = threshold,
-       nat = nat, pat = pat, data = x, exceed = exceed, scale = scale,
-       var.thresh = var.thresh, est = "MLE", logLik = -opt$value,
-       opt.value = opt$value, hessian = opt$hessian)
-}

Modified: pkg/PerformanceAnalytics/sandbox/pulkit/man/chart.BenchmarkSR.Rd
===================================================================
--- pkg/PerformanceAnalytics/sandbox/pulkit/man/chart.BenchmarkSR.Rd	2013-08-30 15:28:20 UTC (rev 2944)
+++ pkg/PerformanceAnalytics/sandbox/pulkit/man/chart.BenchmarkSR.Rd	2013-08-30 18:09:31 UTC (rev 2945)
@@ -55,8 +55,8 @@
   relation ship between the Benchmark Sharpe Ratio and
   average correlation,average sharpe ratio or the number of
   #'strategies keeping other parameters constant. Here
-  average Sharpe ratio , average #'correlation stand for
-  the average of all the strategies in the portfolio. The
+  average Sharpe ratio , average correlation stand for the
+  average of all the strategies in the portfolio. The
   original point of the return series is also shown on the
   plots.
 

Modified: pkg/PerformanceAnalytics/sandbox/pulkit/src/moment.c
===================================================================
--- pkg/PerformanceAnalytics/sandbox/pulkit/src/moment.c	2013-08-30 15:28:20 UTC (rev 2944)
+++ pkg/PerformanceAnalytics/sandbox/pulkit/src/moment.c	2013-08-30 18:09:31 UTC (rev 2945)
@@ -56,5 +56,5 @@
     return Rsum;
 }
 
-    
+ 
 

Copied: pkg/PerformanceAnalytics/sandbox/pulkit/week7/ExtremeDrawdown.R (from rev 2943, pkg/PerformanceAnalytics/sandbox/pulkit/R/ExtremeDrawdown.R)
===================================================================
--- pkg/PerformanceAnalytics/sandbox/pulkit/week7/ExtremeDrawdown.R	                        (rev 0)
+++ pkg/PerformanceAnalytics/sandbox/pulkit/week7/ExtremeDrawdown.R	2013-08-30 18:09:31 UTC (rev 2945)
@@ -0,0 +1,92 @@
+#'@title
+#'Modelling Drawdown using Extreme Value Theory
+#'
+#"@description
+#'It has been shown empirically that Drawdowns can be modelled using Modified Generalized Pareto 
+#'distribution(MGPD), Generalized Pareto Distribution(GPD) and other particular cases of MGPD such 
+#'as weibull distribution \eqn{MGPD(\gamma,0,\psi)} and unit exponential distribution\eqn{MGPD(1,0,\psi)}
+#'
+#' Modified Generalized Pareto Distribution is given by the following formula
+#'
+#' \deqn{
+#' G_{\eta}(m) = \begin{array}{l} 1-(1+\eta\frac{m^\gamma}{\psi})^(-1/\eta), if \eta \neq 0 \\ 1- e^{-frac{m^\gamma}{\psi}}, if \eta = 0,\end{array}}
+#'
+#' Here \eqn{\gamma{\epsilon}R} is the modifying parameter. When \eqn{\gamma<1} the corresponding densities are
+#' strictly decreasing with heavier tail; the GDP is recovered by setting \eqn{\gamma = 1} .\eqn{\gamma \textgreater 1}
+#' 
+#' The GDP is given by the following equation. \eqn{MGPD(1,\eta,\psi)}
+#'
+#'\deqn{G_{\eta}(m) = \begin{array}{l} 1-(1+\eta\frac{m}{\psi})^(-1/\eta), if \eta \neq 0 \\ 1- e^{-frac{m}{\psi}}, if \eta = 0,\end{array}}
+#'
+#' The weibull distribution is given by the following equation \eqn{MGPD(\gamma,0,\psi)}
+#'
+#'\deqn{G(m) =  1- e^{-frac{m^\gamma}{\psi}}}
+#'
+#'In this function weibull and generalized Pareto distribution has been covered. This function can be 
+#'expanded in the future to include more Extreme Value distributions as the literature on such distribution
+#'matures in the future. 
+#'
+#' @param R an xts, vector, matrix, data frame, timeSeries or zoo object of asset return 
+#' @param type The type of distribution "gpd","pd","weibull"
+#' @param threshold The threshold beyond which the drawdowns have to be modelled
+#'
+#'
+#'@references
+#'Mendes, Beatriz V.M. and Leal, Ricardo P.C., Maximum Drawdown: Models and Applications (November 2003). 
+#'Coppead Working Paper Series No. 359.Available at SSRN: http://ssrn.com/abstract=477322 or http://dx.doi.org/10.2139/ssrn.477322.
+#'
+#'@export
+DrawdownGPD<-function(R,type=c("gpd","weibull"),threshold=0.90){
+    x = checkData(R)
+    columns = ncol(R)
+    columnnames = colnames(R)
+    type = type[1]
+    dr = -Drawdowns(R)
+
+
+    gpdfit<-function(data,threshold){
+        if(type=="gpd"){
+            gpd_fit = gpd(data,threshold)
+            result = list(shape = gpd_fit$param[2],scale = gpd_fit$param[1])
+            return(result)
+            }
+        if(type=="wiebull"){
+            # From package MASS
+            if(any( data<= 0)) stop("Weibull values must be > 0")
+            lx <- log(data)
+            m <- mean(lx); v <- var(lx)
+            shape <- 1.2/sqrt(v); scale <- exp(m + 0.572/shape)
+            result <- list(shape = shape, scale = scale)
+            return(result)
+            }
+    }
+    for(column in 1:columns){
+        data = sort(as.vector(dr[,column]))
+        threshold = data[threshold*nrow(R)]
+        column.parameters <- gpdfit(data,threshold)
+            if(column == 1){
+                shape = column.parameters$shape
+                scale = column.parameters$scale
+            }
+            else {
+                scale = merge(scale, column.parameters$scale) 
+                shape = merge(shape, column.parameters$shape)
+                print(scale)
+                print(shape)
+            }
+    }
+    parameters = rbind(scale,shape)
+    colnames(parameters) = columnnames
+    parameters = reclass(parameters, x)
+    rownames(parameters)=c("scale","shape")
+    return(parameters)
+}
+
+
+
+
+
+
+
+
+

Copied: pkg/PerformanceAnalytics/sandbox/pulkit/week7/gpdmle.R (from rev 2943, pkg/PerformanceAnalytics/sandbox/pulkit/R/gpdmle.R)
===================================================================
--- pkg/PerformanceAnalytics/sandbox/pulkit/week7/gpdmle.R	                        (rev 0)
+++ pkg/PerformanceAnalytics/sandbox/pulkit/week7/gpdmle.R	2013-08-30 18:09:31 UTC (rev 2945)
@@ -0,0 +1,172 @@
+## This function comes from the  package "POT" . The gpd function
+## corresponds to the gpdmle function. So, I'm very gratefull to Mathieu Ribatet.
+#'@useDynLib gpd
+gpd <- function(x, threshold, start, ...,
+                   std.err.type = "observed", corr = FALSE,
+                   method = "BFGS", warn.inf = TRUE){
+
+  if (all(c("observed", "expected", "none") != std.err.type))
+    stop("``std.err.type'' must be one of 'observed', 'expected' or 'none'")
+  
+  nlpot <- function(scale, shape) { 
+    -.C("gpdlik", exceed, nat, threshold, scale,
+        shape, dns = double(1))$dns
+  }
+  
+  nn <- length(x)
+  
+  threshold <- rep(threshold, length.out = nn)
+  
+  high <- (x > threshold) & !is.na(x)
+  threshold <- as.double(threshold[high])
+  exceed <- as.double(x[high])
+  nat <- length(exceed)
+  
+  if(!nat) stop("no data above threshold")
+  
+  pat <- nat/nn
+  param <- c("scale", "shape")
+  
+  if(missing(start)) {
+    
+    start <- list(scale = 0, shape = 0)
+    start$scale <- mean(exceed) - min(threshold)
+    
+    start <- start[!(param %in% names(list(...)))]
+    
+  }
+  
+  if(!is.list(start)) 
+    stop("`start' must be a named list")
+  
+  if(!length(start))
+    stop("there are no parameters left to maximize over")
+  
+  nm <- names(start)
+  l <- length(nm)
+  f <- formals(nlpot)
+  names(f) <- param
+  m <- match(nm, param)
+  
+  if(any(is.na(m))) 
+    stop("`start' specifies unknown arguments")
+  
+  formals(nlpot) <- c(f[m], f[-m])
+  nllh <- function(p, ...) nlpot(p, ...)
+  
+  if(l > 1)
+    body(nllh) <- parse(text = paste("nlpot(", paste("p[",1:l,
+                          "]", collapse = ", "), ", ...)"))
+  
+  fixed.param <- list(...)[names(list(...)) %in% param]
+  
+  if(any(!(param %in% c(nm,names(fixed.param)))))
+    stop("unspecified parameters")
+  
+  start.arg <- c(list(p = unlist(start)), fixed.param)
+  if( warn.inf && do.call("nllh", start.arg) == 1e6 )
+    warning("negative log-likelihood is infinite at starting values")
+  
+  opt <- optim(start, nllh, hessian = TRUE, ..., method = method)
+    
+  if ((opt$convergence != 0) || (opt$value == 1e6)) {
+    warning("optimization may not have succeeded")
+    if(opt$convergence == 1) opt$convergence <- "iteration limit reached"
+  }
+  
+  else opt$convergence <- "successful"
+
+  if (std.err.type != "none"){
+    
+    tol <- .Machine$double.eps^0.5
+    
+    if(std.err.type == "observed") {
+      
+      var.cov <- qr(opt$hessian, tol = tol)
+      if(var.cov$rank != ncol(var.cov$qr)){
+        warning("observed information matrix is singular; passing std.err.type to ``expected''")
+        obs.fish <- FALSE
+        return
+      }
+      
+      if (std.err.type == "observed"){
+        var.cov <- try(solve(var.cov, tol = tol), silent = TRUE)
+
+        if(!is.matrix(var.cov)){
+          warning("observed information matrix is singular; passing std.err.type to ''none''")
+          std.err.type <- "expected"
+          return
+        }
+
+        else{
+          std.err <- diag(var.cov)
+          if(any(std.err <= 0)){
+            warning("observed information matrix is singular; passing std.err.type to ``expected''")
+            std.err.type <- "expected"
+            return
+          }
+          
+          std.err <- sqrt(std.err)
+        
+          if(corr) {
+            .mat <- diag(1/std.err, nrow = length(std.err))
+            corr.mat <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm))
+            diag(corr.mat) <- rep(1, length(std.err))
+          }
+          else {
+            corr.mat <- NULL
+          }
+        }
+      }
+    }
+    
+    if (std.err.type == "expected"){
+      
+      shape <- opt$par[2]
+      scale <- opt$par[1]
+      a22 <- 2/((1+shape)*(1+2*shape))
+      a12 <- 1/(scale*(1+shape)*(1+2*shape))
+      a11 <- 1/((scale^2)*(1+2*shape))
+      ##Expected Matix of Information of Fisher
+      expFisher <- nat * matrix(c(a11,a12,a12,a22),nrow=2)
+
+      expFisher <- qr(expFisher, tol = tol)
+      var.cov <- solve(expFisher, tol = tol)
+      std.err <- sqrt(diag(var.cov))
+      
+      if(corr) {
+        .mat <- diag(1/std.err, nrow = length(std.err))
+        corr.mat <- structure(.mat %*% var.cov %*% .mat, dimnames = list(nm,nm))
+        diag(corr.mat) <- rep(1, length(std.err))
+      }
+      else
+        corr.mat <- NULL
+    }
+
+    colnames(var.cov) <- nm
+    rownames(var.cov) <- nm
+    names(std.err) <- nm
+  }
+
+  else{
+    std.err <- std.err.type <- corr.mat <- NULL
+    var.cov <- NULL
+  }
+  
+  
+  param <- c(opt$par, unlist(fixed.param))
+  scale <- param["scale"]
+  
+  var.thresh <- !all(threshold == threshold[1])
+
+  if (!var.thresh)
+    threshold <- threshold[1]
+  
+  list(fitted.values = opt$par, std.err = std.err, std.err.type = std.err.type,
+       var.cov = var.cov, fixed = unlist(fixed.param), param = param,
+       deviance = 2*opt$value, corr = corr.mat, convergence = opt$convergence,
+       counts = opt$counts, message = opt$message, threshold = threshold,
+       nat = nat, pat = pat, data = x, exceed = exceed, scale = scale,
+       var.thresh = var.thresh, est = "MLE", logLik = -opt$value,
+       opt.value = opt$value, hessian = opt$hessian)
+}



More information about the Returnanalytics-commits mailing list