#Усреднение значения ошибки errMO_mean <- rep(0, N)
for (i in 1:rep_count) errMO_mean <- errMO_mean + errMO_list[[i]] errMO_mean <- errMO_mean / rep_count
lines(log2(1:N), log2(errMO_mean), col="red", lwd=2)
##########################################################
# Теор. квадрат ошибки teor_sqr_err <- c()
for (i in 1:N) teor_sqr_err <- append(teor_sqr_err, sko_teor ^ 2 / i)
#График усредненного и теоретического вадрата выборки plot(log2(1:N), log2(errMO_mean), type="l", col="red", lwd=2,
main = "Зависимости квадрата ошибки от объема выборки", xlab = "Объем выборки",ylab = "Квадрат ошиб-ки")
lines(log2(1:N), log2(teor_sqr_err), col="green", lwd=2)
###########################################
#Вычисляем дисперсию (2й центральный момент) D(X) = M(x^2)-M(x)^2. disp_list <- list()
for (i in 1:rep_count) { disp <- c()
for (j in 1:N) {
disp <- append(disp, sum(x_list[[i]][c(1:j)]^2/j)-sum(x_list[[i]][c(1:j)]/j)^2)
}
disp_list[[i]] <- disp
}
#Вычисляем Квадрат ошибки.
err_disp_list <- list() for (i in 1:rep_count) {
err_disp <- c() for (j in 1:N) {
err_disp <- append(err_disp, (disp_list[[i]][j] - disp_teor) ^ 2)
}
err_disp_list[[i]] <- err_disp
}
# Усредняем квадрат ошибки по всем выборкам. err_disp_mean <- rep(0, N)
for (i in 1:rep_count) {
11
err_disp_mean <- err_disp_mean + err_disp_list[[i]]
}
err_disp_mean <- err_disp_mean / rep_count
#Вычисление теоретического квадрата ошибки (1.8*D^2 - D/N) teor_err <- c()
for (i in 1:N) {
teor_err <- append(teor_err, (1.8 * disp_teor^2 - disp_teor) / i)
}
#Вычисление границ (D +- sqrt(1.8*Di**2 - Di) /sqrt(N))) upperBoundDisp <- c() # Верхняя граница lowerBoundDisp <- c() # Нижняя граница
for (i in 1:N) { upperBoundDisp <-
append(upperBoundDisp, disp_teor + (((sqrt(1.8 * disp_teor^2 - disp_teor))) / sqrt(i)))
lowerBoundDisp <-
append(lowerBoundDisp, disp_teor - (((sqrt(1.8 * disp_teor^2 - disp_teor))) / sqrt(i)))
}
#ПОСТРОЕНИЕ_ГРАФИКОB
# График зависимости оценки D от N. plot(
1:N,
1:N,
cex.main = 0.8, col = "white",
main = "Зависимость дисперсии от объема выборки", xlab = "Объем выборки",
ylab = "Дисперсия", ylim = c(0, 2500)
) |
|
|
for (i in 1:rep_count) { |
|
|
lines(disp_list[[i]], col='blue') |
# Линия оценки МО от N |
|
} |
|
|
lines(upperBoundDisp, lwd=2, col = "green") |
# Линия верхней границы |
|
lines(lowerBoundDisp, lwd=2, col = "green") |
# Линия нижней границы |
|
abline(a = disp_teor, b = 0, lwd=2, col = "red") |
# Линия теоретического МО |
##############################################################
# График зависимости квадрата ошибки от объема выборки plot(
12
0:(50 * N),
0:(50 * N), log = "xy",
cex.main = 0.8, col = "white",
main = "Зависимости квадрата ошибки от объема выборки", xlab = "Объем выборки",
ylab = "Квадрат ошибки", xlim = c(1, 1000),
ylim = c(1, 1000000),
)
for (i in 1:rep_count) {
lines(err_disp_list[[i]], col="blue") #Линия квадрата ошибки выборки
}
##########################################################
# График сравнения Усредненного и Теоретического квадрата ошибки от объема вы-борки
plot(
0:(50 * N),
0:(50 * N), log = "xy",
cex.main = 0.8, col = "white",
main = "Зависимости квадрата ошибки от объема выборки",
xlab = "Объем выборки", |
|
ylab = "Квадрат ошибки", |
|
xlim = c(1, 1000), |
|
ylim = c(1, 1000000), |
|
) |
|
lines((err_disp_mean), col = "red", lwd = 2) |
#Линия усредненного квадрата |
ошибки |
|
lines((teor_err), col = "green", lwd = 1) |
#Линия теоретического квадрата |
ошибки |
|
legend(
"topright",
legend = c("Усредненный квадрат ошибки", "Теоретический квадрат ошибки"),
lwd = c(1, 1),
col = c("red", "green"), cex = 0.8
)
13