Arte gráfica: o autor

Análise de sequências aleatórias

Sobre a média e correlação

1 Introdução

Observações aleatórias são comuns na física. A corrente elétrica em circuitos apresenta flutuações irregulares em torno da corrente média (ruído). É algo intrínseco, relacionado com a agitação térmica dos elétrons de condução (Johnson 1928) (Nyquist 1928). É comum também em processos industriais. O diâmetro de um fio de costura ou a espessura de um arame apresentam flutuações irregulares relacionadas com os materiais utilizados na fabricação (algodão e latão, por exemplo).

Observações podem ser previsíveis, mas não perfeitamente previsíveis. Podem manifestar aleatoriedade. Einstein introduzio conceitos para descrever as flutuações irregulares. Em 1914, “algo completamente novo e original” (Yaglom 1987).

Como foi dito, a aleatoriedade é comum na física e em outras áreas do conhecimento: aeronáutica, ruído em sinal de radar; geociência, ruído em dados atmosféricos; astronomia, ruídos em dados estelares; e assim por diante. O tratamento de dados aleatórios, então, é método científico essencial, sem o qual muitos sistemas não poderiam ser analisados.

Neste artigo, vamos analisar sequências aleatórias através da média e correlação.

2 Média e correlação

A considerar o caso discreto de sequências aleatórias, com o objetivo de facilitar a programação computacional de fórmulas (no meu caso, utilizar a linguagem R), a corrente de tempo é construída por este conjunto discreto:

\[\begin{equation} \Big\{ t _ 1, t _ 2, t _ 3, \dots, t _ N \Big\} \tag{2.1} \end{equation}\]

Um exemplo com \(N=11\):

\[\begin{equation} \Big\{ t _ 1, t _ 2, t _ 3, t _ 4, t _ 5, t _ 6, t _ 7, t _ 8, t _ 9, t _ {10}, t _ {11} \Big\} \tag{2.2} \end{equation}\]

É obvio, o tempo não é a sequência aleatória (é o parâmetro). A atribuir números, a sequência acima pode ser:

\[\begin{equation} \small \mathscr{t} \to \Big\{ 0,\ 0.1,\ 0.2,\ 0.3,\ 0.4,\ 0.5,\ 0.6,\ 0.7,\ 0.8,\ 0.9,\ 1.0 \Big\} \tag{2.3} \end{equation}\]

Observe que \(t_1=0\) (ponto de partida da sequência temporal).

Uma sequência aleatória que dependa do tempo, especificada no tempo \(t_i\), terá representação: \(\mathscr{v}(t_i)\).

Um comando útil para gerar números aleatórios é runif(11, min=0, max=1):

\[\begin{equation} \small \mathscr{v} \to \Big\{ 0.85,\ 0.17,\ 0.51,\ 0.96,\ 0.41,\ 0.23,\ 0.37,\ 0.14,\ 0.67,\ 0.38,\ 0.72 \Big\} \tag{2.4} \end{equation}\]

Nesse exemplo, a pensar no tempo \(t_3\), obtém-se: \(\mathscr{v}(0.2) = 0.51\).

A média \((m)\) é algo bem simples de se fazer: (soma dos valores) / (total de valores). A escrever uma fórmula, a média de \(\mathscr{v}\) é:

\[\begin{equation} m = \frac{1}{N} \sum _ {i=1} ^{N} \mathscr{v}(t _ i) . \tag{2.5} \end{equation}\]

A função de correlação é algo bem diferente da média, porém, da mesma forma que a média analisa uma sequência aleatória, a correlação também analisa aleatoriedades (as duas análises se complementam). A fórmula da função de correlação \((B)\), para o caso de sequência aleatória discreta, é publicada no portal MathWorld: “o recurso matemático mais extenso da web, fornecido como serviço gratuito para as comunidades de matemática e internet do mundo como parte do compromisso com a educação e alcance educacional da Wolfram Research” – tradução –, conteúdo Autocorrelation:

\[\begin{equation} \mathcal{M} (\tau) = \frac{1}{N} \sum _ {i=1} ^{N} \mathscr{v}(t _ i + \tau) \mathscr{v}(t _ i) . \tag{2.6} \end{equation}\]

\(\tau\) assume todos os valores da sequência temporal, quer dizer, há uma fórmula personalizada para cada valor de \(\tau\). No caso de \(\tau=t_{1}\), a fórmula se reduz à soma dos quadrados dos valores:

\[\begin{equation} \mathcal{M} (t _ {1}) = \frac{1}{N} \sum _ {i=1} ^{N} \mathscr{v}(t _ i + t _ {1}) \mathscr{v}(t _ i) , \tag{2.7} \end{equation}\]

o que implica em \((t_{1}=0)\):

\[\begin{equation} \mathcal{M} (0) = \frac{1}{N} \sum _ {i=1} ^{N} \Big( \mathscr{v}(t _ i) \Big)^2. \tag{2.8} \end{equation}\]

As outras fórmulas são:

\[\begin{equation} \tau = t _ {2} \to \mathcal{M} (t _ {2}) = \frac{1}{N} \sum _ {i=1} ^{N} \mathscr{v}(t _ i + t _ {2}) \mathscr{v}(t _ i) . \tag{2.9} \end{equation}\]

\[\begin{equation} \tau = t _ {3} \to \mathcal{M} (t _ {3}) = \frac{1}{N} \sum _ {i=1} ^{N} \mathscr{v}(t _ i + t _ {3}) \mathscr{v}(t _ i) . \tag{2.10} \end{equation}\]

E assim por diante.

A Fig. 2.1 mostra uma sequência aleatória (criada pelo R), a média dos valores e a função de correlação. A função de correlação que aparece no gráfico foi normalizada:

\[\begin{equation} \frac{ \mathcal{M} (\tau) }{ \mathcal{M} (0) } . \tag{2.11} \end{equation}\]

Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: RUÍDO.

Figura 2.1: Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: RUÍDO.

A interpetrar a função de correlação, vamos expandir alguns termos da somatória \(\tau=t_{3}=0.2\) \(\big(\) \(\frac{1}{N}\) foi omitido \(\big)\):

\[\begin{equation} \begin{aligned} \mathcal{M} (t _ {3}) &= \mathscr{v}(t _ 1 + t _ {3}) \mathscr{v}(t _ 1) \\ &+ \mathscr{v}(t _ 2 + t _ {3}) \mathscr{v}(t _ 2) \\ &+ \mathscr{v}(t _ 3 + t _ {3}) \mathscr{v}(t _ 3) \\ &+ \mathscr{v}(t _ 4 + t _ {3}) \mathscr{v}(t _ 4) \\ &+ \mathscr{v}(t _ 5 + t _ {3}) \mathscr{v}(t _ 5) \\ &+ \mathscr{v}(t _ 6 + t _ {3}) \mathscr{v}(t _ 6) \\ &+ \cdots \end{aligned} \tag{2.12} \end{equation}\]

O que implica em:

\[\begin{equation} \begin{aligned} \mathcal{M} (t _ {3}) &= \mathscr{v}(0.0 + t _ {3}) \mathscr{v}(0.0) \\ &+ \mathscr{v}(0.1 + t _ {3}) \mathscr{v}(0.1) \\ &+ \mathscr{v}(0.2 + t _ {3}) \mathscr{v}(0.2) \\ &+ \mathscr{v}(0.3 + t _ {3}) \mathscr{v}(0.3) \\ &+ \mathscr{v}(0.4 + t _ {3}) \mathscr{v}(0.4) \\ &+ \mathscr{v}(0.5 + t _ {3}) \mathscr{v}(0.5) \\ &+ \cdots \end{aligned} \tag{2.13} \end{equation}\]

Ou:

\[\begin{equation} \begin{aligned} \mathcal{M} (0.2) &= \mathscr{v}(0.0 + 0.2) \mathscr{v}(0.0) \\ &+ \mathscr{v}(0.1 + 0.2) \mathscr{v}(0.1) \\ &+ \mathscr{v}(0.2 + 0.2) \mathscr{v}(0.2) \\ &+ \mathscr{v}(0.3 + 0.2) \mathscr{v}(0.3) \\ &+ \mathscr{v}(0.4 + 0.2) \mathscr{v}(0.4) \\ &+ \mathscr{v}(0.5 + 0.2) \mathscr{v}(0.5) \\ &+ \cdots \end{aligned} \tag{2.14} \end{equation}\]

Em fim:

\[\begin{equation} \begin{aligned} \mathcal{M} (0.2) &= \mathscr{v}(0.2) \mathscr{v}(0.0) \\ &+ \mathscr{v}(0.3) \mathscr{v}(0.1) \\ &+ \mathscr{v}(0.4) \mathscr{v}(0.2) \\ &+ \mathscr{v}(0.5) \mathscr{v}(0.3) \\ &+ \mathscr{v}(0.6) \mathscr{v}(0.4) \\ &+ \mathscr{v}(0.7) \mathscr{v}(0.5) \\ &+ \cdots \end{aligned} \tag{2.15} \end{equation}\]

A selecionar \(\tau=0.2\), há pares de números aleatórios separados, na corrente do tempo, por – exatamente – \(0.2\) (segundos): subtraía os argumentos da primeira coluna pelos argumentos da segunda coluna. Se um par resulta em zero, significa que não participa da “média” (não há correlação entre distâncias \(\tau\)). Se resulta em um valor baixo, significa que pouco influencia a somatória (há pouca correlação). Porém, se o resultado é alto, significa que sua participação é efetiva (há muita correlação entre distâncias \(\tau\)). A somar todos os termos, a função de correlação filtra os pares, “joga fora” os que não estão correlacionados e reserva os que tem correlação efetiva entre distâncias \(\tau\).

Na Fig. 2.1, observa-se que \(\mathcal{M}(0.2) > \mathcal{M}(0.8)\). Isso significa que o deslocamento \(\tau=0.2\) está mais correlacionado do que o deslocamento \(\tau=0.8\), em outras palavras, a comparar com o sinal original, o sinal deslocado \(\tau=0.2\) é mais semelhante do original do que o deslocado \(\tau=0.8\).

Portanto, a analisar uma grandeza que apresenta flutuações aleatórias, por exemplo, a corrente elétrica em um circuito, ou o diâmetro de um fio, é importante saber o valor médio da grandeza, a corrente média que passa pelo circuito, o diâmetro médio do fio de camisa, porém, isso não basta. É tão importante quanto, saber a correlação entre pontos dessa grandeza.

A corrente deslocada \(\tau=t_{\star}\) está mais ou menos correlacionada do que a deslocada \(\tau=t_{\star\star}\)?

O diâmetro deslocado \(\tau=x_{\star}\) está mais ou menos correlacionado do que o deslocado \(\tau=x_{\star\star}\) (agora \(\tau\) em milímetros, por exemplo)?

Se entre pontos não há correlação \((\mathcal{M} \to 0)\), o caráter fractal das flutuações está se desfazendo, por outro lado, se a correlação é alta \((\mathcal{M} \to 1)\), o caráter fractal das flutuações está se repetindo.

3 Outros sinais de entrada

A Fig. 3.1 apresenta uma sequência que contém flutuações puramente harmônicas: \(\cos(2\pi t/\mathtt{T})\), onde \(\mathtt{T}\) é o período das oscilações \((\mathtt{T}=0.1)\).

Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: COSSENO.

Figura 3.1: Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: COSSENO.

Ao ver o resultado 3.1, achei algo suspeito:

Se o sinal de entrada é um cosseno, por que a função de correlação está atenuada?

A função cosseno corre de menos infinito até mais infinito. Se o código de programação não truncasse “as pontas” da corrente do tempo, a função de correlação também seria um cosseno (não atenuado). Porém, o tempo é truncado em \(t_N=1.0\). Isso causa um efeito atenuador que pode ser reproduzido se fizermos a função de correlação de um sinal degrau – veja a figura abaixo ( 3.2 ). Um degrau tem função de correlação igual a uma reta decrescente \((1-t)\). Isso mostra que o cosseno truncado é composto por 2 sinais: um cosseno multiplicado por um degrau. E isso mostra tembém que a função de correlação do sinal (cosseno x degrau) é um cosseno atenuado conforma aparece na figura (agora insuspeita) 3.1.

Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: DEGRAU.

Figura 3.2: Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: DEGRAU.

A Fig. 3.3 apresenta uma sequência contendo flutuações harmônicas e atenuadas: \(\cos(2\pi t/\mathtt{T}) \exp[-2\pi t/(\alpha\mathtt{T})]\), sendo \((\alpha\mathtt{T})\) o “local” onde a atenuação “mata” as oscilações \((\alpha=9 , \mathtt{T}=0.1)\). É nítido que a função de correlação tem a mesma forma do sinal de entrada.

Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: COSSENO AMORTECIDO.

Figura 3.3: Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: COSSENO AMORTECIDO.

Combinação com ruído: A Fig. 3.4 mostra o ruído aleatório da figura 2.1 – criado pelo R – atenuado como na figura anterior ( 3.3 ).

Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: RUÍDO AMORTECIDO.

Figura 3.4: Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: RUÍDO AMORTECIDO.

Outra combinação com ruído: A Fig. 3.5 mostra o ruído aleatório da figura 2.1 – criado pelo R – modulado por oscilação harmônica como na figura 3.1.

Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: COSSENO RUIDOSO.

Figura 3.5: Dados aleatórios sendo analisados pela média (linha tracejada) e função de correlação (normalizada). Sinal de entrada: COSSENO RUIDOSO.

4 Espectro da função de correlação

A função de correlação, no tempo específico \(\tau_{1}\), pode ser expandida em uma base de ondas planas (complexas):

\[\begin{equation} \mathcal{M}(\tau _ {1}) = \sum _ {i}^{N _ {\lambda}} \mathscr{e}^{i\lambda _ {i} \tau _ {1}} \mathcal{S}(\lambda _ {i}) . \tag{4.1} \end{equation}\]

Os coeficientes da expansão são determinados de acordo com a transformada discreta de Fourier:

\[\begin{equation} \mathcal{S}(\lambda _ {1}) = \frac{1}{2\pi} \sum _ {i}^{N _ {\tau}} \mathscr{e}^{-i\lambda _ {1} \tau _ {i}} \mathcal{M}(\tau _ {i}) . \tag{4.2} \end{equation}\]

Há uma fórmula personalizada para cada \(\lambda\):

\[\begin{equation} \mathcal{S}(\lambda _ {2}) = \frac{1}{2\pi} \sum _ {i}^{N _ {\tau}} \mathscr{e}^{-i\lambda _ {2} \tau _ {i}} \mathcal{M}(\tau _ {i}) . \tag{4.3} \end{equation}\]

\[\begin{equation} \mathcal{S}(\lambda _ {3}) = \frac{1}{2\pi} \sum _ {i}^{N _ {\tau}} \mathscr{e}^{-i\lambda _ {3} \tau _ {i}} \mathcal{M}(\tau _ {i}) . \tag{4.4} \end{equation}\]

E assim por diante.

O conjunto de \(\lambda\)’s forma o espectro da função de correlação:

\[\begin{equation} \Big\{ \lambda _ {1},\ \lambda _ {2},\ \lambda _ {3}, \dots ,\ \lambda _ {N _ {\lambda}} \Big\} . \tag{4.5} \end{equation}\]

A numerar as fórmulas em um código de programação, é conveniente trabalhar com ondas planas reais (cossenos). Então, as equações acima são assim digitadas:

\[\begin{equation} \mathcal{M}(\tau _ { }) = \sum _ {i}^{N _ {\lambda}} \cos(\lambda _ {i} \tau _ { }) \mathcal{S}(\lambda _ {i}) . \tag{4.6} \end{equation}\]

\[\begin{equation} \mathcal{S}(\lambda _ { }) = \frac{1}{2\pi} \sum _ {i}^{N _ {\tau}} \cos(\lambda _ { } \tau _ {i}) \mathcal{M}(\tau _ {i}) . \tag{4.7} \end{equation}\]

A determinar:

\[\begin{equation} \Big\{ \mathcal{S}(\lambda _ {1}),\ \mathcal{S}(\lambda _ {2}),\ \mathcal{S}(\lambda _ {3}), \dots ,\ \mathcal{S}(\lambda _ {N _ {\lambda}}) \Big\} , \tag{4.8} \end{equation}\]

obtém-se a função espectral – e (4.8) contra (4.5), o gráfico.

Vamos trabalhar o caso apresentado da figura 2.1. A Fig. 4.1 mostra a função espectral quando o sinal de entrada é um RUÍDO. O sinal de entrada foi subtraído de sua média \((\mathscr{v} - m)\): para flutuar em torno do zero. A função espectral que aparece no gráfico foi normalizada:

\[\begin{equation} \frac{ \mathcal{S} (\lambda) }{ \mathcal{S} (0) } . \tag{4.9} \end{equation}\]

Não se engane! \(\lambda\) é frequência angular. As vezes faltam “letras” para tantas fórmulas. É comum reservar \(\omega\) para as ondas eletromagnéticas. Então, aqui, as ondas da expansão (4.1) são ondas planas de frequência angular \(\lambda\) e frequência ordinária \(\lambda/2\pi\). Existem 2 “tipos” de tempo: o tempo \(t\) – que aparece na figura como tempo ordiário, e o tempo \(\tau\) – que aparece como tempo deslocado.

De cima para baixo: Sinal de entrada (ruído deslocado por sua média), função de correlação (normalizada) e função espectral (normalizada).

Figura 4.1: De cima para baixo: Sinal de entrada (ruído deslocado por sua média), função de correlação (normalizada) e função espectral (normalizada).

A função de espectral da figura 4.1 se concentra em vários “pontos” de frequência. Isso quer dizer que a função de correlação (4.6) é gerada por vários termos. Vamos trabalhar um caso que se concentra em apenas 1 “ponto”: as flutuações harmônicas e atenuadas da figura 3.3. A Fig. 4.2 apresenta a função espectral quando o sinal de entrada é um COSSENO AMORTECIDO.

De cima para baixo: Sinal de entrada (cosseno amortecido), função de correlação (normalizada) e função espectral (normalizada).

Figura 4.2: De cima para baixo: Sinal de entrada (cosseno amortecido), função de correlação (normalizada) e função espectral (normalizada).

Agora, a função espectral se concentra ao redor de \(\lambda_{\star}=2\pi \times 10\) Hz. Isso quer dizer que a função de correlação (4.6) é gerada principalmente pelo termo:

\[\begin{equation} \mathcal{M}(\tau _ { }) = \cos(\lambda _ {\star} \tau _ { }) \mathcal{S}(\lambda _ {\star}) . \tag{4.10} \end{equation}\]

Nota- se que o resultado da função espectral \((\mathtt{f}=10)\) está de acordo com o sinal de entrada \((\mathtt{T}=0.1)\) – figura 3.3.

5 Código fonte em R

#----------------------------------------------SINAL DE ENTRADA
t <- seq(0, 1, 0.005)                          # corrente de tempo
L <- seq(1, length(t), 1)                      # sequência de pontos do tempo
v <- runif(length(t), min = -0.25, max = 1.00) # ruído aleatório
#------------------DETERMINAÇÃO DA MÉDIA
m <- 0             # média na entrada do looping = 0
for (i in L) {
    m <- m + v[i]
}
m <- m / length(t) # divide a saída do looping por N
#--------------------------------DETERMINAÇÃO DA FUNÇÃO DE CORRELAÇÃO
zeros <- replicate(length(t), 0) # vetor com zeros
v0 <- c(v, zeros)                # combina o vetor ruído com o vetor com zeros
B <- replicate(length(t), 0)     # função de correlação na entrada do lopping = 0
for (tal in L) {
    for (i in L) {
        B[tal] <- B[tal] + v0[i + tal] * v0[i]
 }
}
B <- B / length(t)               # divide a saída do looping por N
B <- B / B[1]                    # normalização
#--------------------------------------DETERMINAÇÃO DA FUNÇÃO DE ESPECTRAL
lambda <- seq(0 , 40*2*pi , 0.005)     # corrente de frequência angular
Llambda <- seq(1 , length(lambda) , 1) # sequência de pontos da frequência angular
S <- replicate(length(lambda), 0)      # função espectral na entrada do lopping = 0
for (i in Llambda) {
    for (tal in L) {
    S[i] = S[i] + cos( lambda[i] * t[tal] ) * B[tal]
 }
}
S <- S / (2*pi)                        # normalização de Fourier

6 Conclusão

Conclui-se que sequências aleatórias são caracterizadas por uma constante, média da sequência – (2.5), e por uma função que depende do tempo deslocado, função de correlação – (2.6). Ademais, a função de correlação pode ser espandida em base de ondas planas e os coeficientes da expansão geram o espectro da função de correlação – (4.6) e (4.7).

Referências

Weisstein, Eric W. “Autocorrelation.” From MathWorld – A Wolfram Web Resource. https://mathworld.wolfram.com/Autocorrelation.html.

Weisstein, Eric W. “Discrete Fourier Transform.” From MathWorld – A Wolfram Web Resource. https://mathworld.wolfram.com/DiscreteFourierTransform.html.

Johnson, J B. 1928. Thermal Agitation of Electricity in Conductors. Physical Review, Volume 32, Page 97.
Nyquist, H. 1928. Thermal Agitation of Electric Charge in Conductors. Physical Review, Volume 32, Page 110.
Yaglom, A M. 1987. Einstein’s 1914 Paper on the Theory of Irregularly Fluctuating Series of Observations. IEEE ASSP Magazine, Volume 4, Issue 4, Pages 7-11.
Cássio Sanguini Sergio
Físico

Meus interesses de pesquisa incluem aglomerados e semicondutores.

Relacionados