Translate

Saturday, November 20, 2021

Analyzing Consumer Price Index (CPI) as of 10-01-2021

 


























library(Quandl)
library(ggplot2)
library(tseries);library(timeseries);library(xts);library(forecast)
library (quantmod)
library(psych)
library(plotly) #install.package(plotly)

#Food and Beverages (CPIFABSL)
#Housing (CPIHOSNS)
#Apparel (CPIAPPSL)
#Transportation (CPITRNSL)
#Medical Care (CPIMEDSL)
#Recreation (CPIRECSL)
#Education and Communication (CPIEDUSL)
# Other Goods and Services (CPIOGSSL)
#Commodities (CUSR0000SAC)
# Services (CUSR0000SAS)

start <- as.Date("1990-01-01")

getSymbols(c('CPIFABSL','CPIHOSNS','CPIAPPSL','CPITRNSL','CPIMEDSL','CPIRECSL',
             
             'CPIEDUSL','CPIOGSSL','CUSR0000SAC','CUSR0000SAS',"CPIAUCSL","CPILFESL"), from=start, src='FRED')

CPI<-merge (CPIFABSL,CPIHOSNS,CPIAPPSL,CPITRNSL,CPIMEDSL,CPIRECSL,
             
           CPIEDUSL,CPIOGSSL,CUSR0000SAC,CUSR0000SAS,CPIAUCSL,CPILFESL)

Diff_CPI <- (CPI/lag(CPI)-1)*100  
Diff_CPI[1,] <- 0


Diff_CPIAUCSL=Delt(CPIAUCSL,k=12)*100
Diff_CPIFESL=Delt(CPILFESL,k=12)*100

Diff_CPIFABSL=Delt(CPI$CPIFABSL,k=12)*100
Diff_CPIHOSNS=Delt(CPI$CPIHOSNS,k=12)*100
Diff_CPIAPPSL=Delt(CPI$CPIAPPSL,k=12)*100
Diff_CPITRNSL=Delt(CPI$CPITRNSL,k=12)*100
Diff_CPIMEDSL=Delt(CPI$CPIMEDSL,k=12)*100
Diff_CPIRECSL=Delt(CPI$CPIRECSL,k=12)*100
Diff_CPIEDUSL=Delt(CPI$CPIEDUSL,k=12)*100
Diff_CPIOGSSL=Delt(CPI$CPIOGSSL,k=12)*100
Diff_CUSR0000SAC=Delt(CPI$CUSR0000SAC,k=12)*100
Diff_CUSR0000SAS=Delt(CPI$CUSR0000SAS,k=12)*100

Diff_12<-merge(Diff_CPIFABSL, Diff_CPIHOSNS, Diff_CPIAPPSL, Diff_CPITRNSL, 
               Diff_CPIMEDSL, Diff_CPIRECSL, Diff_CPIEDUSL, Diff_CPIOGSSL,
               Diff_CUSR0000SAC, Diff_CUSR0000SAS)


Diff_12=window(Diff_12,start=as.Date("2001-01-01"), end=as.Date("2021-12-31"))

cor.distance <- cor(Diff_12)
corrplot::corrplot(cor.distance)

plot(Diff_CPIAPPSL)

plot(Diff_12)



plot(Diff_CPIAUCSL, main='Changes from previous year -CPI for All',las=2, subset='2000-01-01/')

plot(Diff_CPIFESL, main='Changes from previous year - Core CPI',las=2,subset='2000-01-01/')


plot(Diff_CPIFABSL, main='Changes from previous year -Food and Beverage',las=2, subset='2000-01-01/')

plot(Diff_CPIHOSNS, main='Changes from previous year -Housing',las=2,subset='2000-01-01/')


plot(Diff_CPIAPPSL, main='Changes from previous year -APPAREL', las=2,subset='2000-01-01/')

plot(Diff_CPITRNSL, main='Changes from previous year -Transportation',las=2,subset='2000-01-01/')


plot(Diff_CPIMEDSL, main='Changes from previous year -Medical Care',las=2,subset='2000-01-01/')


plot(Diff_CPIRECSL, main='Changes from previous year -Recreation',las=2,subset='2000-01-01/')


plot(Diff_CPIEDUSL, main='Changes from previous year -Education and Communication',las=2,subset='2000-01-01/')


plot(Diff_CPIOGSSL, main='Changes from previous year -Other Goods and Services',las=2,subset='2000-01-01/')

plot(Diff_CUSR0000SAC, main='Changes from previous year -Commodities',las=2,subset='2000-01-01/')


plot(Diff_CUSR0000SAS, main='Changes from previous year -Services',las=2,subset='2000-01-01/')






plot(Diff_CPIFABSL)

hist(Diff_CPIFABSL,col='blue')

CPI_2021=window(Diff_CPI,start=as.Date("2021-01-01"), end=as.Date("2021-12-31"))
tail(CPI_2018)

CPI_2021


barplot(CPI_2021$CPIFABSL,las=2)


Sunday, August 29, 2021

Analyzing REITs - Self Storage as of 8/26/2021

 




require(IKTrading)
require(quantmod)
require(PerformanceAnalytics)

options("getSymbols.warning4.0"=FALSE)

symbols <- c("NSA", #National Storage
             "EXR",  #Extra Space Storage
             "PSA", # Public Storage
             "SELF", #Global Self Storage 
             "CUBE",  #Cube Smart
             "LSI"  #Life Storage
             
             
             
             
             
)

from="2003-01-01"

#Home ETFs first, iShares ETFs afterwards
if(!"XLB" %in% ls()) {
  suppressMessages(getSymbols(symbols, from="2003-01-01", src="yahoo", adjust=TRUE))
}

Self <- list()
for(i in 1:length(symbols)) {
  Self[[i]] <- Cl(get(symbols[i]))
}
Self <- do.call(cbind, Self)
colnames(Self) <- gsub("\\.[A-z]*", "", colnames(Self))

cor(Self)

Storage<-Self/lag(Self)-1  
Storage[1,] <- 0

write.table(Storage, file='Storage.xls')
tail(Storage)



Home_2020=window(Storage,start=as.Date("2020-01-01"), end=as.Date("2020-12-31"))


Home_2021=window(Storage,start=as.Date("2021-01-01"), end=as.Date("2021-12-31"))


charts.PerformanceSummary(Home_2021,main='Self Storage REITs Sectors',wealth.index = TRUE)

#calculate the Sharpe ratio
# Sharpe ratio = ((Expected_Return - Risk Free Return) / SD)

Home_Returns<-table.AnnualizedReturns(Home_2021, scale=252, Rf=0.005/252)

Home_Returns

Cumm_Returns=Return.cumulative(Home_2021)*100

Cumm_Returns

chart.CumReturns(Home_2021, main='Home for 2021',  begin=c("first", "axis"))

barplot(Cumm_Returns, main='Cummulative Returns for Self REITs')

barplot(Cumm_Returns)

write.csv(Home_Returns, file='return.xls')

cor.distance <- cor(Storage)
corrplot::corrplot(cor.distance)

write.table(cor.distance, file='correlation matrix.xls')



library(igraph)
g1 <- graph.adjacency(cor.distance, weighted = T, mode = "undirected", add.colnames = "label")
mst <- minimum.spanning.tree(g1)
plot(mst)

library(visNetwork)

mst_df <- get.data.frame( mst, what = "both" )
visNetwork( 
  data.frame(
    id = 1:nrow(mst_df$vertices) 
    ,label = mst_df$vertices
  )
  , mst_df$edges
) %>%
  visOptions( highlightNearest = TRUE)



Monday, August 2, 2021

Industrial Production as of 06/2021

 


Industrial Production as of 06/2021












library(Quandl)
library(ggplot2)
library(tseries);library(timeseries);library(xts);library(forecast)
library (quantmod)
library(psych)
library(plotly) #install.package(plotly)

#Industrial Production (INDPRO)
#Industrial Production: Consumer Goods (IPCONGD)
#Industrial Production: Durable Consumer Goods (IPDCONGD)
#Industrial Production: Non-Durable Consumer Goods (IPNCONGD)
#Industrial Production: Equipment: Business Equipment (IPBUSEQ)
#Industrial Production: Materials (IPMAT)
#Industrial Production: Manufacturing (SIC) (IPMANSICS)
#Industrial Production: Durable Manufacturing (NAICS) (IPDMAN)
#Industrial Production: Non-Durable Manufacturing (NAICS) (IPNMAN)



start <- as.Date("1990-01-01")

getSymbols(c('INDPRO','IPCONGD','IPDCONGD','IPNCONGD','IPBUSEQ','IPMAT',
             'IPMANSICS','IPDMAN','IPNMAN'
             
             ), from=start, src='FRED')

IND<-merge (INDPRO,IPCONGD,IPDCONGD,IPNCONGD,IPBUSEQ,IPMAT,
            IPMANSICS,IPDMAN,IPNMAN)
            
Diff_IND <- (IND/lag(IND)-1)*100  
Diff_IND[1,] <- 0


Diff_INDPRO=Delt(INDPRO,k=12)*100


plot(Diff_INDPRO, main='Changes from previous year - Industrial Production',las=2, subset='2000-01-01/')


Diff_IPCONGD=Delt(IPCONGD,k=12)*100

plot(Diff_IPCONGD, main='Changes from previous year - Industrial Production: Consumer Goods (IPCONGD)',las=2, subset='2000-01-01/')


Diff_IPDCONGD=Delt(IPDCONGD,k=12)*100

plot(Diff_IPDCONGD, main='Changes from previous year - Industrial Production: Durable Consumer Goods (IPDCONGD)',las=2, subset='2000-01-01/')

Diff_IPNcONGD=Delt(IPNCONGD,k=12)*100


plot(Diff_IPNCONGD, main='Changes from previous year - Industrial Production: Non-Durable Consumer Goods',las=2, subset='2000-01-01/')

Diff_IPBUSEQ=Delt(IPBUSEQ,k=12)*100

plot(Diff_IPBUSEQ, main='Changes from previous year - Industrial Production: Equipment: Business Equipment (IPBUSEQ)',las=2, subset='2000-01-01/')

Diff_IPMAT=Delt(IPMAT,k=12)*100


plot(Diff_IPMAT, main='Changes from previous year - Industrial Production: Materials (IPMAT)',las=2, subset='2000-01-01/')


Diff_IPMANSICS=Delt(IPMANSICS,k=12)*100

plot(Diff_IPMANSICS, main='Changes from previous year - Industrial Production: Manufacturing (SIC) (IPMANSICS)',las=2, subset='2000-01-01/')

Diff_IPDMAN=Delt(IPDMAN,k=12)*100

plot(Diff_IPDMAN, main='Changes from previous year - Industrial Production: Durable Manufacturing (NAICS) (IPDMAN)',las=2, subset='2000-01-01/')


Diff_IPNMAN=Delt(IPNMAN,k=12)*100

plot(Diff_IPNMAN, main='Changes from previous year -Industrial Production: Non-Durable Manufacturing (NAICS) (IPNMAN)',las=2, subset='2000-01-01/')





Thursday, May 13, 2021

S&P/ Case-Shiller U.S. City Price Index as of 02-2021

 


































library(ggplot2)
library(Quandl)
library(zoo)
library(quantmod)
library(TTR)
library(forecast)
library(ggfortify)
library(psych)
library(pastecs)
library(xts)

start <- as.Date("1990-01-01")

getSymbols(c(
  
  'NYXRSA',
  'BOXRSA',
  'SDXRSA',
  'CHXRSA',
  'DNXRSA',
  'LVXRSA',
  'DAXRSA',
  'WDXRSA',
  'MIXRSA',
  'ATXRSA',
  'SFXRSA',
  'LXXRSA',
  'SEXRSA',
  'CSUSHPISA'
  
), from=start, src='FRED')

names(NYXRSA)<-"New York"
names(BOXRSA)<-"Boston"
names(SDXRSA)<-"San Diego"
names(CHXRSA)<-"Chicago"
names(DNXRSA)<-"Denver"
names(LVXRSA)<-"Las Vegas"
names(WDXRSA)<-"DC"
names(MIXRSA)<-"Miami"
names(DAXRSA)<-"Dallas"
names(ATXRSA)<-"Atlanta"
names(SFXRSA)<-"San Francisco"
names(LXXRSA)<-"Los Angeles"
names(SEXRSA)<-"Seattle"
names(CSUSHPISA)<-"National" 

Mortgage<-getSymbols('MORTGAGE30US', src='FRED')

Housing_Price=ATXRSA

Compare_Max=Housing_Price/max(Housing_Price)*100

Diff_Housing=Delt(Housing_Price,k=12)*100
Annual_Changes=annualReturn(Housing_Price)*100

par(mfrow=c(2,1))
plot(Diff_Housing)
plot(Annual_Changes)

summary(last(Annual_Changes,'7 years'))

describe(Annual_Changes)

par(mfrow=c(3,1))
plot(ATXRSA, main="ATLANTA")
plot(Delt(ATXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(ATXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)


par(mfrow=c(3,1))
plot(BOXRSA, main="BOSTON")
plot(Delt(BOXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(BOXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)


par(mfrow=c(3,1))
plot(CHXRSA, main="CHICAGO")
plot(Delt(CHXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(CHXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)


par(mfrow=c(3,1))
plot(DAXRSA, main="DALLAS")
plot(Delt(DAXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(DAXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)


par(mfrow=c(3,1))
plot(DNXRSA, main="DENVER")
plot(Delt(DNXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(DNXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)



par(mfrow=c(3,1))
plot(LVXRSA, main="LAS VEGAS")
plot(Delt(LVXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(LVXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)


par(mfrow=c(3,1))
plot(MIXRSA, main="MIAMI")
plot(Delt(MIXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(MIXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)


par(mfrow=c(3,1))
plot(NYXRSA, main="NEW YORK")
plot(Delt(NYXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(NYXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)


par(mfrow=c(3,1))
plot(SDXRSA, main="SAN DIEGO")
plot(Delt(SDXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(SDXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)


par(mfrow=c(3,1))
plot(SEXRSA, main="SEATTLE")
plot(Delt(SEXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(SEXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)


par(mfrow=c(3,1))
plot(SFXRSA, main="SAN FRANSICO")
plot(Delt(SFXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(SFXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)


par(mfrow=c(3,1))
plot(WDXRSA, main="WASHINGTON DC")
plot(Delt(WDXRSA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(WDXRSA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)



par(mfrow=c(3,1))
plot(CSUSHPISA, main="US NATIONAL")
plot(Delt(CSUSHPISA,  k=12)*100, main="Percent changes from previous year ", col="red")
barplot(annualReturn(CSUSHPISA), main="Annual Changes ", col="blue", cex.names=0.8, las=2)


dev.off()

barplot(Annual_Changes, main=" Annual Changes ", col="blue", cex.names=0.8, las=2)





Monthly_Price<-monthlyReturn(Housing_Price)
Monthly_Rate<-MORTGAGE30US

Housing<-na.omit(merge(Monthly_Price,MORTGAGE30US))
head(Housing)

# Scatter chart for Price chagnes

scatter.smooth(last(Housing, "10 years"))
abline(lm(Housing$monthly.returns~Housing$MORTGAGE30US), col="blue")

# Regressiion Model

alli.mod1=lm(Combined$monthly.returns~Combined$MORTGAGE30US, data=Combined)

summary(alli.mod1)


autoplot(MORTGAGE30US)
y<-(Housing_Price)

library(ggfortify)
library(forecast)
autoplot(y)

d.arima<-auto.arima(y)
d.arima

d.forecast<-forecast(d.arima)
d.forecast

autoplot(forecast(d.arima, 36))


fit<-ets(y)
autoplot(stl(y, plot=FALSE))
ggtsdiag(auto.arima(y))


autoplot(forecast(fit,36))



Housing_Prices <- as.xts(data.frame(
  
  NYXRSA,
  BOXRSA,
  SDXRSA,
  CHXRSA,
  DNXRSA,
  LVXRSA,
  WDXRSA,
  MIXRSA,
  LXXRSA,
  SFXRSA
))



Housing_return = apply(Housing_Prices, 1, function(x) {x / Housing_Prices[1,]}) %>% 
  t %>% as.xts


head(Housing_return)

Summary_Stat<-summary(Housing_return)

cor(Housing_return)

write.table(Summary_Stat, "Summary.xls")

plot(as.zoo(Housing_return), screens = 1, lty = 1:10, xlab = "Date", ylab = "Home Price Index")
legend("topleft", c("New York", "Boston", "San Diego","Chicago",
                    "Denver", "Las Vegas","DC",
                    "Miami", "Los Angeles", "San Francisco"), lty = 1:10, cex = 0.5)


plot(Housing_return,  xlab = "Date", ylab = "Index (1987=100)")
legend("right", c("New York", "Boston", "San Diego","Chicago",
                    "Denver", "Las Vegas","DC",
                    "Miami","Los Angeles","San Francisco"), 
       fill=c("blue","red","green","black","sky blue","purple","yellow",
              "white", "black","red"
                                                                   
                    ) )


ggplot(Housing_return, aes( x=))

tail(Housing_return)





Wednesday, May 12, 2021

U.S. Consumer Price Index (CPI) Analysis as of 04-2021

 



















library(Quandl)
library(ggplot2)
library(tseries);library(timeseries);library(xts);library(forecast)
library (quantmod)
library(psych)
library(plotly) #install.package(plotly)

#Food and Beverages (CPIFABSL)
#Housing (CPIHOSNS)
#Apparel (CPIAPPSL)
#Transportation (CPITRNSL)
#Medical Care (CPIMEDSL)
#Recreation (CPIRECSL)
#Education and Communication (CPIEDUSL)
# Other Goods and Services (CPIOGSSL)
#Commodities (CUSR0000SAC)
# Services (CUSR0000SAS)

start <- as.Date("1990-01-01")

getSymbols(c('CPIFABSL','CPIHOSNS','CPIAPPSL','CPITRNSL','CPIMEDSL','CPIRECSL',
             
             'CPIEDUSL','CPIOGSSL','CUSR0000SAC','CUSR0000SAS',"CPIAUCSL","CPILFESL"), from=start, src='FRED')

CPI<-merge (CPIFABSL,CPIHOSNS,CPIAPPSL,CPITRNSL,CPIMEDSL,CPIRECSL,
             
           CPIEDUSL,CPIOGSSL,CUSR0000SAC,CUSR0000SAS,CPIAUCSL,CPILFESL)

Diff_CPI <- (CPI/lag(CPI)-1)*100  
Diff_CPI[1,] <- 0


Diff_CPIAUCSL=Delt(CPIAUCSL,k=12)*100
Diff_CPIFESL=Delt(CPILFESL,k=12)*100

Diff_CPIFABSL=Delt(CPI$CPIFABSL,k=12)*100
Diff_CPIHOSNS=Delt(CPI$CPIHOSNS,k=12)*100
Diff_CPIAPPSL=Delt(CPI$CPIAPPSL,k=12)*100
Diff_CPITRNSL=Delt(CPI$CPITRNSL,k=12)*100
Diff_CPIMEDSL=Delt(CPI$CPIMEDSL,k=12)*100
Diff_CPIRECSL=Delt(CPI$CPIRECSL,k=12)*100
Diff_CPIEDUSL=Delt(CPI$CPIEDUSL,k=12)*100
Diff_CPIOGSSL=Delt(CPI$CPIOGSSL,k=12)*100
Diff_CUSR0000SAC=Delt(CPI$CUSR0000SAC,k=12)*100
Diff_CUSR0000SAS=Delt(CPI$CUSR0000SAS,k=12)*100

Diff_12<-merge(Diff_CPIFABSL, Diff_CPIHOSNS, Diff_CPIAPPSL, Diff_CPITRNSL, 
               Diff_CPIMEDSL, Diff_CPIRECSL, Diff_CPIEDUSL, Diff_CPIOGSSL,
               Diff_CUSR0000SAC, Diff_CUSR0000SAS)


Diff_12=window(Diff_12,start=as.Date("2001-01-01"), end=as.Date("2020-12-31"))

cor.distance <- cor(Diff_12)
corrplot::corrplot(cor.distance)

plot(Diff_CPIAPPSL)

plot(Diff_12)



plot(Diff_CPIAUCSL, main='Changes from previous year -CPI for All',las=2, subset='2000-01-01/')

plot(Diff_CPIFESL, main='Changes from previous year - Core CPI',las=2,subset='2000-01-01/')


plot(Diff_CPIFABSL, main='Changes from previous year -Food and Beverage',las=2, subset='2000-01-01/')

plot(Diff_CPIHOSNS, main='Changes from previous year -Housing',las=2,subset='2000-01-01/')


plot(Diff_CPIAPPSL, main='Changes from previous year -APPAREL', las=2,subset='2000-01-01/')

plot(Diff_CPITRNSL, main='Changes from previous year -Transportation',las=2,subset='2000-01-01/')


plot(Diff_CPIMEDSL, main='Changes from previous year -Medical Care',las=2,subset='2000-01-01/')


plot(Diff_CPIRECSL, main='Changes from previous year -Recreation',las=2,subset='2000-01-01/')


plot(Diff_CPIEDUSL, main='Changes from previous year -Education and Communication',las=2,subset='2000-01-01/')


plot(Diff_CPIOGSSL, main='Changes from previous year -Other Goods and Services',las=2,subset='2000-01-01/')

plot(Diff_CUSR0000SAC, main='Changes from previous year -Commodities',las=2,subset='2000-01-01/')


plot(Diff_CUSR0000SAS, main='Changes from previous year -Services',las=2,subset='2000-01-01/')