fmTstats: t-stats and plots for a fitted Fundamental Factor Model...

View source: R/fmTstats.R

fmTstatsR Documentation

t-stats and plots for a fitted Fundamental Factor Model object

Description

Calculate and plot the time series of t-statistic values and the number of risk indices with significant t-stats for a fundamental factor model of class ffm produced by fitFfm or fitFfmDT

Usage

fmTstats(ffmObj, ...)

## S3 method for class 'ffm'
fmTstats(
  ffmObj,
  isPlot = TRUE,
  isPrint = FALSE,
  whichPlot = "tStats",
  color = c("black", "cyan"),
  lwd = 2,
  digits = 2,
  z.alpha = 1.96,
  layout = c(2, 3),
  type = "h",
  scale = "free",
  stripText.cex = 1,
  axis.cex = 1,
  title = TRUE,
  ...
)

Arguments

ffmObj

an object of class ffm produced by fitFfm

...

potentially further arguments passed.

isPlot

logical. If FALSE no plots are displayed.

isPrint

logical. if TRUE, the time series of the computed factor model values is printed. Default is FALSE

whichPlot

string indicating the plot(s) to be plotted. Choose from ("all", "tStats", "significantTstatsV", "significantTstatsH", "significantTstatsLikert"). Three variants of significantTstats stand for vertical, horizontal and likert barplots. Default is tStats plotting t-stats and significant t-stats with vertical bars.

color

length 2 vector specifying the plotting color for t-stats plot and for barplot respectively. default is c("black", "cyan")

lwd

line width relative to the default. default is 2.

digits

an integer indicating the number of decimal places to be used for rounding. default is 2.

z.alpha

critical value corresponding to the confidence interval. Default is 1.96 i.e 95% C.I

layout

numeric vector of length 2 or 3 giving the number of columns, rows, and pages (optional) in the xyplot of t-statistics. default is c(2,3).

type

type character. Type of the xyplot of t-statistics; "l" for lines, "p" for points, "h" for histogram like (or high-density) vertical lines and "b" for both. Default is "h".

scale

character. It determines how axis limits are calculated for each panel. Possible values are "same" , "free" (default) and "sliced".

stripText.cex

a number indicating the amount by which strip text in the plot(s) should be scaled relative to the default. 1=default, 1.5 is 50% larger, 0.5 is 50% smaller, etc.

axis.cex

a number indicating the amount by which axis in the plot(s) should be scaled relative to the default. Default = 1. 1.5 is 50% larger, 0.5 is 50% smaller, etc.

title

logical. if TRUE, the plots will have the main title. Default is TRUE.

Value

fmTstats plots the t-stats and significant t-stats values if isPlot is TRUE and returns a list with following components:

tstats

an xts object of t-stats values.

z.alpha

critical value corresponding to the confidence interval.

Author(s)

Avinash Acharya and Doug Martin

Examples

 
data("factorDataSetDjia5Yrs")
 
#Fit a Ffm with style factors only
 fit <- fitFfm(data = factorDataSetDjia5Yrs,
               exposure.vars = c("MKTCAP","ENTVAL","P2B","EV2S"),
               date.var = "DATE", 
               ret.var = "RETURN", 
               asset.var = "TICKER", 
               fit.method = "WLS",
               z.score = "crossSection")

#Compute time series of t-stats and number of significant t-stats 
 stats = fmTstats(fit, isPlot = TRUE, lwd = 2, color = c("blue", "blue"), 
                  z.alpha = 1.96)

fit1 <- fitFfm(data = factorDataSetDjia5Yrs, asset.var = "TICKER", 
               exposure.vars = c("SECTOR","MKTCAP","ENTVAL","P2B"),
               ret.var = "RETURN", 
               date.var = "DATE", 
               addIntercept = TRUE)
              
#Compute time series of t-stats and number of significant t-stats 
 stats = fmTstats(fit1, isPlot = TRUE, z.alpha = 1.96) 
               
# Fit a SECTOR+COUNTRY+Style model with Intercept
# Create a COUNTRY column with just 3 countries
#
#  factorDataSetDjia5Yrs$COUNTRY = rep(rep(c(rep("US", 1 ), rep("GERMANY", 1 )), 11), 60)
# 
#  fit.MICM <- fitFfm(data = factorDataSetDjia5Yrs, 
#                    asset.var = "TICKER",
#                    exposure.vars = c("SECTOR", "COUNTRY","P2B", "MKTCAP"),
#                    ret.var = "RETURN", 
#                    date.var = "DATE", 
#                    addIntercept = FALSE)
#  
 # Load library 'HH' to access the Likert option
#  library("HH")                   
#  stats = fmTstats(fit.MICM, isPlot = TRUE, z.alpha =1.96,
#                   whichPlot = "significantTstatsLikert")

braverock/factorAnalytics documentation built on Dec. 16, 2024, 1:05 p.m.