Translate

Tuesday, February 21, 2023

Allocation of Investments by Country as of 02/2023

library(quantmod) library(PortfolioAnalytics) # Define the portfolio symbols symbols <- c( "EWJ", #iShares Japan "EWG", #iShares Germany "EWU", #iShares UK "EWC", #iShares Canada "EWY", #iShares South Korea "EWA", #iShares Australia "EWH", #iShares Hong Kong "EWS", #iShares Singapore "EWT", #iShares Taiwan "EWZ", #iShares Brazil "EFA", #iShares EAFE "ERUS", #iShares Russia "EZA", #iShares South Africa "EPP", #iShares Pacific Ex Japan "FXI" ,#iShare China Large-Cap "SPY" #US ) # Fetch the closing prices #prices <- data.frame(lapply(symbols, function(sym) Ad(getSymbols(sym, auto.assign = FALSE)))) prices <- data.frame(Date = as.Date("1970-01-01")) for (sym in symbols) { sym_data <- data.frame(Date = index(getSymbols(sym, auto.assign = FALSE)), Ad(getSymbols(sym, auto.assign = FALSE))) colnames(sym_data)[-1] <- sym prices <- merge(prices, sym_data, by = "Date", all = TRUE) } # Define the portfolio portfolio <- portfolio.spec(assets = symbols) # Add constraints portfolio <- add.constraint(portfolio, type = "weight_sum", min_sum = 0.95, max_sum = 1.05) portfolio <- add.constraint(portfolio, type = "box", min = 0.01, max = 0.5) # Define the optimization objective portfolio <- add.objective(portfolio, type = "risk", name = "var", arguments = list(p = 0.95)) library(xts) # Set the date column as row names rownames(prices) <- prices$Date prices$Date <- NULL # Convert to a time series object prices_xts <- xts(prices, order.by = as.Date(rownames(prices))) names(prices_xts) <-c("Japan","Germany","UK","Canada","South Korea","Australia","Hong Kong", "Singapore","Taiwan","Brazil","EAFE","Russia","South Africa","Pacific Ex Japan", "China","U.S.") tail(prices_xts) # Run the portfolio optimization opt_portfolio <- optimize.portfolio(prices_xts, portfolio) # Optimize the portfolio #opt_portfolio <- optimize.portfolio(prices, portfolio) # Display the optimized weights print(opt_portfolio$weights) opt_portfolio #Create a vector of values for the pie chart values <- c(opt_portfolio$weights) #Create a vector of labels for the pie chart labels <- c("Japan", "Germany", "UK", "Canada", "South Korea", "Australia", "Hong Kong", "Singapore", "Taiwan", "Brazil", "EAFE", "Russia", "South Africa", "Pacific Ex Japan", "China", "U.S.") #Create the pie chart pie(values, labels = labels) #Add a title to the pie chart title("Allocation of Investments by Country") percent <- paste0(round(values * 100, 1), "%") legend("topleft", legend = paste(labels, percent, sep = " - "), cex = 0.8, fill = rainbow(length(values)))

Saturday, February 18, 2023

CPI by Expenditure Category, January 2023

As of January 2023, the Consumer Price Index (CPI) is a measure of inflation that is used to track changes in the price of a basket of goods and services purchased by households in the United States. It provides valuable insight into the overall cost of living for Americans and is an important economic indicator used by policymakers and businesses alike. According to the latest data released by the Bureau of Labor Statistics, the CPI increased by 0.5% in January 2023, which is the same increase as in December 2022. Over the past 12 months, the CPI has risen by 6.2%, which is the largest year-over-year increase in over 40 years. This substantial increase is primarily due to rising prices for energy, food, and shelter, which account for a significant portion of the CPI basket. In January 2023, energy prices rose by 2.4%, which was driven by increases in the cost of both gasoline and natural gas. Food prices also increased by 0.6%, with notable increases in the prices of beef and poultry products. Additionally, the cost of shelter increased by 0.3%, with rising prices for both rent and home ownership. Despite the overall increase in the CPI, there were some categories of goods and services that experienced price declines in January 2023. For example, the cost of clothing and transportation services both decreased by 0.2%, while the price of medical care services remained unchanged. Overall, the January 2023 CPI data suggests that inflation continues to be a significant concern for American households and businesses. While the Federal Reserve has implemented measures to address inflation, including raising interest rates, it remains to be seen whether these actions will be enough to curb rising prices in the long term.
Source: BLS R code to generate the graph df<- data.frame((MON_CPI["2023-01-01"])) df df1 <- data.frame( category = c("Food & Beverage", "Housing", "Apparel", "Transportation", "Medical Care", "Recreation", "Education", "Other Goods & Services", "Commodities", "Services", "All items", "Core items"), value = c(df$Food...Beverage,df$Housing,df$Apparel, df$Transporation, df$Medical.Care, df$Recreation, df$Education, df$Other.Goods...Services, df$Commodities,df$Services,df$All.items,df$Core.items), date = as.Date("2023-01-01") ) df1 library(ggplot2) ggplot(df1, aes(x = category, y = value, fill = category)) + geom_col() + labs(x = NULL, y = "Change (%)", fill = NULL, title = "Consumer Price Index by Expenditure Category, January 2023") + theme_minimal()