\[ S^2=\frac{1}{n-1}{\sum_{i=1}^{n}(X_i-\bar{X})^2}=\frac{1}{2n(n-1)}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}(X_i-X_j)^2. \]
Dada uma amostra aleatória \(X_1,X_2,\cdots,X_n\) de uma população \(N(\mu,\sigma^2)\), temos que:
\[ Var(S^2)=\frac{3\sigma^4}{n}- \frac{\sigma^4(n-3)}{n(n-1)} \]
## Variancia da Variancia Amostral Teorica
Var.S2<-function(mu,sigma){
3*sigma^4/n - (sigma^4/n)*( (n-3)/(n-1) )
}
#===============================================================#
#===== Implementacao: Variancia da Variancia Amostral ==========#
#===============================================================#
## Variancia Amostral (1o Modo)
var.amostral1<-function(X){
n<-length(X)
x.bar<-mean(X)
(1/(n-1))*sum((X-x.bar)^2)
}
## Variancia Amostral (2o Modo)
var.amostral2<-function(X){
dif.square<-NULL
n<-length(X)
for (i in 1:n){
for (j in 1:n){
dif.square<-c(dif.square,(X[i]-X[j])^2)
}
}
(1/(2*n*(n-1)))*sum(dif.square)
}
## Variancia Amostral (3o Modo)
var.amostral3<-function(X){
n<-length(X) ; Y<-X
(1/(2*n*(n-1)))*sum(sapply(X,\(X)(sum( (Y - X)^2 ))))
}
X<-rnorm(100,2,3)
## Resultados
setNames(c(var.amostral1(X),var.amostral2(X), var.amostral3(X), var(X)),
c("var.am1", "var.am2","var.am3"," var.am.Rbase"))
## var.am1 var.am2 var.am3 var.am.Rbase
## 9.65702 9.65702 9.65702 9.65702
n<-100 ; N<-1e4 ; mu<-2 ; sigma<-3
vet.S2.sim<-NULL
for (i in 1:N){
X<-rnorm(n,mu,sigma)
vet.S2.sim[i]<-var.amostral3(X)
}
setNames(c(var(vet.S2.sim),Var.S2(2,3)),
c("Var(S^2). Simulada "," Var(S^2). Teorica"))
## Var(S^2). Simulada Var(S^2). Teorica
## 1.625561 1.636364