A variação calculada no código exibe cada matriz como se fosse uma amostra de 100 valores separados. Como o array e sua versão permutada contêm os mesmos 100 valores, eles têm a mesma variação.
A maneira correta de simular a situação na cotação requer repetição. Gere uma amostra de valores. Calcule sua média. (Isso desempenha o papel de "estimativa de erro de teste".) Repita várias vezes. Colete todos esses meios e veja quanto eles variam. Essa é a "variação" referida na cotação.
Podemos antecipar o que acontecerá:
Quando os elementos de cada amostra nesse processo são correlacionados positivamente, quando um valor é alto, os outros tendem a ser altos também. A média deles será alta. Quando um valor é baixo, os outros também tendem a ser baixos. A média deles será baixa. Assim, os meios tendem a ser altos ou baixos.
Quando os elementos de cada amostra não são correlacionados, a quantidade pela qual alguns elementos são altos é geralmente equilibrada (ou "cancelada") por outros elementos baixos. No geral, a média tende a estar muito próxima da média da população da qual as amostras são coletadas - e raramente muito maior ou muito menor que isso.
R
facilita colocar isso em ação. O principal truque é gerar amostras correlacionadas. Uma maneira é usar variáveis normais padrão: combinações lineares delas podem ser usadas para induzir qualquer quantidade de correlação que você desejar.
Aqui, por exemplo, estão os resultados desse experimento repetido quando ele foi realizado 5.000 vezes usando amostras de tamanho . Em um caso, as amostras foram obtidas de uma distribuição normal padrão. No outro, foram obtidos de maneira semelhante - ambos com média zero e variação unitária -, mas a distribuição da qual foram extraídos apresentava um coeficiente de correlação de .n = 290 %
A linha superior mostra as distribuições de frequência de todas as 5.000 médias. A linha inferior mostra os gráficos de dispersão gerados por todos os 5.000 pares de dados. Pela diferença de espalhamento dos histogramas, fica claro que o conjunto de médias das amostras não correlacionadas é menos disperso do que o conjunto de médias das amostras correlacionadas, exemplificando o argumento "cancelando".
A diferença na quantidade de spread se torna mais acentuada com maior correlação e com tamanhos de amostra maiores. O R
código permite que você especifique como rho
e n
, respectivamente, para que você possa experimentar. Como o código da pergunta, seu objetivo é produzir matrizes x
(a partir de amostras não correlacionadas) e y
(a partir de amostras correlacionadas) para comparação posterior.
n <- 2
rho <- 0.9
n.sim <- 5e3
#
# Create a data structure for making correlated variables.
#
Sigma <- outer(1:n, 1:n, function(i,j) rho^abs(i-j))
S <- svd(Sigma)
Q <- S$v %*% diag(sqrt(S$d))
#
# Generate two sets of sample means, one uncorrelated (x) and the other correlated (y).
#
Z <- matrix(rnorm(n*n.sim), nrow=n)
x <- colMeans(Z)
y <- colMeans(Q %*% Z)
#
# Display the histograms of both.
#
par(mfrow=c(2,2))
h.y <- hist(y, breaks=50, plot=FALSE)
h.x <- hist(x, breaks=h.y$breaks, plot=FALSE)
ylim <- c(0, max(h.x$density))
hist(x, main="Uncorrelated", freq=FALSE, breaks=h.y$breaks, ylim=ylim)
hist(y, main="Correlated", freq=FALSE, breaks=h.y$breaks, ylim=ylim)
#
# Show scatterplots of the first two elements of the samples.
#
plot(t(Z)[, 1:2], pch=19, col="#00000010", xlab="x.1", ylab="x.2", asp=1)
plot(t(Q%*%Z)[, 1:2], pch=19, col="#00000010", xlab="x.1", ylab="x.2", asp=1)
Agora, quando você calcular as variações das matrizes de médias x
e y
, seus valores serão diferentes:
> var(x)
[1] 0.5035174
> var(y)
[1] 0.9590535
A teoria nos diz que essas variações estarão próximas de e . Eles diferem dos valores teóricos apenas porque apenas 5.000 repetições foram feitas. Com mais repetições, as variações de e tenderão mais perto de seus valores teóricos.( 1 + 1 ) /22= 0,5( 1 + 2 × 0,9 + 1 ) /22= 0,95x
y
sort(sample(100))
perceber que é idêntico1:100
e, portanto, suas variações são idênticas. Não posso ajudá-lo com o primeiro pedaço do seu post - eu pensaria que quantidades correlacionadas têm menor variação (por exemplo, correlações intra-cluster), mas não sei o que é LOOCV.