Function Sphere(n As Long) As Double
Dim x As Double
Dim y As Double
Dim z As Double
Dim count As Long
count = 0
For i = 1 To n
x = Rnd
y = Rnd
z = Rnd
If (x - 0.5) ^ 2 + (y - 0.5) ^ 2 + (z - 0.5) ^ 2 < 0.25 Then
count = count + 1
End If
Next
Sphere = count / n
End Function
Read the data
library(lubridate)
path <- "C:/Users/AAA/Desktop/Assignments/prep programming/Assignment 3/Raw_data"
FCAU <- read.csv(paste(path, "FCAU.csv", sep = "/"))
GM <- read.csv(paste(path, "GM.csv", sep = "/"))
RDS_A <- read.csv(paste(path, "RDS-A.csv", sep = "/"))
TSLA <- read.csv(paste(path, "TSLA.csv", sep = "/"))
XOM <- read.csv(paste(path, "XOM.csv", sep = "/"))
Split into 12 subsets
total_data <- FCAU[,c(1,6)]
total_data <- cbind(total_data, GM$Adj.Close, RDS_A$Adj.Close, TSLA$Adj.Close, XOM$Adj.Close)
com_names <- c("FCAU", "GM", "RDS", "TSLA", "XOM")
names(total_data) <- c("Date", com_names)
Jan <- total_data[month(total_data$Date) == 1, ]
head(Jan)
## Date FCAU GM RDS TSLA XOM
## 127 2019-01-02 12.35509 32.95626 57.60813 310.12 68.14369
## 128 2019-01-03 12.16540 31.59451 57.48193 300.36 67.09744
## 129 2019-01-04 12.92413 32.65257 58.78282 317.69 69.57130
## 130 2019-01-07 13.08794 33.66163 58.86048 334.96 69.93309
## 131 2019-01-08 13.22589 34.10248 58.50128 335.35 70.44155
## 132 2019-01-09 13.59663 34.46496 59.18086 338.53 70.81312
Feb <- total_data[month(total_data$Date) == 2, ]
Mar <- total_data[month(total_data$Date) == 3, ]
Apr <- total_data[month(total_data$Date) == 4, ]
May <- total_data[month(total_data$Date) == 5, ]
Jun <- total_data[month(total_data$Date) == 6, ]
Jul <- total_data[month(total_data$Date) == 7, ]
head(Jul)
## Date FCAU GM RDS TSLA XOM
## 1 2018-07-02 16.45908 37.88215 64.47190 335.07 78.33560
## 2 2018-07-03 16.29526 37.37386 64.93375 310.86 78.79549
## 3 2018-07-05 17.26953 37.85338 65.10342 309.16 78.86256
## 4 2018-07-06 17.24367 37.55607 65.47102 308.90 78.88173
## 5 2018-07-09 17.44197 38.12191 66.74349 318.51 79.42785
## 6 2018-07-10 17.46783 38.44798 67.19592 322.47 80.15602
Aug <- total_data[month(total_data$Date) == 8, ]
Sep <- total_data[month(total_data$Date) == 9, ]
Oct <- total_data[month(total_data$Date) == 10, ]
Nov <- total_data[month(total_data$Date) == 11, ]
Dec <- total_data[month(total_data$Date) == 12, ]
head(Dec)
## Date FCAU GM RDS TSLA XOM
## 108 2018-12-03 14.88128 37.27655 60.03517 358.49 79.41787
## 109 2018-12-04 14.21740 35.40545 58.91873 359.70 77.66759
## 110 2018-12-06 13.79493 34.97439 57.46251 363.06 76.65065
## 111 2018-12-07 13.22589 33.98492 57.57901 357.97 75.91730
## 112 2018-12-10 13.21727 33.72041 57.13244 365.15 74.84171
## 113 2018-12-11 13.30349 33.98492 56.78294 366.76 74.97860
Split into two sets
First_half <- total_data[month(total_data$Date) == 1|2|3|4|5|6, ]
Second_half <- total_data[month(total_data$Date) == 7|8|9|10|11|12, ]
head(Second_half)
## Date FCAU GM RDS TSLA XOM
## 1 2018-07-02 16.45908 37.88215 64.47190 335.07 78.33560
## 2 2018-07-03 16.29526 37.37386 64.93375 310.86 78.79549
## 3 2018-07-05 17.26953 37.85338 65.10342 309.16 78.86256
## 4 2018-07-06 17.24367 37.55607 65.47102 308.90 78.88173
## 5 2018-07-09 17.44197 38.12191 66.74349 318.51 79.42785
## 6 2018-07-10 17.46783 38.44798 67.19592 322.47 80.15602
Volitality
vol_year <- unlist(lapply(total_data[-1], sd, 2))
vol_year
## FCAU GM RDS TSLA XOM
## 1.100399 2.306655 2.701459 45.162245 3.818263
vol_first_half <- unlist(lapply(First_half[-1], sd, 2))
vol_first_half
## FCAU GM RDS TSLA XOM
## 1.100399 2.306655 2.701459 45.162245 3.818263
vol_second_half <- unlist(lapply(Second_half[-1], sd, 2))
vol_second_half
## FCAU GM RDS TSLA XOM
## 1.100399 2.306655 2.701459 45.162245 3.818263
covariance matrix
cov_matrix <- cov(total_data[-1])
cov_matrix
## FCAU GM RDS TSLA XOM
## FCAU 1.21087784 0.03651932 1.305807 12.15425 1.492896
## GM 0.03651932 5.32065580 1.576524 -11.84393 1.090209
## RDS 1.30580691 1.57652412 7.297882 -57.99151 7.100428
## TSLA 12.15424793 -11.84392780 -57.991508 2039.62839 -16.065246
## XOM 1.49289592 1.09020858 7.100428 -16.06525 14.579136
set.seed(123)
birthday <- sample(c(1:365), 1000, replace = T)
days_in_each_month <- c(0,31,28,31,30,31,30,31,31,30,31,30,31)
cum_days <- cumsum(days_in_each_month)
Prob_month <- numeric(12)
for (i in 1:12){
Prob_month[i] <- length(birthday[birthday >= cum_days[i] & birthday <= cum_days[i+1]])/1000
}
names(Prob_month) <- month.name
Prob_month
## January February March April May June July
## 0.088 0.082 0.091 0.087 0.079 0.098 0.092
## August September October November December
## 0.092 0.076 0.082 0.084 0.077