My objective is to simplify and clarify economics, making it accessible to everyone. It is important to remember that the opinions expressed in my writing are solely my own and should not be considered as financial advice. Any potential losses incurred from acting upon the information provided in my writing are the responsibility of the individual, and I cannot be held liable for them.
Translate
Sunday, December 12, 2021
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/')
Subscribe to:
Posts (Atom)