#obviousness of reits? #get NAREIT data #I like NAREIT since I get back to 1971 #much easier though to get Wilshire REIT from FRED #also it is daily instead of monthly #getSymbols("WILLREITIND",src="FRED") will do this require(gdata) reitURL <- "http://returns.reit.com/returns/MonthlyHistoricalReturns.xls" reitExcel <- read.xls(reitURL,sheet="Index Data",pattern="All REITs",stringsAsFactors=FALSE) #clean up dates so we can use xts functionality later datetoformat <- reitExcel[,1] datetoformat <- paste(substr(datetoformat,1,3),"-01-",substr(datetoformat,5,6),sep="") datetoformat <- as.Date(datetoformat,format="%b-%d-%y") reitExcel[,1] <- datetoformat #######now get the returns and clean up slightly############ require(quantmod) require(xtsExtra) #shift colnames over 1 colnames(reitExcel) <- colnames(reitExcel)[c(1,1:(NCOL(reitExcel)-1))] #get return columns reitData <- reitExcel[,c(3,24)] #name columns colnames(reitData) <- c("AllREITs","EquityREITs") reitData <- reitData[3:NROW(reitData),] #erase commas col2cvt <- 1:NCOL(reitData) reitData[,col2cvt] <- lapply(reitData[,col2cvt],function(x){as.numeric(gsub(",", "", x))}) #create xts reitData <- as.xts(reitData,order.by=reitExcel[3:NROW(reitExcel),1]) #add the sp500 getSymbols("SP500",src="FRED") SP500 <- to.monthly(SP500)[,4] #get 1st of month to align when we merge index(SP500) <- as.Date(index(SP500)) #merge REIT and S&p reitSp500 <- na.omit(merge(reitData,SP500)) reitSp500 <- ROC(reitSp500,n=1,type="discrete") #make first return 0 instead of NA reitSp500[1,] <- 0 ##################make some charts######################### require(PerformanceAnalytics) layout(matrix(c(1,2),nrow=1)) chart.RiskReturnScatter(reitSp500["2000::",], col=c("steelblue4","steelblue2","gray50"), main="REITS and the S&P 500 Since 2000", xlim = c(0,0.35)) chart.RiskReturnScatter(reitSp500["1984::1999",], col=c("steelblue4","steelblue2","gray50"), main="REITS and the S&P 500 1984-1999", xlim = c(0,0.25)) charts.PerformanceSummary(reitSp500["2000::",], colorset =c("steelblue4","steelblue2","gray50"), main="REITS and the S&P 500 Since 2000") charts.PerformanceSummary(reitSp500["1984::1999",], colorset =c("steelblue4","steelblue2","gray50"), main="REITS and the S&P 500 1984-1999")