Я создал два фрейма данных (3 столбца по 6000 наблюдений в каждом) со случайно сгенерированными переменными, используя цикл for в R. Впоследствии результаты должны быть воспроизводимы. Я пытался реализовать команду set.seed, но пока безуспешно. Любая идея, как решить эту проблему? Любая помощь будет высоко ценится.
Это код, он очень длинный и, вероятно, запутанный, так как я мало работаю с R.
# -------------------------------------
# Initialize Dataframes
# -------------------------------------
price_1 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
demandChartist_1 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
demandFundamentalist_1 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
percentFT_Wf_1 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
percentCT_Wc_1 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
fitnessTradingFundamentalist_Af_1 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
fitnessTradingChartist_Ac_1 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
#Market2
price_2 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
demandChartist_2 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
demandFundamentalist_2 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
percentFT_Wf_2 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
percentCT_Wc_2 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
fitnessTradingFundamentalist_Af_2 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
fitnessTradingChartist_Ac_2 <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
percentNoTrading <- as.data.frame(matrix(ncol = 1, nrow =6002, 0L))
T <- as.data.frame(1:6002)
# -------------------------------------
# Set-Up Start-Values
# -------------------------------------
# set the first 4 values equal to 0, 1 whatever otherwise we can't compute the previous periods
price_1[1:4, 1] <- 0
price_2[1:4, 1] <- 0
fitnessTradingChartist_Ac_1[1:3, 1] <- 0
fitnessTradingFundamentalist_Af_1[1:3, 1] <- 0
fitnessTradingChartist_Ac_2[1:3, 1] <- 0
fitnessTradingFundamentalist_Af_2[1:3,1] <- 0
a <- 1
b <- 0.05
c <- 0.05
d <- 0.975
e <- 300
F1 <- 0
F2 <- 0
# -------------------------------------
# Value Calculation via looping through it (forward Euler)
# -------------------------------------
for(j in 1:1)
{
for (i in 4:6002) {
demandChartist_1[i-2,j] =
b * (price_1[i-2,j] - price_1[i-3,j]) +
rnorm(1, mean=0, sd=0.05)
# [i-2] weil fitness tradingFundamentalist der jetzigen Periode Demand der Periode t-2 also 2 erfordert.
demandChartist_2[i-2,j] =
b * (price_2[i-2,j] - price_2[i-3,j]) +
rnorm(1, mean=0, sd=0.05)
print("1 OK")
demandFundamentalist_1[i-2,j] =
c * (F1 - price_1[i-2,j]) + rnorm(1, mean=0, sd=0.01)
demandFundamentalist_2[i-2,j] =
c * (F2 - price_2[i-2,j]) + rnorm(1, mean=0, sd=0.01)
fitnessTradingChartist_Ac_1[i,j] =
(exp(price_1[i,j]) - exp(price_1[i-1,j])) *
demandChartist_1[i-2,j] +
d * fitnessTradingChartist_Ac_1[i-1,j]
fitnessTradingChartist_Ac_2[i,j] =
(exp(price_2[i,j]) - exp(price_2[i-1,j])) *
demandChartist_2[i-2,j] +
d * fitnessTradingChartist_Ac_2[i-1,j]
fitnessTradingFundamentalist_Af_1[i,j] =
(exp(price_1[i,j]) - exp(price_1[i-1,j])) *
demandFundamentalist_1[i-2,j] +
d * fitnessTradingChartist_Ac_1[i-1,j]
fitnessTradingFundamentalist_Af_2[i,j] =
(exp(price_2[i,j]) - exp(price_2[i-1,j])) *
demandFundamentalist_2[i-2,j] +
d * fitnessTradingChartist_Ac_2[i-1,j]
percentCT_Wc_1[i,j] =
exp(e * fitnessTradingChartist_Ac_1[i,j]) /
(
exp(e * fitnessTradingChartist_Ac_1[i,j]) +
exp(e * fitnessTradingFundamentalist_Af_1[i,j]) +
exp(e * fitnessTradingChartist_Ac_2[i,j]) +
exp(e * fitnessTradingFundamentalist_Af_2[i,j]) +
exp(0)
)
percentCT_Wc_2[i,j] =
exp(e * fitnessTradingChartist_Ac_2[i,j]) /
(
exp(e * fitnessTradingChartist_Ac_1[i,j]) +
exp(e * fitnessTradingFundamentalist_Af_1[i,j]) +
exp(e * fitnessTradingChartist_Ac_2[i,j]) +
exp(e * fitnessTradingFundamentalist_Af_2[i,j]) +
exp(0)
)
percentFT_Wf_1[i,j] =
exp(e * fitnessTradingFundamentalist_Af_1[i,j]) /
(
exp(e * fitnessTradingChartist_Ac_1[i,j]) +
exp(e * fitnessTradingFundamentalist_Af_1[i,j]) +
exp(e * fitnessTradingChartist_Ac_2[i,j]) +
exp(e * fitnessTradingFundamentalist_Af_2[i,j]) +
exp(0)
)
percentFT_Wf_2[i,j] =
exp(e * fitnessTradingFundamentalist_Af_2[i,j]) /
(
exp(e * fitnessTradingChartist_Ac_1[i,j]) +
exp(e * fitnessTradingFundamentalist_Af_1[i,j]) +
exp(e * fitnessTradingChartist_Ac_2[i,j]) +
exp(e * fitnessTradingFundamentalist_Af_2[i,j]) +
exp(0)
)
percentNoTrading[i,j] =
1 - percentCT_Wc_1[i,j] - percentFT_Wf_1[i,j] -
percentCT_Wc_2[i,j] - percentFT_Wf_2[i,j]
price_1[i,j] =
price_1[i-1,j] +
a *
(
(percentCT_Wc_1[i-1,j] * demandChartist_1[i-1,j] +
percentFT_Wf_1[i-1,j] * demandFundamentalist_1[i-1,j]
)
) +
rnorm(1, mean=0, sd=0.01)
price_2[i,j] =
price_2[i-1,j] +
a *
(
(percentCT_Wc_2[i-1,j] * demandChartist_2[i-1,j] +
percentFT_Wf_2[i-1,j] * demandFundamentalist_2[i-1,j]
)
) +
rnorm(1, mean=0, sd=0.01)
}
}
# -------------------------------------
# CLEANING|REAARANGING|RENAMING DATA-FRAMES
# -------------------------------------
# Final Dataframe for Market 1
main_dfM1 <- data.frame(T, price_1,
demandChartist_1,
demandFundamentalist_1,
fitnessTradingChartist_Ac_1,
fitnessTradingFundamentalist_Af_1,
percentCT_Wc_1,
percentFT_Wf_1,
percentNoTrading
)
colnames(main_dfM1)[1:9] <- c("Time","Price_1", "demandChartist_1",
"demandFundamentalist_1",
"fitnessTradingChartist_Ac_1",
"fitnessTradingFundamentalist_Af_1",
"percentCT_Wc_1,", "percentFT_Wf_1",
"percentNoTrading")
# Calculate Returns from Prices in Market 1
main_dfM1$Return_1 <- lead(main_dfM1$Price_1, 1) - main_dfM1$Price_1
# Rearrange Columns in Dataframe
main_dfM1 <- main_dfM1[ ,c(1:2,10, 3:9)]
# Final Dataframe for Market 2
main_dfM2 <- data.frame(T, price_2,
demandChartist_2,
demandFundamentalist_2,
fitnessTradingChartist_Ac_2,
fitnessTradingFundamentalist_Af_2,
percentCT_Wc_2,
percentFT_Wf_2,
percentNoTrading
)
colnames(main_dfM2)[1:9] <- c("Time","Price_2", "demandChartist_2",
"demandFundamentalist_2",
"fitnessTradingChartist_Ac_2",
"fitnessTradingFundamentalist_Af_2",
"percentCT_Wc_2,", "percentFT_Wf_2",
"percentNoTrading")
# Calculate Returns from Prices in Market 2
main_dfM2$Return_2 <- lead(main_dfM2$Price_2, 1) - main_dfM2$Price_2
# Rearrange Columns in Dataframe
main_dfM2 <- main_dfM2[ ,c(1:2,10, 3:9)]
Ваше здоровье