inst/doc/pa.R

### R code from vignette source 'pa.Rnw'

###################################################
### code chunk number 1: pa.Rnw:116-118
###################################################
options(width = 50, digits = 2, scipen = 5)
library(pa)


###################################################
### code chunk number 2: pa.Rnw:121-123
###################################################
data(year)
names(year)


###################################################
### code chunk number 3: pa.Rnw:170-176
###################################################
sample.mat <- rbind(which(year$portfolio == 0 & year$benchmark == 0)[2],
                    which(year$portfolio == 0 & year$benchmark > 0)[2],
                    which(year$portfolio > 0 & year$benchmark == 0)[2],
                    which(year$return > 0 & year$portfolio > 0 & year$benchmark > 0)[500],
                    which(year$barrid == "CANAITC")[11])
year[sample.mat, c(-1, -6, -7, -9: -11, -13) ]


###################################################
### code chunk number 4: pa.Rnw:451-457
###################################################
data(jan)
br.single <- brinson(x = jan, date.var = "date", 
                 cat.var = "sector",
                 bench.weight = "benchmark", 
                 portfolio.weight = "portfolio", 
                 ret.var = "return")


###################################################
### code chunk number 5: pa.Rnw:474-475
###################################################
summary(br.single)


###################################################
### code chunk number 6: pa.Rnw:486-487
###################################################
plot(br.single, var = "sector", type = "return")


###################################################
### code chunk number 7: pa.Rnw:617-623
###################################################
data(quarter)
br.multi <- brinson(quarter, date.var = "date",
                    cat.var = "sector",
                    bench.weight = "benchmark",
                    portfolio.weight = "portfolio",
                    ret.var = "return")


###################################################
### code chunk number 8: pa.Rnw:630-631
###################################################
exposure(br.multi, var = "size")


###################################################
### code chunk number 9: pa.Rnw:641-642
###################################################
returns(br.multi, type = "linking")


###################################################
### code chunk number 10: pa.Rnw:659-660
###################################################
plot(br.multi, type = "return")


###################################################
### code chunk number 11: pa.Rnw:749-759
###################################################
test.df <- data.frame(Return = c(0.3, 0.4, 0.5),
                      Name = c('A', 'B', 'C'),
                      Size = c(1.2, 2, 0.8), 
                      Value = c(3, 2, 1.5),
                      Active_Weight= c(0.5, 0.1, -0.6))
test.df
## model <- lm(Ret ~ Size + Value, data = test.df)
## test.df[,1] %*% test.df[,5]
## model$coefficients[2] * t(test.df[,3]) %*% test.df[,5] ## active exposure of size 
## model$coefficients[3] * t(test.df[,4]) %*% test.df[,5] ## active exposure of value 


###################################################
### code chunk number 12: pa.Rnw:776-783
###################################################
rb.single <- regress(jan, date.var = "date",
                ret.var = "return",
                reg.var = c("sector", "growth",
                  "size"),
                benchmark.weight = "benchmark",
                portfolio.weight = "portfolio")
exposure(rb.single, var = "growth")


###################################################
### code chunk number 13: pa.Rnw:795-796
###################################################
summary(rb.single)


###################################################
### code chunk number 14: pa.Rnw:838-845
###################################################
rb.multi <- regress(quarter, date.var = "date",
                ret.var = "return",
                reg.var = c("sector", "growth", 
                  "size"),
                benchmark.weight = "benchmark",
                portfolio.weight = "portfolio")
rb.multi


###################################################
### code chunk number 15: pa.Rnw:855-856
###################################################
summary(rb.multi)


###################################################
### code chunk number 16: pa.Rnw:870-877
###################################################
rb.multi2 <- regress(year, date.var = "date",
               ret.var = "return",
               reg.var = c("sector", "growth", 
                 "size"),
               benchmark.weight = "benchmark",
               portfolio.weight = "portfolio")
returns(rb.multi2, type = "linking")


###################################################
### code chunk number 17: pa.Rnw:889-890
###################################################
plot(rb.multi2, var = "sector", type = "return")


###################################################
### code chunk number 18: pa.Rnw:980-987
###################################################
data(test)
test.br <- brinson(x = test, date.var = "date", 
                   cat.var = "sector",
                   bench.weight = "benchmark", 
                   portfolio.weight = "portfolio", 
                   ret.var = "return")
returns(test.br)


###################################################
### code chunk number 19: pa.Rnw:998-1005
###################################################
test.reg <- regress(x =test, 
                    date.var = "date", 
                    ret.var = "return", 
                    reg.var = "sector",
                    benchmark.weight = "benchmark", 
                    portfolio.weight = "portfolio") 
returns(test.reg)


###################################################
### code chunk number 20: pa.Rnw:1028-1033
###################################################
lm.test <- lm(return ~ sector - 1, 
              data = test[test$portfolio != 0, ])
lm.test$coefficients 
exposure(br.single, var = "sector")[ ,2] %*% 
  (lm.test$coefficients - test.reg@coefficients)

Try the pa package in your browser

Any scripts or data that you put into this service are public.

pa documentation built on Aug. 21, 2023, 5:06 p.m.