Esta nota técnica tem o objetivo de calcular a integral de uma distribuição normal (m,??) utilizando para isso um método geométrico por soma de retângulos (por aproximação). A distribuição normal é uma importante distribuição da estatística e possui grande utilidade para a estatística inferencial. É muito útil devido ao teorema central do limite, que pode ser aplicado a ela, onde tendendo ao infinito variáveis independentes convergem para a normal. A função de densidade de probabilidade da normal pode ser expressa por:
\[\frac{1}{\sqrt{(2\pi )^\sigma }}e^{-\frac{(x-\mu)^{2}}{2\sigma^{2}} }\]
Iniciamos o processo criando uma função no R especificando seu comportamento.
cnorm<-function (x,m,dp){
(1/(sqrt(2*pi)^dp))*exp(-(x-m)^2/(2*dp)^2)
}
O próximo passo é testar nossa função recém criada com a função normal já existente no R.
cnorm(5,10,2)
## [1] 0.03336069
dnorm(5,10,2)
## [1] 0.00876415
(DEU ERRO)
Definir um delta, que será a base de cada retângulo utilizado para o cálculo.
delta<-(10-5)/100
Criar um vetor que está multiplicando a base dos retângulos (assumida como delta)
Vrect<-0;99
## [1] 99
E outro vetor com valores do x inicial de cada retângulo.
Vecx<- 5+Vrect*delta
Agora devemos achar o F(x) de cada um dos retângulos formados abaixo da distribuição entre o ponto selecionado (5) e a média (10), esta F(x) será equivalente à altura de cada retângulo.
Vecy<-cnorm(Vecx,10,2)
Para finalizar multiplicamos por delta e somamos, criando assim um vetor pra todas as áreas.
sum (Vecy*delta)
## [1] 0.001668034
Para verificar se está correto utilizamos a pnorm novamente:
pnorm(10,10,2)-pnorm(5,10,2)
## [1] 0.4937903
(…)
intnorm<-function(x0,x1,m,dp,n){
delta<-(x1-x0)/n
Vectr<-0:(n-1)
Vectx<-x0+Vectr*delta
Vecty<-cnorm(Vectx,m,dp)
sum (Vecty*delta)
}
intnorm(5,10,10,2,1000)
## [1] 0.5203761
intnorm(5,10,10,2,10000)
## [1] 0.5206592
intnorm(5,10,10,2,100000)
## [1] 0.5206875
intnorm(5,10,10,2,1000000)
## [1] 0.5206903
dnorm(5,10,2)
## [1] 0.00876415
(não está dando certo, vou reformular)