Esta nota técnica apresenta uma forma de calcular a integral de uma distribuição normal \((\mu,\sigma)\) por meio do método geométrico. Define-se uma função que possibilita a obtenção da integral definida entre dois pontos \(a\) e \(b\) quaisquer de uma distribuição normal, com esperança matemática \(\mu\) e desvio padrão \(\sigma\), usando o método geométrico por soma de retângulos.
A distribuição normal pode ser representada pela seguinte função de densidade de probabilidade:
\[f(x)=\frac{1}{\sigma\sqrt{2\pi}}e^{\frac{-1}{2}\left(\frac{x-\mu}{\sigma}\right)^{2}}\]
Uma aproximação da integral da distribuição normal poderia ser obtida dividindo a área embaixo da distribuição normal em 8 retângulos de mesmo tamanho, como na Fig 1.
Fig 1: Aproximação da integral pelo método geométrico
O tamanho da base de cada triângulo \((\Delta)\) pode ser obtido pela seguinte expressão:
\[\Delta= \frac {\left(b-a \right)}{8}\]
Para encontrar a área de cada retângulo, basta multiplicar a base pela altura em cada um deles que, por sua vez, será o valor assumido pela função no ponto $x_{i}
\[Área = \Delta f(x_{0})+\Delta f(x_{1})+\Delta f(x_{2})+\Delta f(x_{3})+\Delta f(x_{4})+\Delta f(x_{5})+\Delta f(x_{6})+\Delta f(x_{7})\]
Quanto maior o número de retângulos que dividirmos o segmento \(\overline{AB}\), mais próxima será a área dos retângulos e a integral da distribuição. Sendo assim, generalizando os resultados encontrados anteriormente para \(n\):
\[Área =\Delta\sum_{i=0}^{n}{f(x_{i})}\] \[Área =\Delta\sum_{i=0}^{n}{f(a+i\Delta)}\]
\[Área =\Delta\sum_{i=0}^{n}{f\left ( a+\frac{i(b-a)}{n}\right)}\]
Para introduzir esta fórmula no R, basta criar uma sequência com extremos a e b, em que \(n\) é o comprimento da sequência.A partir de então, basta criar uma função que calcule a área de cada retângulo conforme os parâmetros introduzidos e some a área de todos eles:
areadistnorm<- function (a,b,mu,sigma,n){
x<-seq(a,b,length.out=n)
z<-(x-mu)/sigma
area<-(b-a)/n*(1/(sqrt(2*pi)*sigma))*exp(-0.5*(z^2))
int<-sum(area)
int
}
Para testar a validade da proposição, comparemos o resultado retornado pela função criada e pelo comando do R para calcular a área abaixo da função de densidade de probabilidade da distribuição normal. O primeiro teste será realizado para 3 combinações de valores:
a) \(a=35\), \(b=75\), \(\mu=100\), \(\sigma=30\), \(n=3500\)
Para a função estimada:
areadistnorm(35,72,100,30,4000)
## [1] 0.1601994
Pelo comando do R:
pnorm(72,100,30)-pnorm(35,100,30)
## [1] 0.1601938
Percebe-se que dividindo a figura em 5000 retângulos, tem-se uma precisão de 5 casas decimais.
O mesmo procedimento pode ser repetido para outros valores:
b) \(a=-\infty\), \(b=10\), \(\mu=100\), \(\sigma=30\), \(n=100000000\)
Substituímos, aqui, o \(-\infty\) por um número grande \((-10^{6})\):
Para a função estimada:
areadistnorm(-1000000,10,100,30,100000000)
## [1] 0.001350637
Pelo comando do R:
pnorm(10,100,30)-pnorm(-10000000,100,30)
## [1] 0.001349898
c) \(a=200\), \(b=\infty\), \(\mu=100\), \(\sigma=30\), \(n=100000000\)
Substituímos, aqui, o \(\infty\) por um número grande \((10^{6})\):
Para a função estimada:
areadistnorm(200,1000000,100,30,100000000)
## [1] 0.0004293174
Pelo comando do R:
pnorm(1000000,100,30)-pnorm(200,100,30)
## [1] 0.0004290603
Conclui-se, assim, que a função estimada apresenta uma boa aproximação do valor real, calculado pelo R.