mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 14:43:08 +02:00
39 lines
1.1 KiB
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) |