WUT_Computer_Science/Programming/WDWR/projekt/WDWR.r

39 lines
1.1 KiB
R

library(tmvtnorm)
# t-Stutdet parameters
Mu = c(9, 8, 7, 6)
Sigma = matrix(c(16, -2, -1, -3,
-2, 9, -4, -1,
-1, -4, 4, 1,
-3, -1, 1, 1),
nrow=4, ncol=4)
lower_bound = 5
upper_bound = 12
# Generate scenarios
data <- rtmvt(n=100, mean=Mu, sigma=Sigma, df=5,
lower=rep(lower_bound, 4), upper=rep(upper_bound, 4))
write.table(format(data, digits=15, drop0trailing=F),
"data100.txt", quote=F, sep="\t", eol="\n\t",
col.names = F, row.names = T)
mean <- colMeans(data)
E <- function(idx, Mu, Sigma, v, alfa, beta) {
mu = Mu[idx]
sigma = Sigma[idx, idx]
a = (alfa - mu)/sigma
b = (beta - mu)/sigma
nom = gamma((v-1)/2) *
((v+a^2)^(-1*(v-1)/2) -
(v+b^2)^(-1*(v-1)/2)) *
v^(v/2)
den = 2 * (pt(b, v) - pt(a, v)) * gamma(v/2) * gamma(1/2)
return (mu + sigma*(nom/den))
}
ER1 <- E(1, Mu, Sigma, 5, 5, 12)
ER2 <- E(2, Mu, Sigma, 5, 5, 12)
ER3 <- E(3, Mu, Sigma, 5, 5, 12)
ER4 <- E(4, Mu, Sigma, 5, 5, 12)
ER <- c(ER1, ER2, ER3, ER4)
write.table(ER, "ER.txt", sep="\t", col.names=F, row.names=F)