74

Álgebra linear aplicada à ciência de dados

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Álgebra linear aplicada à ciência de dados
Page 2: Álgebra linear aplicada à ciência de dados
Page 3: Álgebra linear aplicada à ciência de dados

INTRODUÇÃO Bem-vindos ao curso de Álgebra Linear Aplicada à Ciência de

Dados. Este curso possui uma carga horária de 15 horas e tem como objetivo fornecer uma base sólida acerca dos conteúdos de álgebra linear que tipicamente são utilizados na ciência de dados. Temos como objetivo tanto apresentar a teoria como a prática e, neste sentido, iremos vamos utilizar o software estatístico R (R CORE TEAM, 2021) para a parte

prática do curso. Caso você não tenha familiaridade com o R,

recomendamos que faça primeiramente o curso “Introdução ao R aplicado em ciência de dados” oferecido pela FGV. Como material de apoio, recomendamos o livro de Strang (2019).

Existem vários materiais excelentes na internet que auxiliam bastante a aprendizagem do conteúdo. Como exemplo, temos a playlist sobre álgebra linear do fantástico canal 3Blue1Brown, no YouTube.1 Além disso, as comunidades a seguir também são úteis:

Mathematics Stack Exchange – discussão de temas sobre matemática2 e

Stack Overflow – discussão de temas relacionados à programação.3

Quando você tem uma dúvida acerca de um conteúdo relacionado

à álgebra linear, é extremamente provável que outra pessoa já tenha passado por isso e perguntado sobre o assunto no Mathematics Stack Exchange. Dessa forma, vale muito a pena pesquisar lá, pois você poderá solucionar diversas dúvidas, além de encontrar discussões muito interessantes. Analogamente, caso a sua dúvida seja sobre o R, é

extremamente provável que isso já tenha sido discutido no Stack Overflow, por isso este é outro site que pode ser extremamente útil no seu estudo.

1 3Blue1Brown. Disponível em: <https://youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab>.

2 Mathematics Stack Exchange. Disponível em: <https://math.stackexchange.com>.

3 Stack Overflow. Disponível em:<https://stackoverflow.com>.

Page 4: Álgebra linear aplicada à ciência de dados

O curso está dividido em dois módulos. No módulo 1, Vetores, Matrizes e Sistemas Lineares, forneceremos definições e exemplos de vetores e matrizes; apresentaremos operações básicas de vetores, operações básicas de matrizes, operações entre vetores e matrizes; definiremos espaços colunas de matrizes; veremos como escrever sistemas lineares na forma matricial, bem como a relação entre espaços colunas de matrizes e a existência de soluções desses sistemas lineares, além de estratégias para a resolução rápida desses sistemas. Em seguida, estudaremos os principais conceitos da álgebra linear que aparecem naturalmente na ciência de dados; analisaremos a relação entre matrizes ortogonais e bases ortonormais; apresentaremos um dos principais temas da álgebra linear para ciência de dados, a saber, projeções ortogonais; conheceremos a definição, juntamente com a intuição por trás da definição, de autovalores e autovetores; exibiremos o principal teorema relacionado às matrizes simétricas, a saber, o teorema espectral; faremos um breve estudo sobre formas quadráticas; e, por fim, aplicaremos os autovalores e os autovetores para realizar a otimização destas.

No módulo 2, Aplicações da Álgebra Linear à Ciência de Dados, faremos uma junção de todos os temas vistos no módulo anterior para fornecer, sob o ponto de vista da álgebra linear, uma introdução à análise de componentes principais e à regressão linear; forneceremos exemplos no R

para ambos os temas; mostraremos como a análise de componentes principais pode ser vista como um problema de otimização de formas quadráticas; e, finalmente, veremos como a estimação de coeficientes de um modelo de regressão linear por meio do método de mínimos quadrados pode ser vista como uma projeção ortogonal.

Page 5: Álgebra linear aplicada à ciência de dados

SUMÁRIO MÓDULO I – VETORES, MATRIZES E SISTEMAS LINEARES .................................................................. 7

VETORES E MATRIZES ........................................................................................................................ 7 Escalares ..................................................................................................................................... 7 Vetores ........................................................................................................................................ 8 Matrizes ....................................................................................................................................... 8 Soma de vetores e multiplicação por escalar ........................................................................ 9 Produto escalar de vetores .................................................................................................... 10 Norma euclidiana ..................................................................................................................... 11 Interpretação geométrica do produto escalar entre vetores ............................................ 12 Desigualdades de Cauchy-Schwarz e triangular .................................................................. 12 Exemplos no R .......................................................................................................................... 13 Transposta de matrizes........................................................................................................... 14 Soma de matrizes .................................................................................................................... 14 Multiplicação do tipo 𝐴𝐴𝐴𝐴, em que 𝐴𝐴 é matriz e 𝐴𝐴 é vetor .................................................... 15 Exemplos no R .......................................................................................................................... 16 Produto de matrizes ................................................................................................................ 18 Exemplos no R .......................................................................................................................... 18 Traços de matrizes ................................................................................................................... 19 Um pouco mais sobre matrizes transpostas ....................................................................... 19

SISTEMAS LINEARES ......................................................................................................................... 20 Espaço coluna de uma matriz 𝐴𝐴 ............................................................................................. 21 Dependência e independência linear ................................................................................... 22 Núcleo de matrizes .................................................................................................................. 23 Complementos ortogonais de subespaços .......................................................................... 24 Sistemas lineares ..................................................................................................................... 25 Resolvendo equações do tipo 𝐴𝐴𝐴𝐴 = 𝑏𝑏 via eliminação gaussiana ..................................... 28 Algoritmo de eliminação gaussiana ...................................................................................... 29

PROJEÇÕES ORTOGONAIS .............................................................................................................. 31 Bases ortogonais e ortonormais ........................................................................................... 31 Matrizes ortogonais ................................................................................................................. 32 Projeções ortogonais ............................................................................................................... 35 Projeções ortogonais sobre subespaços .............................................................................. 36

AUTOVALORES, AUTOVETORES E FORMAS QUADRÁTICAS ........................................................ 38 Cálculo dos autovetores ......................................................................................................... 40 Aplicações dos autovalores e dos autovetores ................................................................... 42 Exemplos no R .......................................................................................................................... 45 Estudo de formas quadráticas ............................................................................................... 46 Forma quadráticas e matrizes positivas definidas .............................................................. 47 Otimização de formas quadráticas ....................................................................................... 47

Page 6: Álgebra linear aplicada à ciência de dados

MÓDULO II – APLICAÇÕES DA ÁLGEBRA LINEAR À CIÊNCIA DE DADOS ........................................ 51

ANÁLISE DE COMPONENTES PRINCIPAIS ..................................................................................... 51 Forma quadrática dada pela matriz de covariâncias .......................................................... 51 Matriz de covariâncias ............................................................................................................. 53 Análise de componentes principais ...................................................................................... 54 Variância explicada pelos autovetores ................................................................................. 55 Componentes principais no R ................................................................................................ 56 Scree plot.................................................................................................................................... 59

REGRESSÃO LINEAR E MÉTODO DOS MÍNIMOS QUADRADOS .................................................. 61 Regressão linear na forma matricial ..................................................................................... 63 Regressões lineares e projeções ortogonais........................................................................ 64 Regressões lineares no R ........................................................................................................ 66 Coeficiente de determinação ................................................................................................. 67

Page 7: Álgebra linear aplicada à ciência de dados

O objetivo deste módulo é fornecer a base teórica de álgebra linear que iremos precisar nas

aplicações a serem vistas no Módulo II. Dessa forma, faremos uma breve apresentação das definições principais, tais como multiplicação de matrizes, subespaços vetoriais etc.

Em seguida veremos como resolver sistemas lineares e quais as suas relações com os espaços colunas de matrizes. Após o estudo dos sistemas lineares, faremos uma introdução às projeções ortogonais e veremos como elas, a um certo subespaço, podem ser vistas como “melhores aproximações”, em termos de distância euclidiana, de vetores do espaço euclidiano por elementos deste subespaço.

Também veremos o que são autovalores e autovetores, e forneceremos uma intuição geométrica destes. Por fim, definiremos as formas quadráticas e utilizaremos o estudo anterior de autovalores e autovetores para maximizar e minimizar essas formas.

Vetores e matrizes

Na álgebra linear – de dimensão finita, ou seja, o interesse deste curso – lidamos essencialmente com três tipos de objetos: escalares, vetores e matrizes. Dessa forma, para iniciarmos o nosso estudo, vamos começar fornecendo essas definições.

Escalares

De modo geral, podemos entender escalares como números. Normalmente, os escalares são números reais, porém é possível encontrar exemplos para os quais podem ser números complexos ou até mesmo números racionais. Para os nossos fins, os escalares sempre serão números reais.

MÓDULO I – VETORES, MATRIZES E SISTEMAS LINEARES

Page 8: Álgebra linear aplicada à ciência de dados

8

Vetores

Neste curso, vetores são listas, finitas, todas com a mesma quantidade de elementos, e cada elemento é um escalar. A ordem em que os elementos são escritos no vetor importa, no sentido de que, ao mudarmos a ordem de elementos distintos, mudaremos o vetor em questão. Cada elemento do vetor é chamado de coordenada – entrada ou componente – do vetor. Por fim, a dimensão do vetor é dada pela quantidade de coordenadas desse vetor. Com relação à notação, dado um vetor 𝐴𝐴 com entradas 𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑑𝑑, indicaremos 𝐴𝐴 pela notação:

𝐴𝐴 = (𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑑𝑑).

Matrizes

Matrizes são coleções de vetores. Podemos construir matrizes de duas formas equivalentes: considerando cada linha da matriz como um vetor ou considerando cada coluna da matriz como um vetor. Vamos trabalhar apenas com matrizes finitas, contendo, digamos, 𝑛𝑛 linhas e 𝑚𝑚 colunas: 𝑛𝑛 e 𝑚𝑚 são chamadas de dimensões da matriz, e dizemos que a matriz tem tamanho, também sendo comum chamar de dimensão, 𝑛𝑛 × 𝑚𝑚. Para obter um elemento de uma matriz, devemos dizer o número da linha e o número da coluna do elemento em questão. Por exemplo, suponha que temos 𝑚𝑚 características de 𝑛𝑛 indivíduos. Costuma-se organizar a matriz de tal forma que cada indivíduo seja uma linha, e cada característica seja uma coluna.

Com relação à notação, seja uma matriz 𝐴𝐴 de dimensão 𝑛𝑛 × 𝑚𝑚 cujo elemento na i-ésima linha e j-ésima coluna é 𝑎𝑎𝑖𝑖,𝑗𝑗. Denotaremos 𝐴𝐴 por

ou por

Obs.: se uma matriz possui o mesmo número de linhas e de colunas, dizemos que ela é

quadrada.

Page 9: Álgebra linear aplicada à ciência de dados

9

Obs.: note que, pela própria definição de matrizes, podemos identificar vetores como matrizes de dimensão 1 × 𝑑𝑑, nesse caso, dizemos que é um vetor coluna; ou como matrizes de dimensão 𝑑𝑑 × 1, nesse caso, dizemos que é um vetor linha.

Soma de vetores e multiplicação por escalar

Vetores possuem duas operações básicas: soma e produto por escalar. Note que estamos falando de produto de um vetor por um escalar e não simplesmente produto de vetores. Vejamos, agora, essas definições.

Primeiramente, vamos definir a soma de vetores. Podemos somar vetores de mesma dimensão. Suponha que temos dois vetores 𝐴𝐴 = (𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑑𝑑) e 𝑤𝑤 = (𝑤𝑤1,𝑤𝑤2, … ,𝑤𝑤𝑑𝑑). A soma é definida por

𝐴𝐴 + 𝑤𝑤 = (𝐴𝐴1 + 𝑤𝑤1, 𝐴𝐴2 + 𝑤𝑤2, … , 𝐴𝐴𝑑𝑑 + 𝑤𝑤𝑑𝑑). Note que, como para todo 𝑖𝑖, 𝐴𝐴𝑖𝑖 + 𝑤𝑤𝑖𝑖 = 𝑤𝑤𝑖𝑖 + 𝐴𝐴𝑖𝑖, temos 𝐴𝐴 + 𝑤𝑤 = 𝑤𝑤 + 𝐴𝐴. Ou seja, tal

como na soma de números reais, a ordem da soma não importa. Geometricamente, a soma de vetores 𝐴𝐴 e 𝑤𝑤 consiste em transladar a origem de 𝑤𝑤 ao final de

𝐴𝐴 e considerar o vetor com origem na origem de 𝐴𝐴 e final no final da translação de 𝑤𝑤. A seguir, veremos uma ilustração gráfica da soma de vetores. Considere, por exemplo, a soma

dos vetores 𝐴𝐴 = (3,1) com 𝑤𝑤 = (1,2):

Figura 1 – Soma de vetores

Na figura 1, acima, temos os vetores (3,1) e (1,2) na cor preta. A translação da origem do

vetor (1,2) para o final do vetor (3,1) está na cor vermelha. Por fim, a soma dos vetores (3,1) e (1,2), dada pelo vetor que liga a origem ao final da translação de (1,2), está na cor azul.

Page 10: Álgebra linear aplicada à ciência de dados

10

Vamos, agora, trabalhar com a outra operação, a saber, a multiplicação por um escalar, que consiste em multiplicar cada coordenada do vetor pelo escalar em questão. Dessa forma, suponha que temos um escalar 𝛼𝛼 ∈ 𝑹𝑹 e um vetor 𝐴𝐴 = (𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑑𝑑), temos

α𝐴𝐴 = (α𝐴𝐴1,α𝐴𝐴2, … ,α𝐴𝐴𝑑𝑑).

Geometricamente, a multiplicação por escalar consiste em alterar o “comprimento” do vetor,

cuja noção veremos mais adiante, sem alterar a direção pela escala dada pelo número α. Por exemplo, se α = 2, o vetor dobra de comprimento; e, se α = 1/2, o vetor tem o comprimento reduzido pela metade.

Vejamos abaixo uma ilustração da multiplicação por escalar. Por exemplo, considere 𝐴𝐴 =(1,2), 0.5 𝐴𝐴 e 2 𝐴𝐴:

Figura 2 – Produto por escalar

Na figura 2, acima, temos 𝐴𝐴 = (1,2) na cor preta, 0.5 𝐴𝐴 na cor azul e 2 𝐴𝐴 na cor vermelha. Obs.: a subtração de vetores se reduz a uma combinação das operações anteriores:

𝐴𝐴 − 𝑤𝑤 = 𝐴𝐴 + (−1)𝑤𝑤.

Produto escalar de vetores

Vamos, agora, falar de um tipo de produto entre dois vetores: o produto escalar. É importante observar que o resultado desse produto não é um vetor, e, sim, um escalar. Dados dois vetores 𝐴𝐴 =(𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑑𝑑) e 𝑤𝑤 = (𝑤𝑤1,𝑤𝑤2, … ,𝑤𝑤𝑑𝑑), o seu produto escalar – em inglês, dot product – é dado pela soma das multiplicações dos seus elementos:

Page 11: Álgebra linear aplicada à ciência de dados

11

𝐴𝐴 ⋅ 𝑤𝑤 = ∑ 𝐴𝐴𝑖𝑖𝑤𝑤𝑖𝑖𝑑𝑑𝑖𝑖=1 .

Obs.: note que, como para todo 𝑖𝑖, 𝐴𝐴𝑖𝑖𝑤𝑤𝑖𝑖 = 𝑤𝑤𝑖𝑖𝐴𝐴𝑖𝑖, segue que

𝐴𝐴 ⋅ 𝑤𝑤 = 𝑤𝑤 ⋅ 𝐴𝐴, ou seja, o produto escalar é comutativo assim como o produto de dois números reais. Obs.: o produto escalar entre dois vetores é um exemplo de produto interno, em inglês, inner

product. Dessa forma, é possível que você veja alguém se referindo ao produto escalar entre vetores como produto interno entre vetores.

Observe também que a distributividade de números reais implica a distributividade do produto escalar. Portanto 𝑢𝑢 = (𝑢𝑢1,𝑢𝑢2, … ,𝑢𝑢𝑑𝑑), 𝐴𝐴 = (𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑑𝑑) e 𝑤𝑤 = (𝑤𝑤1,𝑤𝑤2, … ,𝑤𝑤𝑑𝑑) valem

𝑢𝑢 ⋅ (𝐴𝐴 + 𝑤𝑤) = 𝑢𝑢 ⋅ 𝐴𝐴 + 𝑢𝑢 ⋅ 𝑤𝑤.

Por exemplo, considere os vetores 𝐴𝐴 = (4,1,2) e 𝑤𝑤 = (1,3,1), então:

𝐴𝐴 ⋅ 𝑤𝑤 = 4 ⋅ 1 + 1 ⋅ 3 + 2 ⋅ 1 = 9.

Norma euclidiana

Vamos utilizar o produto escalar para fornecer mais uma definição importante, a de norma de um vetor.

A norma euclidiana de um vetor 𝐴𝐴 = (𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑑𝑑) é dada pela raiz quadrada do produto escalar de 𝐴𝐴 por si mesmo:

|𝐴𝐴| = √𝐴𝐴 ⋅ 𝐴𝐴 = ��𝐴𝐴𝑖𝑖2𝑑𝑑

𝑖𝑖=1

.

Obs.: é possível utilizar o teorema de Pitágoras para mostrar que |𝐴𝐴| é o comprimento do

vetor 𝐴𝐴.

Page 12: Álgebra linear aplicada à ciência de dados

12

Interpretação geométrica do produto escalar entre vetores

É possível mostrar, utilizando a lei dos cossenos, que

𝐴𝐴 ⋅ 𝑤𝑤 = |𝐴𝐴||𝑤𝑤| cos(θ). Logo, se 𝐴𝐴 e 𝑤𝑤 forem não nulos, temos

cos(θ) =𝐴𝐴 ⋅ 𝑤𝑤

|𝐴𝐴||𝑤𝑤|.

Em resumo, dados dois vetores 𝐴𝐴 e 𝑤𝑤, o seu produto escalar é dado pelo cosseno do ângulo

entre eles, multiplicado pelo produto dos comprimentos entre 𝐴𝐴 e 𝑤𝑤. Desse modo, o produto escalar entre dois vetores 𝐴𝐴 e 𝑤𝑤 pode ser utilizado como uma medida de perpendicularidade (ou de paralelismo) entre os vetores 𝐴𝐴 e 𝑤𝑤.

Desigualdades de Cauchy-Schwarz e triangular

Uma consequência imediata, e muito importante, da interpretação geométrica do produto escalar entre vetores é a desigualdade de Cauchy-Schwarz.

Para a dedução dessa desigualdade, comece notando que, como | cos (θ)| ≤ 1, temos

� 𝑣𝑣⋅𝑤𝑤|𝑣𝑣||𝑤𝑤|

� ≤ 1 ⇒ |cos(θ)| ≤ 1.

Logo

|𝐴𝐴 ⋅ 𝑤𝑤| ≤ |𝐴𝐴||𝑤𝑤|. A desigualdade acima é a desigualdade de Cauchy-Schwarz. Com a aplicação da desigualdade de Cauchy-Schwarz, pode-se deduzir a desigualdade

triangular para norma de vetores. Mais precisamente, dados vetores 𝐴𝐴 e 𝑤𝑤, temos

|𝐴𝐴 + 𝑤𝑤| ≤ |𝐴𝐴| + |𝑤𝑤|. A desigualdade acima é conhecida como a desigualdade triangular. A motivação para o seu nome

vem da geometria plana, na qual é bem conhecido que o comprimento de qualquer lado de um triângulo não pode ser maior que a soma dos comprimentos dos demais lados. Veja a figura a seguir:

Page 13: Álgebra linear aplicada à ciência de dados

13

Figura 3 – Interpretação da desigualdade triangular

Na figura 3, acima, temos os vetores 𝑢𝑢, 𝐴𝐴 e 𝑤𝑤 = 𝑢𝑢 + 𝐴𝐴. Dessa forma, a desigualdade

triangular nos diz que o comprimento de 𝑤𝑤 é menor ou igual à soma dos comprimentos de 𝑢𝑢 e 𝐴𝐴.

Exemplos no R

Vejamos, agora, como definir vetores e matrizes no R. Em seguida, veremos como realizar as

operações acima no R.

Para criar um vetor no R, utilizamos a função c() com argumentos dados pelas componentes

do vetor. Por exemplo, vamos definir os vetores 𝐴𝐴 = (1,3,1) e 𝑤𝑤 = (3,2,1):

v = c(1,3,1) w = c(3,2,1)

Para somá-los, basta utilizar o operador +: 𝐴𝐴 + 𝑤𝑤:

v+w

Para multiplicar por escalar, basta utilizar o operador *. Por exemplo, para multiplicar 𝐴𝐴 por

2.5, fazemos 2.5 ∗ 𝐴𝐴:

2.5*v

Page 14: Álgebra linear aplicada à ciência de dados

14

Se multiplicarmos os vetores 𝐴𝐴 e 𝑤𝑤 utilizando o operador *, obtemos um novo vetor cujas componentes são a multiplicação coordenada a coordenada.

Por exemplo, no caso de 𝐴𝐴 = (1,3,1) e 𝑤𝑤 = (3,2,1), teremos 𝐴𝐴 ∗ 𝑤𝑤 = (3,6,1):

v*w

Se utilizarmos a função sum(), teremos como resultado a soma das componentes do vetor.

Portanto podemos obter o produto escalar combinando a função sum() com o operador *:

sum(v*w)

Observe que 𝐴𝐴 ⋅ 𝑤𝑤 = 1 ⋅ 3 + 3 ⋅ 2 + 1 ⋅ 1 = 3 + 6 + 1 = 10. Por fim, cara calcular a norma de um vetor, basta combinar a função sqrt() com o produto

escalar:

sqrt(sum(v^2))

Transposta de matrizes

Dada uma matriz 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑚𝑚 com entradas 𝑎𝑎𝑖𝑖,𝑗𝑗, a transposta de 𝐴𝐴, que denotamos por 𝐴𝐴⊤, é a matriz 𝑚𝑚 × 𝑛𝑛 tal que o elemento (𝑖𝑖, 𝑗𝑗) é dado por 𝑎𝑎𝑗𝑗,𝑖𝑖. É fácil ver que (𝐴𝐴⊤)⊤ = 𝐴𝐴.

Por exemplo:

A transposta de matrizes é muito útil para escrevermos certas operações matriciais de maneira

resumida. Ela também possui relação íntima com o produto escalar, conforme veremos mais adiante após definirmos produto entre matrizes e vetores.

Soma de matrizes

Dadas duas matrizes 𝐴𝐴 e 𝐵𝐵 de mesmo tamanho 𝑛𝑛 × 𝑚𝑚, digamos 𝐴𝐴 = �𝑎𝑎𝑖𝑖,𝑗𝑗� e 𝐵𝐵 = �𝑏𝑏𝑖𝑖,𝑗𝑗�, a soma 𝐴𝐴 + 𝐵𝐵 é definida por 𝐴𝐴 + 𝐵𝐵 = �𝑎𝑎𝑖𝑖,𝑗𝑗 + 𝑏𝑏𝑖𝑖,𝑗𝑗�, isto é, somamos termo a termo.

Page 15: Álgebra linear aplicada à ciência de dados

15

Observe que, para todo 𝑖𝑖 e todo 𝑗𝑗, 𝑎𝑎𝑖𝑖,𝑗𝑗 + 𝑏𝑏𝑖𝑖,𝑗𝑗 = 𝑏𝑏𝑖𝑖,𝑗𝑗 + 𝑎𝑎𝑖𝑖,𝑗𝑗, temos 𝐴𝐴 + 𝐵𝐵 = 𝐵𝐵 + 𝐴𝐴, isto é, a soma é comutativa.

Se 0 denota a matriz com todas as entradas iguais a 0, o elemento (𝑖𝑖, 𝑗𝑗) da matriz 𝐴𝐴 + 0 é 𝑎𝑎𝑖𝑖,𝑗𝑗 + 0 = 𝑎𝑎𝑖𝑖,𝑗𝑗. Ou seja, 𝐴𝐴 + 0 = 𝐴𝐴.

Dessa forma, vemos que a soma de matrizes possui muitas das propriedades que vemos nas somas de números reais.

Observe ainda que temos uma compatibilidade entre a soma e a transposição de matrizes. De fato, o elemento (𝑖𝑖, 𝑗𝑗) da matriz (𝐴𝐴 + 𝐵𝐵)⊤ é 𝑎𝑎𝑗𝑗,𝑖𝑖 + 𝑏𝑏𝑗𝑗,𝑖𝑖, que é também o elemento (𝑖𝑖, 𝑗𝑗) da matriz 𝐴𝐴⊤ + 𝐵𝐵⊤. Portanto (𝐴𝐴 + 𝐵𝐵)⊤ = 𝐴𝐴⊤ + 𝐵𝐵⊤.

Multiplicação do tipo 𝐴𝐴𝐴𝐴, em que 𝐴𝐴 é matriz e 𝐴𝐴 é vetor

Podemos escrever a multiplicação 𝐴𝐴𝐴𝐴 de duas formas: por linhas e por colunas. Vamos começar vendo a multiplicação, por linhas que é interessante do ponto de vista

computacional, porém é de difícil interpretação geométrica. Comece considerando uma matriz 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑚𝑚, cujas linhas são dadas pelos vetores

𝑟𝑟1, 𝑟𝑟2, … , 𝑟𝑟𝑛𝑛, em que cada vetor 𝑟𝑟𝑖𝑖 tem dimensão 𝑚𝑚. Seja 𝐴𝐴 um vetor 𝑚𝑚-dimensional, a multiplicação da matriz 𝐴𝐴 pelo vetor 𝐴𝐴 é o vetor coluna

dado por

, isto é, é o vetor cuja 𝑖𝑖-ésima componente é o produto escalar 𝑟𝑟𝑖𝑖 ⋅ 𝐴𝐴. A menos que dito ao contrário, quando lidarmos com representação matricial de vetores,

sempre consideraremos vetores coluna. Dessa forma, um vetor linha 𝑟𝑟 será denotado por 𝑟𝑟⊤. Por fim, em termos de produtos de matrizes,

𝑟𝑟⊤𝐴𝐴 = 𝑟𝑟 ⋅ 𝐴𝐴,

ou seja, o produto de um vetor linha por um vetor coluna é o produto interno desses vetores. Importante: a ordem no produto importa! Para tanto, observe que o produto de um vetor

coluna por um vetor linha, digamos ambos de mesma dimensão 𝑑𝑑, é uma matriz quadrada de tamanho 𝑑𝑑 × 𝑑𝑑.

Page 16: Álgebra linear aplicada à ciência de dados

16

Vejamos, agora, a multiplicação por colunas. Nesse caso, considere 𝐴𝐴 uma matriz de tamanho 𝑛𝑛 × 𝑚𝑚 cujas colunas são dadas pelos vetores 𝑐𝑐1, 𝑐𝑐2, … , 𝑐𝑐𝑚𝑚, em que cada vetor 𝑐𝑐𝑖𝑖 tem dimensão 𝑛𝑛.

Seja 𝐴𝐴 = (𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑚𝑚) um vetor 𝑚𝑚-dimensional, então a multiplicação de 𝐴𝐴 pelo vetor 𝐴𝐴 também é dada por

𝐴𝐴𝐴𝐴 = 𝐴𝐴1𝑐𝑐1 + ⋯+ 𝐴𝐴𝑚𝑚𝑐𝑐𝑚𝑚.

Agora, observe que, se 𝐴𝐴 = �𝑎𝑎𝑖𝑖,𝑗𝑗�, então 𝑟𝑟𝑖𝑖 = �𝑎𝑎𝑖𝑖,1,𝑎𝑎𝑖𝑖,2, … ,𝑎𝑎𝑖𝑖,𝑚𝑚� e 𝑐𝑐𝑖𝑖 = �𝑎𝑎1,𝑖𝑖,𝑎𝑎2,𝑖𝑖, … ,𝑎𝑎𝑛𝑛,𝑖𝑖�. Note que 𝑟𝑟𝑖𝑖 ⋅ 𝐴𝐴 = ∑ 𝑎𝑎𝑖𝑖,𝑗𝑗𝐴𝐴𝑗𝑗𝑚𝑚

𝑗𝑗=1 = 𝑎𝑎𝑖𝑖,1𝐴𝐴1 + ⋯+ 𝑎𝑎𝑖𝑖,𝑚𝑚𝐴𝐴𝑚𝑚 = (𝑐𝑐1)𝑖𝑖𝐴𝐴1 + ⋯+ (𝑐𝑐𝑚𝑚)𝑖𝑖𝐴𝐴𝑚𝑚. Com isso, podemos concluir que as duas formas de multiplicar matrizes por vetores são

equivalentes. Vamos focar, agora, a multiplicação 𝐴𝐴𝐴𝐴 por meio dos vetores formados pelas colunas da

matriz 𝐴𝐴. Temos

𝐴𝐴𝐴𝐴 = 𝐴𝐴1𝑐𝑐1 + ⋯+ 𝐴𝐴𝑚𝑚𝑐𝑐𝑚𝑚, e note que cada 𝐴𝐴𝑖𝑖 é um escalar, isto é, um número. Ou seja, 𝐴𝐴𝐴𝐴 é combinação linear dos

vetores coluna de 𝐴𝐴. Obs.: dizemos que um vetor 𝑢𝑢 é combinação linear dos vetores 𝑤𝑤1, …𝑤𝑤𝑛𝑛 se existem escalares

α1, … , α𝑛𝑛 tais que

𝑢𝑢 = α1𝑤𝑤1 + ⋯+ α𝑛𝑛𝑤𝑤𝑛𝑛.

Exemplos no R

Podemos criar matrizes no R de diversas maneiras, uma delas é utilizando a função matrix,

tendo como argumento o vetor com as entradas de interesse e o número de linhas (nrow) ou o número de colunas (ncol).

Por padrão, o R começa preenchendo as colunas. Se quisermos que o preenchimento seja por

linhas, utilizamos o argumento byrow = TRUE. Por exemplo, vamos criar a matriz:

matrix(c(1,4,2,5,3,6), nrow = 2)

Page 17: Álgebra linear aplicada à ciência de dados

17

Podemos também criá-la fazendo:

matrix(c(1,2,3,4,5,6), nrow = 2, byrow = TRUE)

Outra forma de criar matrizes é atribuindo valores ao atributo dim (de dimensão) ao vetor.

O atributo dim pode ser acessado diretamente pela função dim. Dessa forma, fazemos:

v_temp <- c(1,4,2,5,3,6) dim(v_temp) <- c(2,3)

v_temp

Podemos aplicar a função as.matrix() a um vetor para torná-lo uma matriz coluna:

as.matrix(c(1,2,3,4,5,6,7,8,9))

Por fim, duas formas muito convenientes de criar matrizes são por meio das funções cbind()

e rbind(). Com isso, cbind() forma uma matriz concatenando vetores (ou matrizes) por colunas. Analogamente, rbind() forma uma matriz concatenando vetores (ou matrizes) por linha. Portanto podemos fazer:

rbind(c(1,2,3), c(4,5,6))

e, também:

cbind(c(1,4), c(2,5), c(3,6))

Finalmente, para realizar multiplicação de matrizes por vetores, utilizamos o operador %*%:

A = rbind(c(1,2,3), c(4,5,6)) A%*%v

v

Note que 𝐴𝐴𝐴𝐴 coincide com a matriz formada pelos produtos escalares:

rbind(sum(c(1,2,3)*v), sum(c(4,5,6)*v))

Page 18: Álgebra linear aplicada à ciência de dados

18

Também coincide com a combinação linear das colunas. Para verificar isso, vamos utilizar o fato de que, para acessar o 𝑖𝑖-ésimo elemento do vetor 𝐴𝐴 no R, utiliza-se o operador []: v[i]. Daí,

v[1] * as.matrix(c(1,4)) + v[2] * as.matrix(c(2,5)) + v[3] *

as.matrix(c(3,6))

Para calcular a transposta de uma matriz 𝐴𝐴 no R, utilizamos a função t():

A = rbind(c(1,2,3), c(4,5,6))

A t(A)

Podemos utilizar o produto de matrizes para realizar o produto escalar:

vm <- as.matrix(v) wm <- as.matrix(w)

t(vm) %*% wm sum(v*w)

Produto de matrizes

Vamos, agora, definir o produto entre duas matrizes. Assim como não podemos realizar o produto entre um vetor qualquer e uma matriz qualquer, não podemos realizar o produto entres quaisquer matrizes. Mais precisamente, dadas as matrizes 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑚𝑚 e 𝐵𝐵 de tamanho 𝑝𝑝 × 𝑘𝑘. Para podermos realizar o produto 𝐴𝐴𝐵𝐵, é necessário que 𝑚𝑚 = 𝑝𝑝, ou seja, o número de colunas de 𝐴𝐴 deve ser igual ao número de linhas de 𝐵𝐵. Isto é, deve ser possível realizar o produto escalar entre os vetores linhas de 𝐴𝐴 com os vetores colunas de 𝐵𝐵.

Dessa forma, suponha que temos matrizes 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑚𝑚 e 𝐵𝐵 de tamanho 𝑚𝑚 × 𝑘𝑘. Sejam 𝑙𝑙1, 𝑙𝑙2, … , 𝑙𝑙𝑛𝑛 as linhas da matriz 𝐴𝐴 e 𝑐𝑐1, 𝑐𝑐2, … , 𝑐𝑐𝑘𝑘 as colunas da matriz 𝐵𝐵. O produto das matrizes 𝐴𝐴 e 𝐵𝐵 é a matriz 𝑃𝑃 = 𝐴𝐴𝐵𝐵 cujo elemento (𝑖𝑖, 𝑗𝑗) é dado por 𝑝𝑝𝑖𝑖,𝑗𝑗 = 𝑙𝑙𝑖𝑖 ⋅ 𝑐𝑐𝑗𝑗.

Isso quer dizer que o elemento (𝑖𝑖, 𝑗𝑗) do produto de 𝐴𝐴 e 𝐵𝐵 é o produto interno do 𝑖𝑖-ésimo vetor linha de 𝐴𝐴 com o 𝑗𝑗-ésimo vetor coluna de 𝐵𝐵.

Exemplos no R

Considere que o mesmo operador %*% que realiza a multiplicação de uma matriz por um vetor também realiza a multiplicação entre matrizes. A seguir, vemos alguns produtos de matrizes e os seus resultados, assim como os comandos no R.

Page 19: Álgebra linear aplicada à ciência de dados

19

cbind(c(2,1,0), c(1,1,0)) %*% rbind(c(1,0,1), c(0,1,1))

cbind(c(2,1,0,1), c(1,1,0,2), c(0,0,1,1)) %*% rbind(c(1,0,1,0), c(0,1,1,0), c(0,0,0,1))

Traços de matrizes

Com o objetivo de responder à segunda pergunta, vejamos o que é o traço de uma matriz e uma propriedade fundamental.

Dada uma matriz 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑛𝑛, o traço de 𝐴𝐴 é a soma dos valores diagonais:

𝑡𝑡𝑟𝑟(𝐴𝐴) = �𝑎𝑎𝑖𝑖𝑖𝑖

𝑛𝑛

𝑖𝑖=1

= 𝑎𝑎11 + 𝑎𝑎22 + ⋯+ 𝑎𝑎𝑛𝑛𝑛𝑛.

Propriedade fundamental do traço: dadas as matrizes 𝐴𝐴 e 𝐵𝐵, em que 𝐴𝐴 tem tamanho 𝑛𝑛 × 𝑚𝑚 e

𝐵𝐵 tem tamanho 𝑚𝑚 × 𝑛𝑛, temos

𝑡𝑡𝑟𝑟(𝐴𝐴𝐵𝐵) = 𝑡𝑡𝑟𝑟(𝐵𝐵𝐴𝐴). Para verificar essa afirmação, basta calcular os dois traços acima:

𝑡𝑡𝑟𝑟(𝐴𝐴𝐵𝐵) = ∑ ∑ 𝑎𝑎𝑖𝑖𝑗𝑗𝑚𝑚𝑗𝑗=1

𝑛𝑛𝑖𝑖=1 𝑏𝑏𝑗𝑗𝑖𝑖 e 𝑡𝑡𝑟𝑟(𝐵𝐵𝐴𝐴) = ∑ ∑ 𝑏𝑏𝑗𝑗𝑖𝑖𝑛𝑛

𝑖𝑖=1𝑚𝑚𝑗𝑗=1 𝑎𝑎𝑖𝑖𝑗𝑗 .

Observe que as expressões coincidem, o que mostra a propriedade fundamental do traço.

Um pouco mais sobre matrizes transpostas

Afirmação: sejam 𝐴𝐴 uma matriz 𝑛𝑛 × 𝑚𝑚 e 𝐵𝐵 uma matriz 𝑚𝑚 × 𝑝𝑝, temos (𝐴𝐴𝐵𝐵)⊤ = 𝐵𝐵⊤𝐴𝐴⊤.

Page 20: Álgebra linear aplicada à ciência de dados

20

De fato, note que o elemento (𝑖𝑖, 𝑗𝑗) de (𝐴𝐴𝐵𝐵)⊤ é ∑ 𝑎𝑎𝑗𝑗𝑘𝑘𝑏𝑏𝑘𝑘𝑖𝑖𝑚𝑚𝑘𝑘=1 . Por outro lado, o elemento

(𝑖𝑖, 𝑗𝑗) de 𝐵𝐵⊤𝐴𝐴⊤ é ∑ 𝑏𝑏𝑘𝑘𝑖𝑖𝑎𝑎𝑗𝑗𝑘𝑘𝑚𝑚𝑘𝑘=1 . Portanto vale a igualdade (𝐴𝐴𝐵𝐵)⊤ = 𝐵𝐵⊤𝐴𝐴⊤, o que conclui a

afirmação. Utilizando essa afirmação, podemos estudar o comportamento do produto de uma matriz

por um vetor por meio de produtos escalares. Afirmação: sejam 𝐴𝐴 uma matriz de tamanho 𝑛𝑛 × 𝑚𝑚, 𝐴𝐴 um vetor em 𝑹𝑹𝑚𝑚 e 𝑤𝑤 um vetor em

𝑹𝑹𝑛𝑛, temos:

(𝐴𝐴𝐴𝐴) ⋅ 𝑤𝑤 = 𝐴𝐴 ⋅ (𝐴𝐴⊤𝑤𝑤). De fato, temos:

Uma matriz 𝐴𝐴 é dita simétrica se 𝐴𝐴⊤ = 𝐴𝐴. Obs.: note que, se 𝐴𝐴 é simétrica, então 𝐴𝐴 é quadrada. Obs.: note que se 𝐴𝐴 é simétrica, 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑛𝑛, então 𝐴𝐴 “passeia” pelo produto escalar,

isto é, para todos 𝐴𝐴,𝑤𝑤 ∈ 𝑹𝑹𝑛𝑛:

(𝐴𝐴𝐴𝐴) ⋅ 𝑤𝑤 = 𝐴𝐴 ⋅ (𝐴𝐴𝑤𝑤).

Sistemas lineares

O conjunto dos vetores de dimensão 𝑛𝑛 cujas entradas são números reais é denotado por 𝑹𝑹𝑛𝑛 e é chamado de espaço euclidiano de dimensão 𝑛𝑛. Como casos particulares, temos 𝑛𝑛 = 1, e o espaço em questão pode ser identificado com uma reta; se 𝑛𝑛 = 2, o espaço pode ser identificado com um plano; e se 𝑛𝑛 = 3, temos a identificação com o espaço tridimensional.

Uma definição importante é a de subespaço. Definição: dizemos que um conjunto 𝑉𝑉 ⊂ 𝑹𝑹𝑛𝑛 é um subespaço do 𝑹𝑹𝑛𝑛 se, dados 𝐴𝐴,𝑤𝑤 ∈ 𝑉𝑉,

então 𝐴𝐴 + 𝑤𝑤 ∈ 𝑉𝑉; e, se α ∈ 𝑹𝑹 e 𝐴𝐴 ∈ 𝑉𝑉, então α𝐴𝐴 ∈ 𝑉𝑉. Ou seja, um conjunto 𝑉𝑉 ⊂ 𝑹𝑹𝑛𝑛 é um subespaço se dados vetores em 𝑉𝑉, sempre que realizarmos

as operações de soma e multiplicação por escalar com esses vetores, os vetores resultantes ainda estarão em 𝑉𝑉. Desse modo, subespaços aparecem naturalmente quando queremos o menor conjunto para onde podemos realizar essas operações.

Page 21: Álgebra linear aplicada à ciência de dados

21

Espaço coluna de uma matriz 𝐴𝐴

Seja 𝐴𝐴 uma matriz de dimensão 𝑛𝑛 × 𝑚𝑚 com colunas 𝑐𝑐1, 𝑐𝑐2, … , 𝑐𝑐𝑚𝑚. O espaço coluna de 𝐴𝐴 é o conjunto

𝐶𝐶(𝐴𝐴) = {𝐴𝐴1𝑐𝑐1 + ⋯+ 𝐴𝐴𝑚𝑚𝑐𝑐𝑚𝑚; 𝐴𝐴1, … , 𝐴𝐴𝑚𝑚 ∈ 𝑹𝑹}.

Ou seja, é o conjunto formado pelos resultados de todas as operações de somas e produtos

por escalares entre os vetores coluna de 𝐴𝐴. Podemos ver pela definição de subespaço acima que o espaço coluna de 𝐴𝐴 é um subespaço do 𝑹𝑹𝑛𝑛.

Exemplo: considere a matriz

O espaço coluna de 𝐴𝐴 contém todos os múltiplos do vetor (2,1,0) e todos os múltiplos do

vetor (1,1,0). Finalmente, contém todas as combinações lineares entre esses vetores. Essas combinações lineares formam um plano, porém não cobrem todo o espaço 𝑹𝑹3. De fato, é fácil ver que qualquer vetor da forma (0,0, 𝑧𝑧) com 𝑧𝑧 diferente de zero não pertence ao espaço coluna de 𝐴𝐴.

Mais geralmente, temos a seguinte afirmação: Afirmação: um vetor 𝑏𝑏 = (𝑏𝑏1,𝑏𝑏2, … , 𝑏𝑏𝑚𝑚) ∈ 𝐶𝐶(𝐴𝐴), isto é, o vetor 𝑏𝑏 pertence ao espaço

coluna de 𝐴𝐴 se, e somente se, a equação 𝐴𝐴𝐴𝐴 = 𝑏𝑏 possui solução 𝐴𝐴 = (𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑚𝑚). Exemplo: considere a matriz

. Note que o espaço coluna de 𝐵𝐵 coincide com o espaço coluna de 𝐴𝐴. De fato, note que 𝐵𝐵 contém todas as colunas de 𝐴𝐴, portanto 𝐶𝐶(𝐴𝐴) ⊂ 𝐶𝐶(𝐵𝐵). Por outro lado, a terceira coluna de 𝐵𝐵 é dada pela soma das duas primeiras, isto é, (3,2,0) =

(2,1,0) + (1,1,0). Portanto (3,2,0) ∈ 𝐶𝐶(𝐴𝐴) e, dessa forma, 𝐶𝐶(𝐵𝐵) = 𝐶𝐶(𝐴𝐴), pois 𝐴𝐴1(2,1,0) +𝐴𝐴2(1,1,0) + 𝐴𝐴3(3,2,0) = 𝐴𝐴1(2,1,0) + 𝐴𝐴2(1,1,0) + 𝐴𝐴3�(2,1,0) + (1,1,0)� = (𝐴𝐴1 +𝐴𝐴3)(2,1,0) + (𝐴𝐴2 + 𝐴𝐴3)(1,1,0) que pertence a 𝐶𝐶(𝐴𝐴), pois é combinação linear dos vetores (2,1,0) e (1,1,0), que são os vetores coluna de 𝐴𝐴.

Exemplo: considere, agora, a matriz

Page 22: Álgebra linear aplicada à ciência de dados

22

. O espaço coluna de 𝐶𝐶 é todo o 𝑹𝑹3. De fato, note que (1,0,0) = (2,1,0) − (1,1,0), que

(0,1,0) = 2(1,1,0) − (2,1,0) e que (0,0,1) = (1,1,1) − (1,1,0). Portanto

Dessa forma, todo (𝐴𝐴,𝑦𝑦, 𝑧𝑧) é combinação linear dos vetores coluna de 𝐶𝐶. Obs.: se 𝐴𝐴 é uma matriz 𝑛𝑛 × 𝑚𝑚, então 𝐶𝐶(𝐴𝐴) é um subespaço de 𝑹𝑹𝑛𝑛. Para ilustrar, os subespaços do 𝑹𝑹3 são: 1. um ponto − a origem (0,0,0); 2. uma reta − os conjuntos da forma {α𝐴𝐴;α ∈ 𝑅𝑅} em que 𝐴𝐴 é algum vetor do 𝑅𝑅𝟛𝟛; 3. um plano − os conjuntos da forma {α𝐴𝐴 + β𝑤𝑤;α,β ∈ 𝑅𝑅}, em que 𝐴𝐴 e 𝑤𝑤 são linearmente

independentes (veremos a definição a seguir) e 4. o espaço 𝑹𝑹3 inteiro.

Dependência e independência linear

Definição: dizemos que um conjunto de vetores 𝑤𝑤1,𝑤𝑤2, … ,𝑤𝑤𝑘𝑘 é um conjunto linearmente independente, ou que os vetores são linearmente independentes se

α1𝑤𝑤1 + ⋯+ α𝑘𝑘𝑤𝑤𝑘𝑘 = 0 ⇒ α1 = ⋯ = α𝑘𝑘 = 0,

isto é, se a única forma de obter o vetor nulo por meio de combinações lineares de 𝑤𝑤1, … ,𝑤𝑤𝑘𝑘

é tomando todos os coeficientes iguais a zero. Note que isso proíbe um vetor de ser escrito como combinação linear dos demais. De fato, suponha – sem perda de generalidade, pois podemos renomear os índices se

necessário – que 𝑤𝑤1 pode ser escrito como combinação linear dos demais vetores. Então existem β2, … ,β𝑘𝑘 ∈ 𝑅𝑅 tais que

𝑤𝑤1 = β2𝑤𝑤2 + ⋯+ β𝑘𝑘𝑤𝑤𝑘𝑘 ⇒ (−1)𝑤𝑤1 + β2𝑤𝑤2 + ⋯+ β𝑘𝑘𝑤𝑤𝑘𝑘 = 0.

Page 23: Álgebra linear aplicada à ciência de dados

23

Isso mostra que, se algum dos vetores do conjunto 𝑤𝑤1, …𝑤𝑤𝑘𝑘 puder ser escrito como combinação linear dos demais, então o conjunto não é linearmente independente.

Reciprocamente, se existem α1, … ,α𝑘𝑘 com pelo menos um deles diferente de zero – digamos α1, pois, caso contrário, podemos renomear os índices – tais que

α1𝑤𝑤1 + ⋯+ α𝑘𝑘𝑤𝑤𝑘𝑘 = 0.

Daí,

𝑤𝑤1 = −(α2/α1)𝑤𝑤2 + ⋯+ (−α𝑘𝑘/α1)𝑤𝑤𝑘𝑘, ou seja, 𝑤𝑤1 se escreve como combinação linear dos demais. Como se nota, um conjunto de vetores {𝑤𝑤1, … ,𝑤𝑤𝑘𝑘} é linearmente independente se, e

somente se, nenhum dos vetores pode ser escrito como combinação dos demais. Desse modo, se os vetores colunas de uma matriz formarem um conjunto linearmente

independente de vetores, então todos os vetores contribuem para o espaço coluna, isto é, a omissão de qualquer vetor reduz o espaço coluna.

No exemplo:

podemos omitir o vetor coluna (3,2,0) e ainda assim obter o mesmo espaço coluna.

Núcleo de matrizes

Dada uma matriz 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑚𝑚, já vimos o seu espaço coluna. Temos outros dois subespaços de interesse, a saber, o núcleo da matriz 𝐴𝐴 e o núcleo da matriz

𝐴𝐴⊤. Dada uma matriz 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑚𝑚, o seu núcleo é o conjunto

𝑁𝑁(𝐴𝐴) = {𝐴𝐴 = (𝐴𝐴1, … , 𝐴𝐴𝑚𝑚);𝐴𝐴𝐴𝐴 = 0}, ou seja, o conjunto dos vetores que se anulam quando multiplicados pela matriz 𝐴𝐴. Para entendermos melhor as relações entre esses espaços, precisamos falar sobre

complementos ortogonais de subespaços.

Page 24: Álgebra linear aplicada à ciência de dados

24

Complementos ortogonais de subespaços

Antes, precisamos definir o que são vetores ortogonais. Para tanto, relembre a interpretação geométrica do produto escalar: Dados vetores 𝐴𝐴 e 𝑦𝑦, temos

𝐴𝐴 ⋅ 𝑦𝑦 = |𝐴𝐴||𝑦𝑦|𝑐𝑐𝑐𝑐𝑐𝑐(𝜃𝜃),

em que 𝜃𝜃 é o ângulo entre x e y. Dizemos que 𝐴𝐴 e 𝑦𝑦 são vetores ortogonais se eles são perpendiculares, isto é, se o ângulo entre

eles é de 90∘. Note, então, pela expressão anterior que 𝐴𝐴 e 𝑦𝑦 são ortogonais se, e somente se, 𝑐𝑐𝑐𝑐𝑐𝑐(𝜃𝜃) = 0, ou seja, se, e somente se, 𝐴𝐴 ⋅ 𝑦𝑦 = 0. Portanto 𝐴𝐴 e 𝑦𝑦 são vetores ortogonais se, e somente se, 𝐴𝐴 ⋅ 𝑦𝑦 = 0.

Uma observação importante é que, se os vetores 𝐴𝐴 e 𝑦𝑦 são ortogonais, vale o teorema de Pitágoras:

|𝐴𝐴 − 𝑦𝑦|2 = |𝐴𝐴|2 + |𝑦𝑦|2.

De fato:

em que 𝐴𝐴 ⋅ 𝑦𝑦 = 0, pois 𝐴𝐴 e 𝑦𝑦 são ortogonais. Definição: dizemos que dois subespaços 𝑉𝑉 e 𝑊𝑊 são ortogonais se dados quaisquer 𝐴𝐴 ∈ 𝑉𝑉 e

𝑤𝑤 ∈ 𝑊𝑊, temos 𝐴𝐴 ⋅ 𝑤𝑤 = 0. Definição: sejam 𝑉𝑉 e 𝑊𝑊 subespaços do 𝑹𝑹𝑛𝑛. Dizemos que 𝑊𝑊 é o complemento ortogonal de 𝑉𝑉 se:

1. 𝑉𝑉 e 𝑊𝑊 são ortogonais e 2. é possível escrever qualquer vetor do 𝑹𝑹𝑛𝑛 como combinação linear de vetores de 𝑉𝑉 e

𝑊𝑊. Voltando para subespaços vetoriais, temos que a seguinte definição. Definição: A dimensão de um subespaço é o maior número de vetores linearmente

independentes neste subespaço. Dado um subespaço S, denotamos sua dimensão por dim(S). Suponha então que temos um subespaço S com m = dim(S) vetores linearmente

independentes, digamos 𝐴𝐴1,⋯ , 𝐴𝐴𝑚𝑚, então é possível mostrar que todo vetor de S pode ser escrito como combinação linear de 𝐴𝐴1,⋯ , 𝐴𝐴𝑚𝑚 . Neste caso, dizemos que 𝐴𝐴1,⋯ , 𝐴𝐴𝑚𝑚 formam uma base do subespaço S.

Page 25: Álgebra linear aplicada à ciência de dados

25

Obs.: No caso em que o subespaço coincide com o espaço inteiro 𝑹𝑹𝑛𝑛, existe uma escolha “natural” de base, que é conhecida como base canônica: 𝑒𝑒1 = (1,0, … ,0), … , 𝑒𝑒𝑛𝑛 = (0, … ,0,1).

Existe uma definição muito importante que relaciona matrizes e dimensões, a saber, o posto de uma matriz. Mais precisamente, temos a seguinte definição:

Definição: Dada uma matriz 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑚𝑚, seu posto, o qual denotamos por posto(A) é dado pela dimensão do espaço coluna de A, isto é,

𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝐴𝐴) = dim�𝐶𝐶(𝐴𝐴)�.

Temos, então, a seguinte afirmação que relaciona o núcleo e o espaço coluna de matrizes: Afirmação: o espaço 𝑁𝑁(𝐴𝐴) é o complemento ortogonal de 𝐶𝐶(𝐴𝐴⊤), e o espaço 𝑁𝑁(𝐴𝐴⊤) é o

complemento ortogonal de 𝐶𝐶(𝐴𝐴). Além disso,

𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝐴𝐴) = 𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝐴𝐴⊤). Obs.: como as linhas de 𝐴𝐴 coincidem com as colunas de 𝐴𝐴⊤, chamamos 𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝐴𝐴⊤) de posto

linha de 𝐴𝐴. Pela afirmação, os postos linha e coluna de 𝐴𝐴 coincidem, logo chamamos esse número simplesmente de posto da matriz 𝐴𝐴.

Da afirmação, decorre o teorema do núcleo e imagem: dada uma matriz 𝐴𝐴, temos

𝑑𝑑𝑖𝑖𝑚𝑚�𝑁𝑁(𝐴𝐴)� + 𝑑𝑑𝑖𝑖𝑚𝑚�𝐶𝐶(𝐴𝐴⊤)� = 𝑑𝑑𝑖𝑖𝑚𝑚(𝑹𝑹𝑛𝑛) = 𝑛𝑛. Seja 𝑟𝑟 o posto coluna de 𝐴𝐴. Note que como posto linha de 𝐴𝐴 coincide com posto coluna de

𝐴𝐴, temos 𝑑𝑑𝑖𝑖𝑚𝑚�𝑁𝑁(𝐴𝐴)� = 𝑛𝑛 − 𝑑𝑑𝑖𝑖𝑚𝑚�𝐶𝐶(𝐴𝐴⊤)� = 𝑛𝑛 − 𝑑𝑑𝑖𝑖𝑚𝑚�𝐶𝐶(𝐴𝐴)� = 𝑛𝑛 − 𝑟𝑟. Esse teorema relaciona a quantidade de soluções linearmente independentes de uma equação

linear 𝐴𝐴𝐴𝐴 = 0 com o posto da matriz 𝐴𝐴. Como consequência, se 𝐴𝐴 é uma matriz 𝑛𝑛 × 𝑛𝑛 e a equação 𝐴𝐴𝐴𝐴 = 0 só possui a solução trivial,

isto é, a solução 𝐴𝐴 = 0, então isso significa que 𝑑𝑑𝑖𝑖𝑚𝑚�𝐶𝐶(𝐴𝐴)� = 𝑛𝑛. Daí 𝐶𝐶(𝐴𝐴) coincide com o 𝑹𝑹𝑛𝑛. O seguinte teorema relaciona posto de matrizes com inversibilidade de matrizes e soluções de

sistemas lineares: Teorema: dada uma matriz 𝐴𝐴 de dimensão 𝑛𝑛 × 𝑛𝑛, 𝐴𝐴 tem posto completo, isto é, 𝐴𝐴 possui

posto 𝑛𝑛 se, e somente se, 𝐴𝐴 é inversível. Além disso, 𝐴𝐴 é inversível se, e somente se, para todo 𝑏𝑏 ∈𝑹𝑹𝑛𝑛, a equação 𝐴𝐴 𝐴𝐴 = 𝑏𝑏 possui solução única.

Sistemas lineares

O nosso objetivo, agora, é resolver equações do tipo 𝐴𝐴𝐴𝐴 = 𝑏𝑏. Relembre que a equação 𝐴𝐴𝐴𝐴 = 𝑏𝑏 só possui solução se 𝑏𝑏 pertencer ao espaço coluna de 𝐴𝐴.

Page 26: Álgebra linear aplicada à ciência de dados

26

Obs.: se o núcleo de 𝐴𝐴, 𝑁𝑁(𝐴𝐴), for não trivial, isto é, se existe algum vetor não nulo 𝑤𝑤 ∈𝑁𝑁(𝐴𝐴), então, caso a equação 𝐴𝐴𝐴𝐴 = 𝑏𝑏 possua solução, esta não será única.

De fato, seja 𝐴𝐴∗ uma solução de 𝐴𝐴𝐴𝐴 = 𝑏𝑏. Dessa forma, 𝐴𝐴𝐴𝐴∗ = 𝑏𝑏. Agora, note que 𝐴𝐴∗ + 𝑤𝑤 é outra solução da equação, pois 𝐴𝐴(𝐴𝐴∗ + 𝑤𝑤) = 𝐴𝐴𝐴𝐴∗ + 𝐴𝐴𝑤𝑤 = 𝐴𝐴𝐴𝐴∗ = 𝑏𝑏.

Note também que, na realidade, teremos infinitas soluções, pois para todo α ∈ 𝑹𝑹, 𝐴𝐴∗ + α𝑤𝑤 é solução da mesma equação. Dessa forma, pelo que acabamos de ver e pelo que vimos anteriormente, temos o seguinte cenário para uma matriz 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑛𝑛:

1. Se 𝑁𝑁(𝐴𝐴) = {0} − isto é, se o núcleo é trivial −, então, para todo 𝑏𝑏 ∈ 𝑹𝑹𝑛𝑛, a equação 𝐴𝐴𝐴𝐴 = 𝑏𝑏 possui uma única solução. Nesse caso, a matriz 𝐴𝐴 é inversível, e a solução da equação é dada por 𝐴𝐴 = 𝐴𝐴−1𝑏𝑏.

2. Se 𝑁𝑁(𝐴𝐴) ≠ {0} − isto é, se existe algum vetor não nulo no núcleo −, então, caso a equação 𝐴𝐴𝐴𝐴 = 𝑏𝑏 possua solução, na realidade a equação possuirá uma infinidade de soluções.

Vamos supor que temos uma matriz quadrada 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑛𝑛 e um vetor 𝑏𝑏 ∈ 𝑹𝑹𝑛𝑛. Queremos encontrar 𝐴𝐴 = (𝐴𝐴1, … , 𝐴𝐴𝑛𝑛) ∈ 𝑹𝑹𝑛𝑛 tal que 𝐴𝐴𝐴𝐴 = 𝑏𝑏.

Utilizando a forma por linhas do produto de matrizes, e denotando as linhas da matriz 𝐴𝐴 por 𝑟𝑟1, … , 𝑟𝑟𝑛𝑛, obtemos o a seguinte equação:

�𝑟𝑟1 ⋅ 𝐴𝐴⋮

𝑟𝑟𝑛𝑛 ⋅ 𝐴𝐴� = �

𝑏𝑏1⋮𝑏𝑏𝑛𝑛�.

Observe que, para cada 𝑖𝑖, temos 𝑟𝑟𝑖𝑖𝐴𝐴 = 𝑎𝑎𝑖𝑖1𝐴𝐴1 + ⋯+ 𝑎𝑎𝑖𝑖𝑛𝑛𝐴𝐴𝑛𝑛. Desse modo, a equação anterior

pode ser reescrita como o seguinte sistema de equações:

. Note que cada equação do tipo 𝑎𝑎𝑖𝑖1𝐴𝐴1 + ⋯+ 𝑎𝑎𝑖𝑖𝑛𝑛𝐴𝐴𝑛𝑛 = 𝑏𝑏𝑖𝑖 representa um hiperplano. Por

exemplo: 1. se 𝑛𝑛 = 1, a equação 𝑎𝑎11𝐴𝐴1 = 𝑏𝑏1 representa um ponto; 2. se 𝑛𝑛 = 2, cada equação 𝑎𝑎𝑖𝑖1𝐴𝐴1 + 𝑎𝑎𝑖𝑖2𝐴𝐴2 = 𝑏𝑏𝑖𝑖 representa uma reta, e 3. se 𝑛𝑛 = 3, cada equação 𝑎𝑎𝑖𝑖1𝐴𝐴1 + 𝑎𝑎𝑖𝑖2𝐴𝐴2 + 𝑎𝑎𝑖𝑖3𝐴𝐴3 = 𝑏𝑏𝑖𝑖 representa um plano. Quando a equação 𝐴𝐴𝐴𝐴 = 𝑏𝑏 possui uma única solução, esses hiperplanos – no caso geral – se

intersectam em um único ponto 𝐴𝐴. Quando a equação possui mais de uma solução, esses hiperplanos se intersectam formando um sub-hiperplano. Nesse caso, as soluções formam uma reta, ou um plano, ou um espaço, etc., que não necessariamente passa pela origem, pois isto só ocorrerá se, e só se, 𝐴𝐴∗ = 0 for solução.

Page 27: Álgebra linear aplicada à ciência de dados

27

Por exemplo, se 𝑛𝑛 = 1 e 𝑎𝑎11 ≠ 0, necessariamente temos uma única solução. De fato, temos a equação:

𝑎𝑎11𝐴𝐴1 = 𝑏𝑏1 ⇒ 𝐴𝐴1 =𝑏𝑏1𝑎𝑎11

.

Se 𝑛𝑛 = 2 e temos mais de uma solução, então as duas equações definem a mesma reta,

portanto temos uma reta inteira de soluções. Por exemplo, considere o sistema

. Daí, as duas equações fornecem a mesma reta de soluções:

𝐴𝐴2 =5 − 2𝐴𝐴1

3.

As duas equações fornecem a mesma reta, conforme a figura 4, a seguir.

Figura 4 – Reta contendo as soluções do sistema linear

A figura 4, acima, contém a reta de soluções.

Page 28: Álgebra linear aplicada à ciência de dados

28

Vejamos, agora, exemplos para os quais temos solução única. Considere a equação:

. Essa equação fornece o sistema:

. A figura 5, a seguir, contém a solução dada pela interseção das retas.

Figura 5 – Solução do sistema

Resolvendo equações do tipo 𝐴𝐴𝐴𝐴 = 𝑏𝑏 via eliminação gaussiana

Suponha que temos uma matriz 𝑛𝑛 × 𝑛𝑛 inversível 𝐴𝐴. Sabemos então que, para todo 𝑏𝑏 ∈ 𝑹𝑹𝑛𝑛, a equação 𝐴𝐴𝐴𝐴 = 𝑏𝑏 possui solução única dada por 𝐴𝐴 = 𝐴𝐴−1 𝑏𝑏. Dito isso, uma forma de resolver essa equação seria obtendo a matriz inversa 𝐴𝐴−1 e, em seguida, realizar a multiplicação por 𝑏𝑏.

Page 29: Álgebra linear aplicada à ciência de dados

29

O problema dessa metodologia está na inversão da matriz 𝐴𝐴. Observe que, pelo que vimos anteriormente, a inversão de matrizes consiste em resolver 𝑛𝑛 equações, uma para cada vetor canônico (1,0, … ,0), … , (0, … ,0,1). Ao passo que, quando temos o vetor 𝑏𝑏, o nosso interesse consiste na resolução de apenas uma equação. Essa diferença pode não ser tão relevante para valores de 𝑛𝑛 pequenos, porém, para grandes valores de 𝑛𝑛, situação comum no cenário atual de big data, essa abordagem se torna essencialmente inviável.

Dessa forma, precisamos obter estratégias de soluções de sistemas lineares sem a necessidade de inversão de matrizes, e a principal estratégia nessa direção é a eliminação gaussiana.

Temos então uma matriz 𝐴𝐴 de tamanho 𝑛𝑛 × 𝑛𝑛, um vetor 𝑏𝑏 ∈ 𝑹𝑹𝑛𝑛 e queremos encontrar 𝐴𝐴 =(𝐴𝐴1, … , 𝐴𝐴𝑛𝑛) tal que 𝐴𝐴𝐴𝐴 = 𝑏𝑏. Observe, então, que temos 𝑛𝑛 equações e 𝑛𝑛 variáveis 𝐴𝐴1, … , 𝐴𝐴𝑛𝑛.

A ideia da eliminação gaussiana é ir eliminando as variáveis nas equações por meio de operações lineares, isto é, soma e produto por escalar. Nesse sentido, começa com a variável 𝐴𝐴1 e se elimina 𝐴𝐴1 em 𝑛𝑛 − 1 das 𝑛𝑛 equações. Em seguida, elimina-se 𝐴𝐴2 de 𝑛𝑛 − 2 das 𝑛𝑛 − 1 equações anteriores, etc., até chegar a uma última equação que contém apenas 𝐴𝐴𝑛𝑛.

Dessa forma, resolve-se facilmente a equação que contém apenas 𝐴𝐴𝑛𝑛, utiliza-se 𝐴𝐴𝑛𝑛 para encontrar 𝐴𝐴𝑛𝑛−1 na equação que contém apenas 𝐴𝐴𝑛𝑛−1 e 𝐴𝐴𝑛𝑛, etc., até encontrar todas as coordenadas de 𝐴𝐴.

Note que, para o processo anterior de eliminação seja possível, a equação 𝐴𝐴𝐴𝐴 = 𝑏𝑏 deve possuir solução única. Caso contrário, no meio do processo será impossível eliminar a variável em questão. Portanto o processo de eliminação gaussiana termina, isto é, encontra todas as coordenadas de 𝐴𝐴 se, e somente se, o sistema 𝐴𝐴𝐴𝐴 = 𝑏𝑏 possui solução única.

Relembre que, para que tenhamos solução única, é necessário e suficiente que a equação 𝐴𝐴𝐴𝐴 = 0 tenha solução única.

Algoritmo de eliminação gaussiana

1. Suponha que temos o sistema de equações lineares. Caso esteja em forma matricial, 𝐴𝐴𝐴𝐴 = 𝑏𝑏, realize a multiplicação da matriz 𝐴𝐴 pelo vetor 𝐴𝐴 para a obtenção do sistema.

2. Reordene as equações de tal forma que a primeira equação possua coeficiente não nulo para 𝐴𝐴1. Caso isso não seja possível, o sistema não possui solução única.

3. Utilize a primeira equação para eliminar 𝐴𝐴1 de todas as equações abaixo da primeira. Elimina-se 𝐴𝐴1, realizando combinações lineares entre as equações. Dessa forma, obtemos novas equações, a partir da segunda, que não contém 𝐴𝐴1.

4. Utilize a nova segunda equação para remover a variável 𝐴𝐴2 de todas as equações abaixo da segunda.

5. Repita o procedimento até que a última equação contenha apenas 𝐴𝐴𝑛𝑛.

Page 30: Álgebra linear aplicada à ciência de dados

30

Suponha que temos o sistema:

. Resultado após o passo 1:

.

Ao final, obtemos um sistema do tipo:

. Exemplo: consideremos o sistema

. Como a primeira linha possui coeficiente não nulo para a variável 𝐴𝐴1, podemos manter a

primeira linha. Para eliminar a variável 𝐴𝐴1 da segunda equação, realizamos a soma da primeira equação com 2 vezes a segunda equação, obtendo a equação:

𝐴𝐴2 + 3𝐴𝐴3 = 9.

Analogamente, somamos a primeira e a terceira equações para obtermos:

4𝐴𝐴2 = 5.

Page 31: Álgebra linear aplicada à ciência de dados

31

Obtemos, então, o novo sistema equivalente:

. Note que, como 𝐴𝐴1 e 𝐴𝐴3 foram eliminadas na última equação, não há necessidade de um

novo passo. Já podemos resolver o sistema diretamente. Começamos resolvendo a última para

obtermos 𝐴𝐴2 = 54

= 1.25.

Substituímos esse valor na segunda equação, obtendo 54

+ 3𝐴𝐴3 = 9, daí segue que 𝐴𝐴3 =3112

= 2.58333 … . Por fim, temos −2𝐴𝐴1 + 3 ⋅ 54

+ 3112

= 5. Portanto 𝐴𝐴1 = 1624

= 23

= 0.666 …

Dessa forma, obtemos a solução 𝐴𝐴 = (23

, 54

, 3112

) = (0.666 … , 1.25, 2.58333 … ). Podemos resolver o sistema no R por meio da função solve(). Vamos, então, verificar a

solução obtida no R:

A = rbind(c(-2,3,1), c(1,-1,1), c(2,1,-1)) b = c(5,2,0) solve(A,b)

Projeções ortogonais

Agora que já temos as definições básicas de vetores, matrizes e subespaços, vamos apresentar alguns dos mais importantes conceitos da álgebra linear: projeções ortogonais, autovalores e autovetores. Veremos como projeções podem ser entendidas como “melhores aproximações” de vetores em subespaços segundo a norma.

Começaremos com algumas definições.

Bases ortogonais e ortonormais

Definição: dizemos que uma base de um subespaço – portanto um conjunto de vetores tais que todas as combinações lineares geram o subespaço – é uma base ortogonal se cada par de vetores de base, 𝐴𝐴𝑖𝑖 e 𝐴𝐴𝑗𝑗 , são ortogonais, isto é, temos 𝐴𝐴𝑖𝑖 ⋅ 𝐴𝐴𝑗𝑗 = 0, ou em termos matriciais, 𝐴𝐴𝑖𝑖⊤𝐴𝐴𝑗𝑗 = 0.

Se temos uma base (𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑛𝑛) de um certo subespaço 𝑉𝑉, então dado um vetor qualquer 𝐴𝐴 ∈ 𝑉𝑉, existem escalares α1, … ,α𝑛𝑛 tais que

𝐴𝐴 = α1𝐴𝐴1 + ⋯+ α𝑛𝑛𝐴𝐴𝑛𝑛.

Page 32: Álgebra linear aplicada à ciência de dados

32

Afirmação: se a base é ortogonal e 𝐴𝐴 é um vetor não nulo, podemos recuperar os coeficientes realizando o produto escalar:

𝛼𝛼𝑖𝑖 = 𝑣𝑣⋅𝑣𝑣𝑖𝑖𝑣𝑣𝑖𝑖⋅𝑣𝑣𝑖𝑖

= 𝑣𝑣⋅𝑣𝑣𝑖𝑖|𝑣𝑣𝑖𝑖|2

.

De fato, temos

Como 𝐴𝐴 é não nulo, temos |𝐴𝐴𝑖𝑖|2 ≠ 0, portanto o resultado segue após dividirmos ambos os

lados da igualdade por |𝐴𝐴𝑖𝑖|2. Definição: dizemos que uma base (𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑛𝑛) é ortonormal se a base é ortogonal e para

cada 𝑖𝑖 = 1, … ,𝑛𝑛, temos |𝐴𝐴𝑖𝑖| = 1. Observe então que, se a base é ortonormal, dado qualquer vetor 𝐴𝐴 ∈ 𝑉𝑉, em que 𝑉𝑉 é subespaço,

temos 𝐴𝐴 = 𝛼𝛼1 𝐴𝐴1 + ⋯ + 𝛼𝛼𝑛𝑛 𝐴𝐴𝑛𝑛,

em que 𝛼𝛼𝑖𝑖 = 𝐴𝐴 ⋅ 𝐴𝐴_𝑖𝑖, já que |𝐴𝐴𝑖𝑖|2 = 1. Portanto podemos escrever

𝐴𝐴 = (𝐴𝐴 ⋅ 𝐴𝐴1)𝐴𝐴1 + ⋯ + (𝐴𝐴 ⋅ 𝐴𝐴𝑛𝑛)𝐴𝐴𝑛𝑛. Esta é uma grande vantagem das bases ortonormais: o cálculo dos seus coeficientes é imediato;

em particular, não há necessidade da resolução de sistemas lineares para a sua obtenção.

Matrizes ortogonais

Uma matriz 𝑂𝑂 de dimensão 𝑛𝑛 × 𝑚𝑚 é dita ortogonal se 𝑂𝑂⊤𝑂𝑂 = 𝐼𝐼, em que 𝐼𝐼 é a matriz identidade, isto é, se a matriz inversa de 𝑂𝑂 é a sua transposta.

Note que, se 𝑂𝑂1 e 𝑂𝑂2 são matrizes ortogonais de dimensões 𝑛𝑛 × 𝑚𝑚 e 𝑚𝑚 ×, respectivamente, então o seu produto 𝑂𝑂1𝑂𝑂2 também é uma matriz ortogonal.

De fato, (𝑂𝑂1𝑂𝑂2)⊤(𝑂𝑂1𝑂𝑂2) = 𝑂𝑂2⊤𝑂𝑂1⊤𝑂𝑂1𝑂𝑂2 = 𝑂𝑂2⊤𝐼𝐼𝑂𝑂2 = 𝑂𝑂2⊤𝑂𝑂2 = 𝐼𝐼. Afirmação: bases ortonormais formam matrizes ortogonais, considerando os vetores como

colunas.

Page 33: Álgebra linear aplicada à ciência de dados

33

De fato, observe que o elemento (𝑖𝑖, 𝑗𝑗) da matriz 𝑂𝑂⊤𝑂𝑂 é dado por 𝑐𝑐𝑖𝑖⊤𝑐𝑐𝑗𝑗 , em que 𝑐𝑐𝑖𝑖 é a 𝑖𝑖-ésima coluna de 𝑂𝑂. Com isso, se 𝑖𝑖 ≠ 𝑗𝑗, 𝑐𝑐𝑖𝑖⊤𝑐𝑐𝑗𝑗 = 0 e 𝑐𝑐𝑖𝑖⊤𝑐𝑐𝑖𝑖 = |𝑐𝑐𝑖𝑖|2 = 1. Logo 𝑂𝑂⊤𝑂𝑂 = 𝐼𝐼, e assim a matriz O é ortogonal. Isso mostra a afirmação.

Vale também a recíproca: Afirmação: se uma matriz O é ortogonal, então os seus vetores colunas são ortonormais, ou

seja, são ortogonais e com norma 1. De fato, como 𝑂𝑂⊤𝑂𝑂 = 𝐼𝐼, segue que 𝑐𝑐𝑖𝑖⊤𝑐𝑐𝑗𝑗 = 0 se 𝑖𝑖 ≠ 𝑗𝑗 e 𝑐𝑐𝑖𝑖⊤𝑐𝑐𝑗𝑗 = 1 se 𝑖𝑖 = 𝑗𝑗. Portanto

(𝑐𝑐1, … , 𝑐𝑐𝑛𝑛) são ortonormais. Isso prova a afirmação. Observe também que, para todo 𝐴𝐴 ∈ 𝑹𝑹𝑛𝑛, |𝑂𝑂𝐴𝐴| = |𝐴𝐴|. De fato: |𝑂𝑂𝐴𝐴|2 = (𝑂𝑂𝐴𝐴) ⋅ (𝑂𝑂𝐴𝐴) = 𝐴𝐴 ⋅ (𝑂𝑂⊤𝑂𝑂𝐴𝐴) = 𝐴𝐴 ⋅ 𝐴𝐴 = |𝐴𝐴|2. Além disso, se temos vetores 𝐴𝐴,𝑤𝑤 ∈ 𝑹𝑹𝑛𝑛 e uma matriz ortogonal 𝑂𝑂 de tamanho 𝑛𝑛 × 𝑛𝑛, 𝑂𝑂

preserva os ângulos entre os vetores. De fato:

�𝑂𝑂 𝑣𝑣|𝑣𝑣|� ⋅ �𝑂𝑂 𝑤𝑤

|𝑤𝑤|� = 𝑣𝑣

|𝑣𝑣|⋅ �𝑂𝑂⊤𝑂𝑂 𝑤𝑤

|𝑤𝑤|� = � 𝑣𝑣

|𝑣𝑣|� ⋅ � 𝑤𝑤

|𝑤𝑤|�.

Dessa forma, o cosseno do ângulo entre 𝐴𝐴 e 𝑤𝑤 é igual ao cosseno do ângulo entre 𝑂𝑂𝐴𝐴 e 𝑂𝑂𝑤𝑤. O ângulo entre dois vetores 𝐴𝐴 e 𝑤𝑤 é definido como o menor ângulo entre os dois ângulos

possíveis, quando estes são diferentes. Isto é, o ângulo entre dois vetores sempre será menor ou igual a 𝜋𝜋, ou seja, menor ou igual a 180∘. Portanto, se os seus cossenos são iguais, é porque os ângulos são iguais. Ou seja, se 0 ≤ 𝜃𝜃,𝜗𝜗 ≤ 𝜋𝜋 e 𝑐𝑐𝑐𝑐𝑐𝑐(𝜃𝜃) = 𝑐𝑐𝑐𝑐𝑐𝑐(𝜗𝜗), então 𝜃𝜃 = 𝜗𝜗. Isso mostra que uma matriz ortogonal 𝑂𝑂 preserva ângulos entre vetores.

Além disso, geometricamente, uma matriz ortogonal realiza movimentos “rígidos”, no sentido de que não altera o comprimento de nenhum vetor e que dados dois vetores, uma matriz ortogonal não aproxima esses vetores nem os afasta. Ou seja, a matriz ortogonal só muda a direção, e possivelmente o sentido, do vetor, mas não o “deforma”. Portanto as matrizes ortogonais são generalizações de rotações e reflexões.

Exemplo: rotações em 𝑹𝑹2 Considere um vetor 𝐴𝐴 = (𝐴𝐴,𝑦𝑦) ∈ 𝑹𝑹2 e a rotação de v por um ângulo 𝜃𝜃 no sentido anti-

horário e denote por 𝐴𝐴𝜃𝜃 o vetor obtido por meio desta operação. A seguir, na figura 6, vemos uma ilustração gráfica de 𝐴𝐴𝜃𝜃 e 𝐴𝐴. Observe que o ângulo ϑ entre

o vetor 𝐴𝐴 e o eixo 𝐴𝐴 está na cor laranja, o ângulo θ entre os vetores 𝐴𝐴𝜃𝜃 e 𝐴𝐴 está na cor verde e o ângulo 𝜃𝜃 + 𝜗𝜗 entre o vetor 𝐴𝐴𝜃𝜃 e o eixo x está na cor azul:

Page 34: Álgebra linear aplicada à ciência de dados

34

Figura 6 – Vetor original 𝒗𝒗 e vetor rotacionado 𝒗𝒗𝜽𝜽

É possível escrever 𝐴𝐴𝜃𝜃 = (𝐴𝐴𝜃𝜃,𝑦𝑦𝜃𝜃) como o produto de uma matriz pelo vetor 𝐴𝐴 = (𝐴𝐴,𝑦𝑦).

Mais precisamente, temos

em que

. Note que 𝑅𝑅θ é uma matriz ortogonal:

Exemplo: reflexões em 𝑹𝑹2 Vamos, agora, considerar as reflexões com relação a retas que passam pela origem. Suponha que temos uma reta 𝑟𝑟 que passa pela origem e possui um ângulo θ com relação ao

eixo 𝐴𝐴. Para realizar a reflexão com relação a essa reta, faremos o seguinte: 1. Realizamos uma rotação de ângulo −𝜃𝜃 para que a reta coincida com o eixo 𝐴𝐴. 2. Reflexionamos com relação ao eixo 𝐴𝐴 (fácil, basta trocar 𝑦𝑦 por −𝑦𝑦). 3. Depois, realizamos uma rotação de ângulo 𝜃𝜃 para retornar à reta de reflexão original.

Page 35: Álgebra linear aplicada à ciência de dados

35

A operação que troca 𝑦𝑦 por −𝑦𝑦 é dada pela matriz:

. Daí, a reflexão de (𝐴𝐴,𝑦𝑦) por uma reta que faz ângulo θ com relação ao eixo 𝐴𝐴 é dada por:

Obs.: a reflexão de um vetor (𝐴𝐴,𝑦𝑦) é dada pela multiplicação deste por uma matriz ortogonal.

Projeções ortogonais

Relembre que a distância entre dois vetores 𝐴𝐴 e 𝑤𝑤 é dada por |𝐴𝐴 − 𝑤𝑤|. Se temos dois vetores 𝐴𝐴 e 𝑤𝑤 em 𝑹𝑹𝑛𝑛, a projeção ortogonal de 𝐴𝐴 sobre 𝑤𝑤 é o vetor múltiplo de 𝑤𝑤 que minimiza a distância com relação a 𝐴𝐴, isto é, a projeção de 𝐴𝐴 sobre 𝑤𝑤 é a “melhor” aproximação de 𝐴𝐴 por múltiplos de 𝑤𝑤.

Dessa forma, queremos encontrar α ∈ 𝑹𝑹 tal que |𝐴𝐴 − α𝑤𝑤| é mínimo, ou equivalentemente, tal que |𝐴𝐴 − α𝑤𝑤|2 é mínimo, pois a função 𝐴𝐴 ↦ 𝐴𝐴2 é crescente para 𝐴𝐴 ≥ 0.

Com isso, temos

. Como

�α − 𝑣𝑣⋅𝑤𝑤|𝑤𝑤|2

�2≥ 0,

o mínimo é obtido fazendo

α = 𝑣𝑣⋅𝑤𝑤|𝑤𝑤|2

.

Portanto a projeção de 𝐴𝐴 sobre 𝑤𝑤 é dada por

𝑃𝑃𝑤𝑤(𝐴𝐴) = �𝑣𝑣⋅𝑤𝑤|𝑤𝑤|2

�𝑤𝑤.

Page 36: Álgebra linear aplicada à ciência de dados

36

Observe que temos a seguinte interpretação geométrica para a projeção:

𝑃𝑃𝑤𝑤(𝐴𝐴) = �𝐴𝐴 ⋅ � 𝑤𝑤|𝑤𝑤|�� 𝑤𝑤

|𝑤𝑤|= (𝐴𝐴 ⋅ 𝑤𝑤�)𝑤𝑤� = |𝐴𝐴| cos(θ)𝑤𝑤� ,

em que θ é o ângulo entre 𝐴𝐴, e 𝑤𝑤 e 𝑤𝑤� é o vetor unitário na mesma direção e sentido que 𝑤𝑤. Veja a seguir, na figura 7, uma ilustração da projeção do vetor 𝐴𝐴 sobre o vetor 𝑤𝑤.

Figura 7 – Projeção ortogonal do vetor 𝒗𝒗 sobre o vetor 𝒘𝒘

Na figura 7, acima, o vetor 𝐴𝐴 está na cor preta; o vetor 𝑤𝑤, na cor vermelha; e a projeção de 𝐴𝐴

sobre 𝑤𝑤, na cor azul.

Projeções ortogonais sobre subespaços

Relembre que já definimos o complemento ortogonal. Vamos, agora, enunciar um teorema que garante a existência do complemento ortogonal de um subespaço.

Teorema: seja 𝑊𝑊 ⊂ 𝑹𝑹𝑛𝑛 um subespaço vetorial. Então existe o seu complemento ortogonal, isto é, existe um subespaço vetorial 𝑊𝑊⊥ tal que:

1. para todo 𝑤𝑤 em 𝑊𝑊 e todo 𝐴𝐴 em 𝑊𝑊⊥, temos 𝑤𝑤 ⋅ 𝐴𝐴 = 0 e 2. para todo 𝑢𝑢 ∈ 𝑹𝑹𝑛𝑛, existem 𝑤𝑤� ∈ 𝑊𝑊 e 𝐴𝐴� ∈ 𝑊𝑊⊥ tais que 𝑢𝑢 = 𝑤𝑤� + 𝐴𝐴�. Definição: dado um vetor 𝑢𝑢 ∈ 𝑹𝑹𝑛𝑛 e um subespaço vetorial 𝑊𝑊, definimos a projeção

ortogonal de 𝑢𝑢 sobre o subespaço 𝑊𝑊 como o vetor 𝑃𝑃𝑊𝑊(𝑢𝑢) ∈ 𝑊𝑊 que minimiza a distância entre 𝑢𝑢 e os vetores de 𝑊𝑊, isto é,

Page 37: Álgebra linear aplicada à ciência de dados

37

Isso significa que a projeção ortogonal de 𝐴𝐴 sobre 𝑊𝑊 é o vetor de 𝑊𝑊 que minimiza a distância ao vetor 𝑢𝑢.

Em outras palavras, podemos pensar na projeção ortogonal de 𝑢𝑢 sobre 𝑊𝑊 como a melhor aproximação do vetor 𝑢𝑢 por vetores de 𝑊𝑊.

Observe que, se 𝑢𝑢 ∈ 𝑊𝑊, então 𝑃𝑃𝑊𝑊(𝑢𝑢) = 𝑢𝑢, pois |𝑢𝑢 − 𝑢𝑢| = 0, que é o mínimo. Portanto isso nos diz que (𝑃𝑃𝑊𝑊)2(𝑢𝑢) = 𝑃𝑃𝑊𝑊�𝑃𝑃𝑊𝑊(𝑢𝑢)� = 𝑃𝑃𝑊𝑊(𝑢𝑢), pois, por definição, 𝑃𝑃𝑊𝑊(𝑢𝑢) ∈ 𝑊𝑊. Isto é, 𝑃𝑃𝑊𝑊2 = 𝑃𝑃𝑊𝑊.

Nesse caso, dizemos que o operador de projeção ortogonal é um operador idempotente. Observe que, se escrevemos 𝑢𝑢 ∈ 𝑹𝑹𝑛𝑛 como 𝑢𝑢 = 𝑤𝑤� + 𝐴𝐴�, em que 𝑤𝑤� ∈ 𝑊𝑊 e 𝐴𝐴� ∈ 𝑊𝑊⊥, então

𝑃𝑃𝑊𝑊(𝑢𝑢) = 𝑤𝑤� . De fato, dado 𝑤𝑤 ∈ 𝑊𝑊,

em que (𝑤𝑤 − 𝑤𝑤�) ⋅ 𝐴𝐴� = 0, pois 𝑤𝑤 − 𝑤𝑤� ∈ 𝑊𝑊 e 𝐴𝐴 ∈ 𝑊𝑊⊥. Dessa forma, |𝑤𝑤 − 𝑢𝑢|2 = |𝑤𝑤 − 𝑤𝑤�|2 + |𝐴𝐴�|2, portanto é minimizado quando 𝑤𝑤 = 𝑤𝑤� . Com

isso, 𝑃𝑃𝑊𝑊(𝑢𝑢) = 𝑤𝑤� . Obs.: note que, se 𝑢𝑢 ∈ 𝑹𝑹𝑛𝑛 e 𝑊𝑊 é subespaço vetorial do 𝑹𝑹𝑛𝑛 e temos 𝑢𝑢 = 𝑤𝑤� + 𝐴𝐴�, com 𝑤𝑤� ∈

𝑊𝑊 e 𝐴𝐴� ∈ 𝑊𝑊⊥, então 𝑤𝑤� é a projeção ortogonal de 𝑢𝑢 sobre 𝑊𝑊. Observe que (𝑊𝑊⊥)⊥ = 𝑊𝑊. Com isso, 𝐴𝐴� é a projeção ortogonal de 𝑢𝑢 sobre 𝑊𝑊⊥.

Note então que 𝑢𝑢 = 𝑤𝑤� + 𝐴𝐴� ⇒ 𝑢𝑢 = 𝑃𝑃𝑊𝑊(𝑢𝑢) + 𝐴𝐴� ⇒ 𝐴𝐴� = 𝑢𝑢 − 𝑃𝑃𝑊𝑊(𝑢𝑢) = (𝐼𝐼 − 𝑃𝑃𝑊𝑊)(𝑢𝑢). Portanto (𝐼𝐼 − 𝑃𝑃𝑊𝑊) é a de projeção ortogonal sobre o espaço 𝑊𝑊⊥.

Obs.: 𝑃𝑃𝑊𝑊(𝑢𝑢) é o vetor de 𝑊𝑊 que “melhor” aproxima de 𝑢𝑢, no sentido de que minimiza a distância euclidiana. O “erro” dessa aproximação é:

𝑢𝑢 − 𝑃𝑃𝑊𝑊(𝑢𝑢) = (𝐼𝐼 − 𝑃𝑃𝑊𝑊)(𝑢𝑢) = 𝑃𝑃𝑊𝑊⊥(𝑢𝑢).

Dessa forma, o “erro” da “melhor” aproximação de 𝑢𝑢 por vetores de 𝑊𝑊 é dado pela projeção

ortogonal de 𝑢𝑢 sobre 𝑊𝑊⊥. Vejamos uma ilustração na figura 8, a seguir. Temos o vetor 𝑢𝑢 na cor preta e o plano 𝑊𝑊 na

cor cinza. A projeção ortogonal de 𝑢𝑢 sobre 𝑊𝑊 é o vetor na cor laranja. O complemento ortogonal de 𝑊𝑊 é dado pelo espaço 𝑉𝑉 gerado pelo vetor na cor azul. Finalmente, a projeção de 𝑢𝑢 sobre 𝑉𝑉 =𝑊𝑊⊥ é o vetor na cor roxa.

Page 38: Álgebra linear aplicada à ciência de dados

38

Figura 8 – Projeção ortogonal

O gráfico acima é interativo, e a sua versão interativa pode ser visualizada no link: <https://www.geogebra.org/m/cjefgaab>.

É possível mostrar que a projeção ortogonal 𝑃𝑃𝑊𝑊(𝑢𝑢) pode ser escrita como produto de uma matriz pelo vetor 𝑢𝑢. Denote essa matriz por 𝑃𝑃𝑊𝑊. Com isso, 𝑃𝑃𝑊𝑊(𝑢𝑢) = 𝑃𝑃𝑊𝑊𝑢𝑢.

É possível mostrar que 𝑃𝑃𝑊𝑊 sempre é simétrica. Além disso, também é possível mostrar que vale um tipo de recíproca. Mais precisamente, temos:

Proposição: seja 𝑃𝑃𝑊𝑊 uma matriz de projeção sobre um subespaço 𝑊𝑊, então 𝑃𝑃𝑊𝑊 é simétrica. Por outro lado, dada 𝑃𝑃 uma matriz de tamanho 𝑛𝑛 × 𝑛𝑛 tal que 𝑃𝑃⊤ = 𝑃𝑃 e 𝑃𝑃2 = 𝑃𝑃, então 𝑃𝑃 é uma matriz de projeção ortogonal sobre o espaço 𝑊𝑊 = 𝐶𝐶(𝑃𝑃), isto é, 𝑃𝑃 é projeção ortogonal sobre o seu espaço coluna.

Obs.: essa forma de obter projeções é extremamente útil. Por exemplo, aparecem naturalmente no estudo das regressões lineares.

Autovalores, autovetores e formas quadráticas

Nesta unidade, discutiremos um dos mais importantes conceitos da álgebra linear, a saber, autovalores e autovetores.

Definição: dizemos que 𝐴𝐴 ≠ 0 é um autovetor da matriz 𝐴𝐴 se existe um número, real ou complexo, λ tal que

𝐴𝐴𝐴𝐴 = λ𝐴𝐴.

Page 39: Álgebra linear aplicada à ciência de dados

39

O número λ é chamado de autovalor associado ao autovetor 𝐴𝐴. Suponha que 𝐴𝐴 tem tamanho 𝑛𝑛 × 𝑚𝑚, então, para 𝐴𝐴𝐴𝐴 fazer sentido, 𝐴𝐴 deve pertencer ao 𝑅𝑅𝑚𝑚.

Porém, por outro lado, 𝐴𝐴𝐴𝐴 ∈ 𝑅𝑅𝑛𝑛. Como 𝐴𝐴𝐴𝐴 = λ𝐴𝐴, isso significa que 𝐴𝐴 ∈ 𝑅𝑅𝑛𝑛. Portanto 𝑛𝑛 = 𝑚𝑚, e a matriz 𝐴𝐴 deve ser quadrada.

A intuição geométrica dos autovetores é que são as direções do espaço que não mudam com a aplicação da matriz 𝐴𝐴.

Observe que a intuição geométrica nos ajuda a fornecer informações acerca dos autovalores e autovetores de uma matriz.

Exemplo: autovalores e autovetores da matriz de rotação (pelo ângulo π/2):

A matriz 𝐴𝐴 admite autovalor real? Isto é, existem λ ∈ 𝑅𝑅 e 𝐴𝐴 ∈ 𝑹𝑹2, 𝐴𝐴 não nulo, tal que 𝐴𝐴𝐴𝐴 =

λ𝐴𝐴? É fácil ver, mesmo sem calculá-los, que não existem λ ∈ 𝑹𝑹 e 𝐴𝐴 ∈ 𝑹𝑹2, 𝐴𝐴 não nulo, tais que 𝐴𝐴𝐴𝐴 = λ𝐴𝐴.

De fato, a rotação não altera o comprimento do vetor. Dessa forma, devemos ter |𝐴𝐴𝐴𝐴| = |𝐴𝐴|, portanto, se existir tal λ ∈ 𝑹𝑹, devemos ter |𝜆𝜆| = 1, o que implica que 𝜆𝜆 = 1 ou 𝜆𝜆 = −1. Ou seja, se 𝜆𝜆 = 1 deveríamos ter um vetor 𝐴𝐴 tal que após o rotacionarmos por um ângulo de 𝜋𝜋/2, o resultado seria o próprio 𝐴𝐴, ou seja, impossível. Da mesma forma, se 𝜆𝜆 = −1, deveríamos ter um vetor 𝐴𝐴 tal que após o rotacionarmos por um ângulo de 𝜋𝜋/2, o resultado seria −𝐴𝐴, o que também é impossível. Dessa forma, a matriz 𝐴𝐴 não possui autovalores reais.

Mais adiante, vamos calcular os autovalores de 𝐴𝐴 explicitamente. Exemplo: autovalores e autovetores da matriz de reflexão (pela reta 𝑦𝑦 = 𝐴𝐴):

A reflexão pela reta 𝑦𝑦 = 𝐴𝐴 leva um vetor 𝐴𝐴 = (𝐴𝐴,𝑦𝑦) no vetor 𝐵𝐵𝐴𝐴 = (𝑦𝑦, 𝐴𝐴). Ou seja,

trocam-se as coordenadas. Logo é fácil ver que qualquer vetor não nulo com coordenadas iguais 𝐴𝐴 = 𝑦𝑦, ou seja, vetores da forma 𝐴𝐴 = (𝐴𝐴, 𝐴𝐴) são autovetores, e, como temos 𝐴𝐴 = (𝐴𝐴, 𝐴𝐴) = 𝐵𝐵𝐴𝐴, segue que devemos ter autovalor 1. Note ainda que vetores com coordenadas simétricas também são levados em múltiplos destes. De fato, tome um vetor tal que 𝐴𝐴 = −𝑦𝑦, ou seja, um vetor da forma 𝑤𝑤 = (−𝐴𝐴, 𝐴𝐴). Então 𝑤𝑤 = (−𝐴𝐴, 𝐴𝐴) = −(𝐴𝐴,−𝐴𝐴) = −𝐵𝐵𝑤𝑤. Isso nos diz que −1 também é autovalor.

Em resumo, temos autovetores da forma 𝐴𝐴 = (𝐴𝐴, 𝐴𝐴), 𝐴𝐴 ≠ 0, associados ao autovalor 𝜆𝜆 = 1 e autovetores da forma 𝑤𝑤 = (−𝐴𝐴, 𝐴𝐴), 𝐴𝐴 ≠ 0, associados ao autovalor 𝜆𝜆 = −1.

Page 40: Álgebra linear aplicada à ciência de dados

40

Geometricamente, os autovetores estão nas direções que não mudam pela aplicação da reflexão pela reta 𝑦𝑦 = 𝐴𝐴. Dito isso, temos autovetores paralelos à própria reta 𝑦𝑦 = 𝐴𝐴, e autovetores ortogonais à reta 𝑦𝑦 = 𝐴𝐴.

Cálculo dos autovetores

Para calcularmos os autovetores primeiro devemos descobrir os autovalores. Para tanto, devem-se encontrar as raízes da equação característica:

det(𝐴𝐴 − λ𝐼𝐼) = 0.

De onde vem a equação característica? Se 𝐴𝐴𝐴𝐴 = λ𝐴𝐴, então (𝐴𝐴 − λ𝐼𝐼)𝐴𝐴 = 0, com 𝐴𝐴 ≠ 0, ou

seja, a equação com matriz (𝐴𝐴 − λ𝐼𝐼) possui solução não trivial. Vale a seguinte proposição: Proposição: uma matriz 𝐴𝐴 de dimensão 𝑛𝑛 × 𝑛𝑛 é inversível se, e somente se, det(𝐴𝐴) ≠ 0. Por outro lado, relembre que 𝐴𝐴 possui solução não trivial se, e somente se, 𝐴𝐴 não é inversível.

Portanto 𝐴𝐴 possui solução não trivial se, e somente se, det(𝐴𝐴) = 0. Voltando então ao problema do cálculo de autovalores, existe 𝐴𝐴 não nulo tal que

(𝐴𝐴 − λ𝐼𝐼)𝐴𝐴 = 0 se, e somente se, det(𝐴𝐴 − 𝜆𝜆𝐼𝐼) = 0. É possível mostrar que a função 𝑝𝑝𝐴𝐴(λ) =det(𝐴𝐴 − λ𝐼𝐼) é um polinômio de grau 𝑛𝑛 (onde 𝐴𝐴 é tem tamanho 𝑛𝑛 × 𝑛𝑛).

Sabendo os autovalores, calculam-se os autovetores resolvendo o sistema linear (𝐴𝐴 − λ𝐼𝐼)𝐴𝐴 = 0. Em geral, trabalha-se com matrizes de dimensão 𝑛𝑛 × 𝑛𝑛 com 𝑛𝑛 >> 4. Dessa forma, é

impossível calcular, em geral, esses autovalores, já que não existem soluções por meio de radicais para polinômios gerais de graus maiores ou iguais a 5.

Como o cálculo de autovalores e autovetores costuma ser realizado com apoio computacional, veremos como calculá-los no R.

Para encontrar autovetores no R, utiliza-se a função eigen. A função eigen retorna uma lista com elementos values e vectors. O elemento values contém os autovalores, e estes são dados como um vetor e são ordenados pelo módulo, ou seja, o autovalor de maior módulo é retornado primeiro, etc. O elemento vectors contém a matriz dos autovetores, com os autovetores dados por colunas, cuja ordem corresponde à ordem dos autovalores. Caso você saiba se a matriz é simétrica, ou não, podemos indicar com o argumento symmetric, que ajuda a reduzir erros numéricos e evita que o R cheque se a matriz é simétrica, o que gera custo computacional.

Obs.: os autovetores retornados pelo R são sempre normalizados – possuem norma euclidiana 1 – e, se possível, ortogonais.

Page 41: Álgebra linear aplicada à ciência de dados

41

Exemplo: autovalores e autovetores da matriz de rotação (pelo ângulo π/2):

Vamos, então, calcular os autovalores e os autovetores do exemplo que vimos anteriormente:

A <- rbind(c(0,-1), c(1,0)) ev_A <- eigen(A, symmetric=FALSE) ls(ev_A) ev_A$values ev_A$vectors

Se temos uma matriz 𝑛𝑛 × 𝑚𝑚 no R, digamos 𝑀𝑀, para acessar a 𝑖𝑖-ésima linha fazemos 𝑀𝑀[𝑖𝑖, ] e

para acessar a 𝑗𝑗-ésima coluna fazemos 𝑀𝑀[, 𝑗𝑗]. Dessa forma,

# Autovetor 1: avec1 <- ev_A$vectors[,1] #Autovetor 2: avec2 <- ev_A$vectors[,2] #Autovalor 1: aval1 <- ev_A$values[1] #Autovalor 2: aval2 <- ev_A$values[2] # Matriz * autovetor_1 as.vector(A %*% avec1) # lambda_1 * autovetor_1 aval1 * avec1

Obtemos, então, que os autovalores são os complexos não reais: 𝜆𝜆1= i e 𝜆𝜆2 = −𝑖𝑖. Os autovetores são os múltiplos de

𝐴𝐴1 = (1,−𝑖𝑖) e

𝐴𝐴2 = (1, 𝑖𝑖). Um bom exercício é calcular esses autovalores e autovetores manualmente. Nesse caso, é

possível, pois 𝑛𝑛 = 2, desse modo, podemos calcular as raízes do polinômio característico explicitamente.

Exemplo: autovalores e autovetores da matriz de reflexão (pela reta 𝑦𝑦 = 𝐴𝐴):

Page 42: Álgebra linear aplicada à ciência de dados

42

Vamos, agora, calcular os autovalores e os autovetores de 𝐵𝐵 no R:

B <- rbind(c(0,1),c(1,0)) ev_B = eigen(B, symmetric=TRUE) ev_B$values ev_B$vectors # Autovetor 1: avecB1 <- ev_B$vectors[,1] #Autovetor 2: avecB2 <- ev_B$vectors[,2] #Autovalor 1: avalB1 <- ev_B$values[1] #Autovalor 2: avalB2 <- ev_B$values[2] # Matriz * autovetor_1 as.vector(B %*% avecB1) # lambda_1 * autovetor_1 avalB1 * avecB1 # Matriz * autovetor_1 as.vector(B %*% avecB2) # lambda_1 * autovetor_1 avalB2 * avecB2

Vemos, então, que, como discutido anteriormente, os autovalores são 𝜆𝜆1 = 1 e 𝜆𝜆2 = −1

com autovetores sendo os múltiplos de 𝐴𝐴1 = (1,1) e 𝐴𝐴2 = (−11).

Aplicações dos autovalores e dos autovetores

Em muitos casos, existem bases de autovetores, isto é, existem autovetores 𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑛𝑛 tais

que dado qualquer vetor 𝑢𝑢 ∈ 𝑹𝑹𝑛𝑛, existem α1, … ,α𝑛𝑛 ∈ 𝑹𝑹 tais que

𝑢𝑢 = α1𝐴𝐴1 + ⋯+ α𝑛𝑛𝐴𝐴𝑛𝑛. Existe um teorema que fornece condições para a existência de uma base ortonormal de

autovetores: Teorema espectral: seja 𝐴𝐴 uma matriz simétrica de tamanho 𝑛𝑛 × 𝑛𝑛. Então todos os

autovalores de 𝐴𝐴 são reais, e 𝐴𝐴 possui uma base ortonormal de autovetores. Quando temos uma base de autovetores, temos as seguintes importantes vantagens: 1. cálculo de 𝐴𝐴𝑘𝑘𝐴𝐴 e 2. diagonalização.

Page 43: Álgebra linear aplicada à ciência de dados

43

Vamos começar com a primeira vantagem, ou seja, com o cálculo de 𝐴𝐴𝑘𝑘𝐴𝐴. Dessa forma, seja 𝐴𝐴1, … , 𝐴𝐴𝑛𝑛 uma base de autovetores de 𝐴𝐴 com autovalores, possivelmente

complexos, λ1, … , λ𝑛𝑛 ∈ 𝑪𝑪. Então, para cada 𝑖𝑖

𝐴𝐴𝑘𝑘𝐴𝐴𝑖𝑖 = 𝐴𝐴𝑘𝑘−1(𝐴𝐴𝐴𝐴𝑖𝑖) = 𝐴𝐴𝑘𝑘−1(λ𝑖𝑖𝐴𝐴𝑖𝑖) = λ𝑖𝑖𝐴𝐴𝑘𝑘−1𝐴𝐴𝑖𝑖 = ⋯ = λ𝑖𝑖𝑘𝑘𝐴𝐴𝑖𝑖 . Além disso, como temos uma base de autovetores, dado 𝐴𝐴 ∈ 𝑹𝑹𝑛𝑛, existem α1, … , α𝑛𝑛 ∈ 𝑅𝑅 tais que

𝐴𝐴 = α1𝐴𝐴1 + ⋯+ α𝑛𝑛𝐴𝐴𝑛𝑛. Portanto

Consequência: se 𝐴𝐴 admite uma base de autovetores, e todos os seus autovalores estão dentro

do círculo unitário, isto é, para todo 𝑖𝑖, |λ𝑖𝑖| < 1, então para todo 𝐴𝐴 ∈ 𝑹𝑹𝑛𝑛

lim𝑘𝑘→∞

|𝐴𝐴𝑘𝑘𝐴𝐴| = 0.

Vamos, agora, à segunda vantagem, ou seja, a diagonalização de matrizes. Para tanto, suponha que uma matriz 𝐴𝐴 possua uma base de autovetores. Então existem

autovetores 𝐴𝐴1, … , 𝐴𝐴𝑛𝑛 e autovalores λ1, … , λ𝑛𝑛 ∈ 𝑪𝑪 tais que para todo 𝑖𝑖

𝐴𝐴𝐴𝐴𝑖𝑖 = λ𝑖𝑖𝐴𝐴𝑖𝑖. Defina por 𝑉𝑉 a matriz cuja 𝑖𝑖-ésima coluna é dada por 𝐴𝐴𝑖𝑖. A condição acima nos diz que

𝐴𝐴𝑉𝑉 = 𝑉𝑉Λ, em que Λ é a matriz cujas entradas diagonais são λ1, … , λ𝑛𝑛. Observe que Λ aparece do lado direito porque os autovetores são as colunas de 𝑉𝑉. Como as

colunas de 𝑉𝑉 são linearmente independentes, o posto de 𝑉𝑉 é 𝑛𝑛, e pelo teorema do núcleo e imagem, a dimensão do núcleo de 𝑉𝑉 é 0. Isto é, o núcleo de 𝑉𝑉 é trivial.

Page 44: Álgebra linear aplicada à ciência de dados

44

Dessa forma, 𝑉𝑉 é inversível. Multiplicando 𝑉𝑉−1 pela esquerda, obtemos:

Λ = 𝑉𝑉−1𝐴𝐴𝑉𝑉. Analogamente, multiplicando 𝑉𝑉−1 pela direita, obtemos:

𝐴𝐴 = 𝑉𝑉Λ𝑉𝑉−1. Daí, por exemplo, temos como consequência que

𝐴𝐴𝑘𝑘 = 𝑉𝑉Λ𝑘𝑘𝑉𝑉−1, e Λ𝑘𝑘 é a matriz diagonal com entradas λ1𝑘𝑘, … , λ𝑛𝑛𝑘𝑘 . Obs.: se os autovetores forem ortogonais, não é necessário inverter 𝑉𝑉. De fato, construa 𝑉𝑉

como a matriz formada pelos autovetores normalizados. Logo teremos um conjunto ortonormal de autovetores, e assim a matriz 𝑉𝑉 é ortogonal. Dessa forma, 𝑉𝑉−1 = 𝑉𝑉⊤.

Obs.: em virtude do que vimos acima e do teorema espectral, se a matriz 𝐴𝐴 é simétrica, então 𝐴𝐴 admite uma base ortonormal de autovetores. Portanto, se 𝑉𝑉 é a matriz com os autovetores (ortonormais) como colunas, a matriz 𝑉𝑉 é ortogonal. Dessa forma,

Λ = 𝑉𝑉⊤𝐴𝐴𝑉𝑉.

Obs.: como o R sempre que possível retorna autovetores ortonormais, sempre que a matriz

for simétrica, não há necessidade de inverter 𝑉𝑉, pois 𝑉𝑉 já será uma matriz ortogonal. Obs.: no caso de vetores com coordenadas complexas, o produto escalar é dado por 𝐴𝐴 ⋅ 𝑦𝑦 =

𝐴𝐴⊤𝑦𝑦. Desse modo, vetores ortonormais não formarão uma matriz ortogonal. Nesse caso, a matriz

será unitária, isto é, uma matriz 𝑈𝑈 tal que 𝑈𝑈∗𝑈𝑈 = 𝐼𝐼, em que 𝑈𝑈∗ = 𝑈𝑈⊤

, e 𝑈𝑈 indica a matriz formada pelos complexos conjugados dos elementos de 𝑈𝑈.

Obs.: se os autovalores forem complexos, os seus autovetores podem possuir coordenadas complexas. Se 𝑉𝑉 for complexa, o R tenta retornar a matriz 𝑉𝑉 dos autovetores unitária.

Obs.: note que, pela definição, se 𝑈𝑈 é unitária, então 𝑈𝑈−1 = 𝑈𝑈∗. Com isso, caso a matriz seja unitária, pode-se reduzir muito o custo computacional da inversão ao tomar a transposta do conjugado, conhecida como adjunta, da matriz. Nesse caso, a diagonalização será dada por

Λ = 𝑉𝑉∗𝐴𝐴𝑉𝑉.

Obs.: para obter a adjunta – o conjugado da transposta – de uma matriz 𝐴𝐴 no R, utilize a

função Conj(t(A)).

Page 45: Álgebra linear aplicada à ciência de dados

45

Antes de vermos um exemplo de diagonalização no R, vejamos como inverter matrizes no R: podemos utilizar algumas funções. Para matrizes em geral, costuma-se utilizar função solve().

Exemplos no R

Consideremos as matrizes 𝐴𝐴 e 𝐵𝐵 definidas acima, isto é,

a matriz de rotação pelo ângulo 𝜋𝜋2 e

a matriz de reflexão pela reta 𝑦𝑦 = 𝐴𝐴. Obs.: o R já retorna a matriz de autovetores no formato de diagonalização. Comecemos pela matriz 𝐵𝐵 que possui autovalores e autovetores reais:

avec_matriz_B <- ev_B$vectors

Como 𝐵𝐵 é simétrica, já sabemos que os autovetores são ortonormais. Logo a matriz dos

autovetores é ortogonal.

print("Diagonalizando") t(avec_matriz_B) %*% B %*% avec_matriz_B print("Isto é equivalente a (porém este que usa inversão é menos eficiente):") solve(avec_matriz_B) %*% B %*% avec_matriz_B

Agora, a matriz 𝐴𝐴, que contém autovalores e autovetores complexos não reais:

A = rbind(c(0,-1),c(1,0)) ev_A <- eigen(A, symmetric=FALSE) avec_matriz_A <- ev_A$vectors

Note que a matriz possui entradas complexas:

avec_matriz_A print("Vejamos se a matriz é unitária:")

Page 46: Álgebra linear aplicada à ciência de dados

46

Conj(t(avec_matriz_A)) %*% avec_matriz_A print("Diagonalizando:") Conj(t(avec_matriz_A)) %*% A %*% avec_matriz_A print("Isto é equivalente a (porém este que usa inversão é menos eficiente):") solve(avec_matriz_A) %*% A %*% avec_matriz_A

Estudo de formas quadráticas

Vejamos, agora, definições e resultados sobre formas quadráticas. Aplicaremos esses resultados ao estudo das componentes principais.

Uma forma quadrática em 𝑹𝑹𝑛𝑛 é uma função 𝑞𝑞:𝑹𝑹𝑛𝑛 → 𝑹𝑹 tal que existe uma matriz 𝐴𝐴 de dimensão 𝑛𝑛 × 𝑛𝑛 tal que

𝑞𝑞(𝐴𝐴) = 𝐴𝐴 ⋅ (𝐴𝐴𝐴𝐴) = 𝐴𝐴⊤(𝐴𝐴𝐴𝐴).

Obs.: note que, como para todo 𝐴𝐴 ∈ 𝑹𝑹𝑛𝑛 temos 𝑞𝑞(𝐴𝐴) ∈ R, segue que 𝑞𝑞(𝐴𝐴) = �𝑞𝑞(𝐴𝐴)�⊤

, pois a transposta de um número é o próprio número. Daí,

𝑞𝑞(𝐴𝐴) = �𝑞𝑞(𝐴𝐴)�⊤

= (𝐴𝐴⊤𝐴𝐴𝐴𝐴)⊤ = 𝐴𝐴⊤𝐴𝐴⊤𝐴𝐴. Portanto 𝑞𝑞(𝐴𝐴) = 𝐴𝐴⊤𝐴𝐴𝐴𝐴 = 𝐴𝐴⊤𝐴𝐴⊤𝐴𝐴, o que implica que

𝑞𝑞(𝐴𝐴) = 𝐴𝐴⊤ �𝐴𝐴 + 𝐴𝐴⊤

2� 𝐴𝐴.

Faça 𝑆𝑆 = (𝐴𝐴 + 𝐴𝐴⊤)/2 e note que

𝑆𝑆⊤ = �𝐴𝐴 + 𝐴𝐴⊤

2�⊤

=𝐴𝐴⊤ + 𝐴𝐴

2= 𝑆𝑆.

Portanto 𝑆𝑆 é simétrica. Dessa forma,

𝑞𝑞(𝐴𝐴) = 𝐴𝐴⊤𝑆𝑆𝐴𝐴, em que 𝑆𝑆 é simétrica. Conclusão: dada uma forma quadrática 𝑞𝑞(𝐴𝐴) = 𝐴𝐴⊤𝐴𝐴𝐴𝐴, podemos supor sem perda de

generalidade que 𝐴𝐴 é simétrica, pois, se o não for, basta trocamos 𝐴𝐴 por 𝑆𝑆 = (𝐴𝐴 + 𝐴𝐴⊤)/2.

Page 47: Álgebra linear aplicada à ciência de dados

47

Forma quadráticas e matrizes positivas definidas

Vamos fornecer uma série de definições que serão úteis no estudo das formas quadráticas. Definição: uma forma quadrática é dita positiva definida se

𝐴𝐴 ≠ 0 ⇒ 𝑞𝑞(𝐴𝐴) > 0, isto é, se 𝐴𝐴 é não nulo, então 𝐴𝐴⊤𝐴𝐴𝐴𝐴 > 0. De forma similar, definem-se formas quadráticas negativas definidas, não negativas definidas

e não positivas definidas. Como matrizes quadradas induzem formas quadráticas, essas definições para formas

quadráticas fornecem definições análogas para matrizes. Definição: uma matriz quadrada 𝐴𝐴 é dita positiva definida (resp., negativa def., não positiva

def., não negativa def.) se a forma quadrática 𝑞𝑞(𝐴𝐴) = 𝐴𝐴⊤𝐴𝐴𝐴𝐴 for positiva definida (resp., negativa def., não positiva def., não negativa def.).

Vale a seguinte caracterização de matrizes positivas definidas em termos de autovalores. Afirmação: uma matriz simétrica 𝑆𝑆 é positiva definida se, e somente se, todos os seus

autovalores são positivos. Da mesma forma, existe uma caracterização análoga para matrizes negativas definidas, não

negativas definidas e não positivas definidas.

Otimização de formas quadráticas

Com o estudo de autovalores e autovetores podemos realizar facilmente a otimização de formas quadráticas. Essa otimização é a essência por trás da análise de componentes principais.

Afirmação: dada uma forma quadrática 𝑞𝑞(𝐴𝐴) = 𝐴𝐴⊤𝑆𝑆𝐴𝐴, em que 𝑆𝑆 é simétrica, a direção que maximiza a forma quadrática é a direção do autovetor associado ao maior autovalor, isto é, se λ1 ≥λ2 ≥ ⋯ ≥ λ𝑛𝑛 e os seus respectivos autovetores são 𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑛𝑛, então

𝑎𝑎𝑟𝑟𝑎𝑎𝑚𝑚𝑎𝑎𝐴𝐴𝑣𝑣≠0𝑞𝑞(𝐴𝐴)|𝐴𝐴|2

= 𝑎𝑎𝑟𝑟𝑎𝑎𝑚𝑚𝑎𝑎𝐴𝐴𝑣𝑣≠0𝐴𝐴⊤𝑆𝑆𝐴𝐴|𝐴𝐴|2

= 𝑎𝑎𝑟𝑟𝑎𝑎𝑚𝑚𝑎𝑎𝐴𝐴|𝑤𝑤|=1 𝑤𝑤⊤𝑆𝑆𝑤𝑤 = 𝐴𝐴1.

Além disso, o valor do máximo é dado pelo maior autovalor:

max𝑣𝑣≠0

𝑞𝑞(𝐴𝐴)|𝐴𝐴|2

= max𝑣𝑣≠0

𝐴𝐴⊤𝑆𝑆𝐴𝐴|𝐴𝐴|2

= max|𝑤𝑤|=1

𝑤𝑤⊤ 𝑆𝑆𝑤𝑤 = λ1.

Page 48: Álgebra linear aplicada à ciência de dados

48

Vamos então verificar essa afirmação. Seja 𝐴𝐴 ≠ 0 e use a conta que já fizemos para concluir que:

Por outro lado, observe que:

Combinando os dois resultados, temos:

𝐴𝐴⊤𝑆𝑆𝐴𝐴 ≤ λ1|𝐴𝐴|2 portanto

𝐴𝐴⊤𝑆𝑆𝐴𝐴|𝐴𝐴|2

≤ λ1.

Como 𝐴𝐴1⊤𝑆𝑆𝐴𝐴1|𝐴𝐴1|2

=𝐴𝐴1λ1𝐴𝐴1|𝐴𝐴1|2

= λ1,

segue que o máximo é atingido no autovetor 𝐴𝐴1 com valor máximo λ1. Com isso,

conseguimos mostrar que a direção que maximiza a forma quadrática é a direção do autovetor associado ao maior autovalor.

É possível “excluir” a direção do autovetor associado ao maior autovalor, isto é, considerar as direções em [𝐴𝐴1]⊥ e obter os seguintes resultados:

𝑎𝑎𝑟𝑟𝑎𝑎𝑚𝑚𝑎𝑎𝐴𝐴�v≠0,v∈[v1]⊥�𝑞𝑞(𝐴𝐴)|𝐴𝐴|2 = 𝑎𝑎𝑟𝑟𝑎𝑎𝑚𝑚𝑎𝑎𝐴𝐴�𝑣𝑣≠0,𝑣𝑣∈[𝑣𝑣1]⊥�

𝐴𝐴⊤𝑆𝑆𝐴𝐴|𝐴𝐴|2 = 𝑎𝑎𝑟𝑟𝑎𝑎𝑚𝑚𝑎𝑎𝐴𝐴�|𝑤𝑤|=1,𝑤𝑤\𝑖𝑖𝑛𝑛 [𝑣𝑣1]⊥�𝑤𝑤⊤𝑆𝑆𝑤𝑤

= 𝐴𝐴2 E

𝑚𝑚𝑎𝑎𝐴𝐴�v≠0,v∈[v1]⊥�𝑞𝑞(𝐴𝐴)|𝐴𝐴|2 = 𝑚𝑚𝑎𝑎𝐴𝐴�𝑣𝑣≠0,𝑣𝑣∈[𝑣𝑣1]⊥�

𝐴𝐴⊤𝑆𝑆𝐴𝐴|𝐴𝐴|2 = 𝑚𝑚𝑎𝑎𝐴𝐴�|𝑤𝑤|=1,𝑤𝑤∈ [𝑣𝑣1]⊥�𝑤𝑤⊤𝑆𝑆𝑤𝑤 = 𝜆𝜆2.

Page 49: Álgebra linear aplicada à ciência de dados

49

Dessa forma: 1. a direção que maximiza a forma quadrática é a direção do autovetor associado ao maior

autovalor; 2. ao considerarmos o complemento ortogonal dessa direção, a próxima direção a maximizar

a forma quadrática é dada pela direção do autovetor associado ao segundo maior autovalor, e

3. repetindo, sucessivamente, as direções que maximizam a forma quadrática são dadas pelas direções dos autovetores.

Page 50: Álgebra linear aplicada à ciência de dados
Page 51: Álgebra linear aplicada à ciência de dados

O objetivo deste módulo é aplicar o conhecimento visto no Módulo I a temas bastante utilizados na ciência de dados. Começaremos estudando análise de componentes principais, fornecendo as definições de média amostral, variância amostral e covariância amostral.

Veremos que a covariância amostral induz uma forma quadrática. Assim, podemos pensar na análise de componentes principais como o estudo da forma quadrática induzida pela matriz de covariâncias. Isto é, as componentes principais são obtidas por meio da otimização desta forma quadrática.

Na última parte deste módulo veremos como utilizar projeções ortogonais para realizar a regressão linear. Mais precisamente, veremos como o estimador de mínimos quadrados é justamente a projeção ortogonal sobre o espaço coluna da matriz de dados.

Análise de componentes principais

Forma quadrática dada pela matriz de covariâncias

Vamos considerar a matriz de covariâncias amostrais. Suponha que temos um conjunto de dados 𝐴𝐴 = (𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑛𝑛). A média amostral de 𝐴𝐴 é

dada por

𝐴𝐴 =1𝑛𝑛�𝐴𝐴𝑖𝑖

𝑛𝑛

𝑖𝑖=1

.

MÓDULO II – APLICAÇÕES DA ÁLGEBRA LINEAR À CIÊNCIA DE DADOS

Page 52: Álgebra linear aplicada à ciência de dados

52

A variância amostral de 𝐴𝐴 é dada por

𝐴𝐴𝑎𝑎𝑟𝑟(𝐴𝐴) = 1𝑛𝑛−1

∑ (𝐴𝐴𝑖𝑖 − 𝐴𝐴)2𝑛𝑛𝑖𝑖=1 .

Suponha que temos dois conjuntos de dados 𝐴𝐴 = (𝐴𝐴1, 𝐴𝐴2, … , 𝐴𝐴𝑛𝑛) e 𝑦𝑦 = (𝑦𝑦1,𝑦𝑦2, … ,𝑦𝑦𝑛𝑛). A covariância amostral entre 𝐴𝐴 e 𝑦𝑦 é dada por

𝑐𝑐𝑐𝑐𝐴𝐴(𝐴𝐴,𝑦𝑦) =1

𝑛𝑛 − 1�(𝐴𝐴𝑖𝑖 − 𝐴𝐴)(𝑦𝑦𝑖𝑖 − 𝑦𝑦)𝑛𝑛

𝑖𝑖=1

.

Valem as seguintes propriedades: Dados α,β ∈ 𝑹𝑹, então

α𝐴𝐴 + β𝑦𝑦 = α𝐴𝐴 + β𝑦𝑦, 𝑐𝑐𝑐𝑐𝐴𝐴(α𝐴𝐴, β𝑦𝑦) = αβ𝑐𝑐𝑐𝑐𝐴𝐴(𝐴𝐴,𝑦𝑦),

𝐴𝐴𝑎𝑎𝑟𝑟(𝐴𝐴) = 𝑐𝑐𝑐𝑐𝐴𝐴(𝐴𝐴, 𝐴𝐴), e, dado 𝑧𝑧 = (𝑧𝑧1, 𝑧𝑧2, … , 𝑧𝑧𝑛𝑛),

𝑐𝑐𝑐𝑐𝐴𝐴(𝐴𝐴,𝑦𝑦 + 𝑧𝑧) = 𝑐𝑐𝑐𝑐𝐴𝐴(𝐴𝐴,𝑦𝑦) + 𝑐𝑐𝑐𝑐𝐴𝐴(𝐴𝐴, 𝑧𝑧). Defina 𝐴𝐴� = 𝐴𝐴 − 𝐴𝐴 = (𝐴𝐴1 − 𝐴𝐴, … , 𝐴𝐴𝑛𝑛 − 𝐴𝐴) 𝑒𝑒 𝑦𝑦� = 𝑦𝑦 − 𝑦𝑦 = (𝑦𝑦1 − 𝑦𝑦, … , 𝑦𝑦𝑛𝑛 − 𝑦𝑦). Observe que segue diretamente da definição que

𝑐𝑐𝑐𝑐𝐴𝐴(𝐴𝐴,𝑦𝑦) = 𝑐𝑐𝑐𝑐𝐴𝐴(𝐴𝐴�,𝑦𝑦�). Em termos de 𝐴𝐴� e 𝑦𝑦�, temos

𝑐𝑐𝑐𝑐𝐴𝐴(𝐴𝐴,𝑦𝑦) = 𝑐𝑐𝑐𝑐𝐴𝐴(𝐴𝐴�,𝑦𝑦�) =1

𝑛𝑛 − 1�𝐴𝐴�𝑖𝑖𝑦𝑦𝚤𝚤�𝑛𝑛

𝑖𝑖=1

=𝐴𝐴� ⋅ 𝑦𝑦�𝑛𝑛 − 1

=𝐴𝐴�⊤𝑦𝑦�𝑛𝑛 − 1

.

Page 53: Álgebra linear aplicada à ciência de dados

53

Matriz de covariâncias

Sejam 𝑋𝑋1 = (𝐴𝐴11, 𝐴𝐴21, … , 𝐴𝐴𝑛𝑛1), … ,𝑋𝑋𝑘𝑘 = (𝐴𝐴1𝑘𝑘, … , 𝐴𝐴𝑛𝑛𝑘𝑘) uma coleção de 𝑘𝑘 vetores de dados. Considere a matriz 𝑋𝑋, de tamanho 𝑛𝑛 × 𝑘𝑘, contendo estes vetores como colunas:

A matriz de covariâncias de 𝑋𝑋 é a matriz 𝑘𝑘 × 𝑘𝑘 dada por

Considere os vetores centralizados: 𝑋𝑋1� = 𝑋𝑋1 − 𝑋𝑋1 = �𝑋𝑋11 − 𝑋𝑋1, … ,𝑋𝑋𝑛𝑛1 − 𝑋𝑋1�, …, 𝑋𝑋𝑘𝑘� =

𝑋𝑋𝑘𝑘 − 𝑋𝑋𝑘𝑘 = �𝑋𝑋1𝑘𝑘 − 𝑋𝑋𝑘𝑘, … ,𝑋𝑋𝑛𝑛𝑘𝑘 − 𝑋𝑋𝑘𝑘�. Em termos de 𝑋𝑋1�, … ,𝑋𝑋𝑘𝑘�, a matriz de covariâncias amostrais pode ser escrita como:

Escreva, agora,

Note que

Page 54: Álgebra linear aplicada à ciência de dados

54

A matriz de covariâncias induz à seguinte forma quadrática em 𝑹𝑹𝑘𝑘:

𝑞𝑞(𝑢𝑢) = 𝑢𝑢⊤𝐶𝐶𝑐𝑐𝐴𝐴(𝑋𝑋)𝑢𝑢 =1

𝑛𝑛 − 1𝑢𝑢⊤𝑋𝑋⊤�𝑋𝑋�𝑢𝑢.

Note que 𝐶𝐶𝑐𝑐𝐴𝐴(𝑋𝑋) é não negativa definida. De fato, para todo 𝑢𝑢 ∈ 𝑹𝑹𝑘𝑘,

𝑞𝑞(𝑢𝑢) =1

𝑛𝑛 − 1𝑢𝑢⊤𝑋𝑋�⊤𝑋𝑋�𝑢𝑢 =

1𝑛𝑛 − 1

�𝑋𝑋�𝑢𝑢�⊤�𝑋𝑋�𝑢𝑢� =

|𝑋𝑋�𝑢𝑢|2

𝑛𝑛 − 1≥ 0.

Na realidade, temos uma representação melhor para a forma quadrática 𝑞𝑞. Seja 𝑢𝑢 =

(𝑢𝑢1, … ,𝑢𝑢𝑘𝑘), é possível mostrar que

𝑞𝑞(𝑢𝑢) =|𝑋𝑋�𝑢𝑢|2

𝑛𝑛 − 1= 𝐴𝐴𝑎𝑎𝑟𝑟(𝑢𝑢1𝐴𝐴1 + ⋯+ 𝑢𝑢𝑘𝑘𝐴𝐴𝑘𝑘).

Dessa forma, a forma quadrática 𝑞𝑞(𝑢𝑢) induzida pela matriz de covariâncias fornece a variância amostral da combinação linear dos vetores coluna 𝑋𝑋1, … ,𝑋𝑋𝑘𝑘 pelos coeficientes dados pelas coordenadas de 𝑢𝑢.

Diante disso, as duas perguntas naturais são: 1. Qual é a direção que fornece a maior variância possível? 2. É possível extrair um subconjunto “pequeno” de combinações lineares dos vetores coluna

de 𝑋𝑋 que “expliquem” a maior parte da variância? Já sabemos a resposta para a primeira pergunta. A direção de maior variância amostral é dada

pela direção do autovetor de 𝑋𝑋�⊤𝑋𝑋�

𝑛𝑛−1 associada ao maior autovalor.

Além disso, sabemos que ao “excluirmos” essa direção, a próxima direção de maior variância será a do autovetor associado ao segundo maior autovalor, e assim sucessivamente.

Análise de componentes principais

As componentes principais de uma matriz formada por vetores colunas de dados 𝑋𝑋 =[𝑋𝑋1;𝑋𝑋2;⋯ ;𝑋𝑋𝑘𝑘] são as combinações lineares desses vetores colunas em que os coeficientes das

combinações são dados pelos autovetores (ortogonais e normalizados) de 𝑋𝑋�⊤𝑋𝑋�

𝑛𝑛−1.

Assim a primeira componente principal de 𝑋𝑋 é a combinação linear 𝑢𝑢1𝐴𝐴�1 + ⋯𝑢𝑢𝑘𝑘𝐴𝐴�𝑘𝑘, com |𝑢𝑢|2 = 1, tal que a variância 𝐴𝐴𝑎𝑎𝑟𝑟(𝑢𝑢1𝐴𝐴1 + ⋯+ 𝑢𝑢𝑘𝑘𝐴𝐴𝑘𝑘) = 𝐴𝐴𝑎𝑎𝑟𝑟(𝑢𝑢1𝐴𝐴�1 + ⋯𝑢𝑢𝑘𝑘𝐴𝐴�𝑘𝑘) é a maior possível, e assim sucessivamente.

Page 55: Álgebra linear aplicada à ciência de dados

55

Sejam 𝐴𝐴1, … , 𝐴𝐴𝑘𝑘 os autovetores associados aos autovalores λ1 ≥ ⋯ ≥ λ𝑘𝑘 ≥ 0. Então

𝑞𝑞(𝐴𝐴𝑖𝑖) = λ𝑖𝑖 = 𝐴𝐴𝑎𝑎𝑟𝑟�𝐴𝐴1𝑖𝑖𝑋𝑋�1 + ⋯𝐴𝐴𝑘𝑘𝑖𝑖𝑋𝑋�𝑘𝑘�. Note, agora, que a “variância total” dos dados em 𝑋𝑋 é:

𝐴𝐴𝑎𝑎𝑟𝑟(𝑋𝑋1) + 𝐴𝐴𝑎𝑎𝑟𝑟(𝑋𝑋2) + ⋯+ 𝐴𝐴𝑎𝑎𝑟𝑟(𝑋𝑋𝑘𝑘) = 𝑡𝑡𝑟𝑟�𝐶𝐶𝑐𝑐𝐴𝐴(𝑋𝑋)�. Seja, agora, 𝑉𝑉 a matriz cujas colunas são dadas pelos autovetores, associados de forma

ordenada aos autovalores, de 𝑋𝑋�⊤𝑋𝑋�

𝑛𝑛−1. Seja Λ a matriz diagonal cujas entradas são os seus autovalores

ordenados, λ1 ≥ ⋯ ≥ λ𝑘𝑘. Desse modo, a diagonalização de 𝐶𝐶𝑐𝑐𝐴𝐴(𝑋𝑋) é dada por

Λ = 𝑉𝑉−1𝐶𝐶𝑐𝑐𝐴𝐴(𝑋𝑋)𝑉𝑉. Logo temos pela propriedade fundamental do traço que (fazendo 𝐴𝐴 = 𝑉𝑉−1𝐶𝐶𝑐𝑐𝐴𝐴(𝑋𝑋) e 𝐵𝐵 = 𝑉𝑉):

𝑡𝑡𝑟𝑟(Λ) = 𝑡𝑡𝑟𝑟(𝑉𝑉−1𝐶𝐶𝑐𝑐𝐴𝐴(𝑋𝑋)𝑉𝑉) = 𝑡𝑡𝑟𝑟�𝑉𝑉𝑉𝑉−1𝐶𝐶𝑐𝑐𝐴𝐴(𝑋𝑋)� = 𝑡𝑡𝑟𝑟�𝐶𝐶𝑐𝑐𝐴𝐴(𝑋𝑋)�. Portanto segue que

λ1 + ⋯+ λ𝑘𝑘

= 𝐴𝐴𝑎𝑎𝑟𝑟(𝑋𝑋1) + ⋯+ 𝐴𝐴𝑎𝑎𝑟𝑟(𝑋𝑋𝑘𝑘).

Variância explicada pelos autovetores

Dessa forma, a variância da combinação induzida pelo autovetor associada ao maior autovalor representa

λ1

𝐴𝐴𝑎𝑎𝑟𝑟(𝐴𝐴1) + ⋯+ 𝐴𝐴𝑎𝑎𝑟𝑟(𝐴𝐴𝑘𝑘) × 100%

da variância total. Se considerarmos as 𝑝𝑝 primeiras componentes principais, elas explicarão

λ1 + ⋯+ λ𝑝𝑝𝐴𝐴𝑎𝑎𝑟𝑟(𝐴𝐴1) + ⋯+ 𝐴𝐴𝑎𝑎𝑟𝑟(𝐴𝐴𝑘𝑘) × 100%

da variância total.

Page 56: Álgebra linear aplicada à ciência de dados

56

Por fim, note que, se considerarmos todas as componentes principais, a variância explicada será

λ1 + ⋯+ λ𝑘𝑘𝐴𝐴𝑎𝑎𝑟𝑟(𝐴𝐴1) + ⋯+ 𝐴𝐴𝑎𝑎𝑟𝑟(𝐴𝐴𝑘𝑘) × 100% = 100%

da variância total.

Componentes principais no R

Vamos começar exemplificando com duas variáveis. Observe que, com duas variáveis, é possível ter ideia das direções das componentes principais sem efetivamente calculá-las.

# Vamos gerar u e v seguindo normais independentes u = rnorm(200, mean=10, sd=5) # Média 10 e desvio padrão 5 v = rnorm(200, mean=4, sd=2) # Média 4 e desvio padrão 2 # Defina agora x e y em termos de u e v x = u + v y = u - v X = cbind(x,y) library(ggplot2) Xdf = data.frame(x = x, y = y) ggplot(Xdf) + aes(x=x, y=y) + geom_point()

Figura 9 – Análise de componentes principais

É possível notar que a direção de maior variância aparentemente é aquela paralela ao vetor (1,1).

Page 57: Álgebra linear aplicada à ciência de dados

57

Primeiramente, vamos obter as componentes principais por meio da obtenção dos autovetores. Depois, vamos obtê-las utilizando uma função específica do R.

n = 200 # 200 observações col_medias <- matrix(rep(colMeans(X), each = n), nrow=n) X_til <- X - col_medias

Também podemos realizar essa operação com a função scale:

X_til_2 <- scale(X, scale=FALSE) sum( (X_til_2-X_til)^2)

Defina a matriz S:

S <- (t(X_til) %*% X_til)/(n-1)

Note que 𝑆𝑆 é a matriz de covariância amostral. Podemos verificar utilizando a função cov do R:

sum((cov(X)-S)^2)

Observe que o resultado, caso seja diferente de zero, será negligível, já que ocorrerá por conta

de aproximações numéricas. Na figura 9, acima, temos uma ideia clara sobre quais são as componentes principais. A

primeira componente provavelmente é paralela ao vetor (1,1), e a segunda componente é a ortogonal a esta, isto é, a componente paralela ao vetor (−1,1).

Calculando os autovalores e os autovetores para a obtenção das componentes principais:

ev_S <- eigen(S, symmetric=TRUE) comp_1 <- ev_S$vectors[,1] comp_2 <- ev_S$vectors[,2] As direções: # Primeira componente principal comp_1 # Segunda componente principal comp_2 # Percentual da variância explicada pela primeira componente ev_S$values[1]/sum(diag(S)) * 100 Xdftil <- data.frame(x=X_til[,1], y = X_til[,2]) ggplot(Xdftil) + aes(x=x, y=y) + geom_point()

Page 58: Álgebra linear aplicada à ciência de dados

58

Vemos então que as componentes são, de fato, as que a inspeção visual indicou. Vejamos, na figura 10, a seguir, os dados centralizados juntamente com as componentes principais. A primeira componente aparece na cor azul; e a segunda, na cor vermelha.

ggplot(Xdftil) + aes(x=x, y=y) + geom_point() + geom_abline(intercept = 0, slope = comp_1[2]/comp_1[1], col = 'blue') + geom_abline(intercept = 0, slope = comp_2[2]/comp_2[1], col = 'red')

Figura 10 – Dados centralizados juntamente com as componentes principais

Uma prática bastante comum e, muitas vezes, importante é a de normalizar os dados. Ou

seja, além de centralizá-los, também os dividir pelo desvio padrão. Isso é particularmente útil quando as variáveis estão em escalas muito diferentes.

Vemos abaixo como realizar a normalização dos dados por meio da função scale e, em seguida, calcular as componentes por meio da obtenção dos autovetores.

X_til_scale <- scale(X) S_sc <- t(X_til_scale)%*%X_til_scale ev_S_sc <- eigen(S_sc, symmetric=TRUE) ev_S_sc$values[1]/sum(diag(S_sc)) ev_S_sc$vectors

Podemos obter as componentes principais diretamente no R, sem a necessidade do cálculo

explícito dos autovetores, utilizando a função prcomp:

Page 59: Álgebra linear aplicada à ciência de dados

59

pr_X <- prcomp(X) # As componentes são dadas pelo elemento "rotation": pr_X$rotation print("Compare com as componentes que obtivemos:") data.frame(PC1 = comp_1, PC2 = comp_2, row.names=c("x","y")) #Note que elas coincidem a menos de múltiplos (ou seja, a direção é a mesma)

Scree plot

O scree plot é o plot da variância explicada por cada componente utilizada. A seguir, na figura 11, vemos o scree plot do conjunto de dados que consideramos acima.

library(dplyr) # Vetor de variâncias explicadas: var_expl <- ev_S$values/sum(diag(S)) var_expl_df <- data.frame(Comp_Princ = c(1,2), var_expl = var_expl) var_expl_df %>% ggplot(aes(x=Comp_Princ,y=var_expl))+ geom_point() + geom_line() + scale_x_continuous(breaks=c(1,2))+ labs(title="Scree plot")

Figura 11 – Scree plot do conjunto de dados

Exemplo com dados reais: vamos, agora, considerar outro conjunto de dados mtcars disponível

no pacote datasets do R:

<https://www.rdocumentation.org/packages/datasets/versions/3.6.2/topics/mtcars>.

Page 60: Álgebra linear aplicada à ciência de dados

60

A seguir, vemos as seis primeiras observações desse conjunto de dados:

library(datasets) data("mtcars", package="datasets") head(mtcars)

A data.frame: 6 × 11

mpg cyl disp hp drat wt qsec vs am gear carb

<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>

Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4

Mazda RX4 Wag

21.0 6 160 110 3.90 2.875 17.02 0 1 4 4

Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1

Hornet 4 Drive

21.4 6 258 110 3.08 3.215 19.44 1 0 3 1

Hornet Sportabout

18.7 8 360 175 3.15 3.440 17.02 0 0 3 2

Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Page 61: Álgebra linear aplicada à ciência de dados

61

Vamos remover as variáveis categóricas “vs”, que indica se os cilindros são em V ou em linha; e “am”, que indica se o câmbio é automático ou manual.

mt_novo <- subset(mtcars, select=-c(vs,am))

Vamos, agora, centrar e padronizar, deixando cada coluna com variância amostral 1, para

nenhuma variável dominar apenas por ter escala maior:

mt_ct_sd <- scale(mt_novo)

Na sequência, vamos obter as componentes principais e as variâncias explicadas pelas componentes:

Smt <- t(mt_ct_sd) %*% mt_ct_sd / (nrow(mt_ct_sd)-1) sum( (cov(mt_ct_sd) - Smt)^2 ) ev_Smt <- eigen(Smt, symmetric = TRUE) ev_Smt$vectors[,1] ev_Smt$vectors prcomp(mt_ct_sd)$rotation #Variâncias explicadas: var_expl <- ev_Smt$values/sum(diag(Smt)) var_expl ev_Smt$values cumsum(var_expl)

Vemos, então, que com quatro componentes principais conseguimos “explicar”

aproximadamente 95% da variância amostral do conjunto de dados.

Regressão linear e método dos mínimos quadrados

O nosso objetivo, agora, é aplicar a teoria que vimos, principalmente com relação às projeções ortogonais, ao estudo da regressão linear.

Suponha que temos um vetor numérico 𝑦𝑦 = (𝑦𝑦1, … , 𝑦𝑦𝑛𝑛) contendo variáveis de interesse. Suponha ainda que se acredita que exista uma relação entre a variável 𝑦𝑦 e as variáveis 𝑋𝑋1, … ,𝑋𝑋𝑘𝑘, que são dadas por vetores numéricos 𝑋𝑋1 = (𝐴𝐴11, … , 𝐴𝐴𝑛𝑛1), … ,𝑋𝑋𝑘𝑘 = (𝐴𝐴1𝑘𝑘, … , 𝐴𝐴𝑛𝑛𝑘𝑘).

Além disso, suponha que se sabe que a relação entre 𝑦𝑦 e as variáveis 𝑋𝑋1, … ,𝑋𝑋𝑘𝑘 não é exatamente linear. Dessa forma, defina a matriz 𝑋𝑋 de tamanho 𝑛𝑛 × 𝑘𝑘 cujas colunas são dadas por 𝑋𝑋1, … ,𝑋𝑋𝑘𝑘. Como a relação entre 𝑋𝑋 e 𝑦𝑦 não é exatamente linear, não é possível resolver o sistema

Page 62: Álgebra linear aplicada à ciência de dados

62

𝑦𝑦 = 𝑋𝑋β, em que β ∈ 𝑹𝑹𝑘𝑘, mas podemos tentar encontrar β ∈ 𝑹𝑹𝑘𝑘 de tal forma que

𝑦𝑦 ≈ 𝑋𝑋𝛽𝛽. Considere, então, o objetivo de aproximar 𝑦𝑦 por combinações lineares das variáveis

𝑋𝑋1, … ,𝑋𝑋𝑘𝑘, isto é, queremos encontrar coeficientes �̂�𝛽1, … , �̂�𝛽𝑘𝑘 tais que

𝑦𝑦𝑖𝑖 = �̂�𝛽1𝐴𝐴𝑖𝑖1 + ⋯+ �̂�𝛽𝑘𝑘𝐴𝐴1𝑘𝑘 + ε𝑖𝑖 e que “erro” ε = (ε1, … , ε𝑛𝑛) seja o “menor” possível. Obs.: podemos ter várias definições de “menor”. Utilizaremos a que diz que o erro é o “menor” possível, se a soma dos seus quadrados, isto é, se

sua norma euclidiana é a menor possível. Dessa forma, procuramos o vetor β� = ��̂�𝛽1, … , �̂�𝛽𝑘𝑘� tal que

|ε|2 = �ε𝑖𝑖2𝑛𝑛

𝑖𝑖=1

é o menor possível. Existem outros estimadores. Por exemplo, na presença de outliers – isto é, uma observação

discrepante que normalmente ocorre por algum erro de medição, digitação, etc., ou por ser efeito de algum evento de probabilidade muito baixa – utilizam-se estimadores que minimizam o valor absoluto dos erros:

|ε|1 = �|ε𝑖𝑖|𝑛𝑛

𝑖𝑖=1

.

O motivo é que para um valor discrepante de algum erro ε𝑖𝑖, o quadrado amplifica muito esse

erro, ao passo que o módulo não amplifica.

O modelo para o qual queremos encontrar o vetor β� tal que

𝑦𝑦𝑖𝑖 = �̂�𝛽1𝐴𝐴𝑖𝑖1 + ⋯+ �̂�𝛽1𝐴𝐴1𝑘𝑘 + ε𝑖𝑖

Page 63: Álgebra linear aplicada à ciência de dados

63

e de tal forma que os “erros” são os “menores”, sob algum critério bem definido, é chamado

de regressão linear. Quando escolhemos o vetor β� tal que |ε|2 é o menor possível, dizemos que realizamos a estimação por mínimos quadrados.

Obs.: é comum considerar o vetor 𝑋𝑋1 como o vetor contendo apenas o número 1, isto é,

𝑋𝑋1 = (1,1, … ,1). Nesse caso, 𝑋𝑋1 é chamado de intercepto e representa o cenário base quando todas as variáveis

são nulas. Obs.: comumente, dizemos que 𝑦𝑦 é a variável resposta (ou variável dependente) e que 𝑋𝑋 são

as covariáveis ou variáveis independentes.

Regressão linear na forma matricial

Observe que podemos escrever a equação da regressão na forma matricial:

𝑦𝑦 = 𝑋𝑋β + ε. Desse modo, queremos minimizar a norma euclidiana dos erros:

|ε|2 = |𝑦𝑦 − 𝑋𝑋β|2. Observe atentamente que queremos minimizar |𝑦𝑦 − 𝑋𝑋β|2. Isto é, queremos encontrar o vetor

β� ∈ 𝑹𝑹𝑘𝑘 tal que

β� = 𝑎𝑎𝑟𝑟𝑎𝑎𝑚𝑚𝑖𝑖𝑛𝑛𝛽𝛽∈𝑹𝑹𝑘𝑘  |𝑦𝑦 − 𝑋𝑋β|2. Relembre que o produto 𝑋𝑋β é a combinação linear dos vetores coluna de 𝑋𝑋. Relembre, ainda,

que o conjunto das combinações lineares dos vetores coluna de 𝑋𝑋 é o espaço coluna de 𝑋𝑋, 𝐶𝐶(𝑋𝑋). Então podemos reescrever a equação anterior como

β� = 𝑎𝑎𝑟𝑟𝑎𝑎𝑚𝑚𝑖𝑖𝑛𝑛𝑦𝑦�∈𝐶𝐶(𝑋𝑋); 𝑦𝑦�=𝑋𝑋β |𝑦𝑦 − 𝑦𝑦�|2.

Obs.: note que sabemos, pois vimos no nosso estudo sobre projeções ortogonais, que o

elemento do subespaço vetorial que minimiza a distância euclidiana é a projeção ortogonal sobre este subespaço.

Dessa forma, a combinação linear que minimiza a soma dos quadrados dos erros é a projeção da variável dependente sobre o espaço coluna das variáveis independentes.

Page 64: Álgebra linear aplicada à ciência de dados

64

Ou seja, podemos pensar em 𝑋𝑋 como a informação disponível e 𝑦𝑦 a variável que queremos estimar. Daí a pergunta: qual é o melhor estimador para 𝑦𝑦 com a informação disponível?

Se o objetivo for minimizar a norma euclidiana, o melhor estimador é a projeção ortogonal sobre o espaço gerado pela informação disponível.

Regressões lineares e projeções ortogonais

Observe, então, que queremos encontrar o elemento de 𝐶𝐶(𝑋𝑋) que minimiza a distância ao vetor 𝑦𝑦. Dessa forma, queremos a projeção de 𝑦𝑦 sobre o espaço coluna 𝐶𝐶(𝑋𝑋).

Portanto queremos encontrar uma matriz de projeção que projeta ortogonalmente sobre o espaço coluna 𝐶𝐶(𝑋𝑋). Com base no nosso estudo sobre projeções ortogonais, queremos, então, encontrar uma matriz 𝑃𝑃𝑋𝑋 que seja idempotente, isto é, 𝑃𝑃𝑋𝑋2 = 𝑃𝑃𝑋𝑋, simétrica, ou seja, 𝑃𝑃𝑋𝑋⊤ = 𝑃𝑃𝑋𝑋 e que o espaço coluna de 𝑃𝑃𝑋𝑋 coincida com o espaço coluna de 𝑋𝑋.

Como o espaço coluna de 𝑃𝑃𝑋𝑋 deve coincidir com o espaço coluna de 𝑋𝑋, devemos ter, em particular, que 𝐶𝐶(𝑃𝑃𝑋𝑋) ⊂ 𝐶𝐶(𝑋𝑋). Logo, ao aplicarmos 𝑃𝑃𝑋𝑋 a um vetor 𝐴𝐴, o vetor 𝑃𝑃𝑋𝑋𝐴𝐴 deve ser escrito como combinação linear dos vetores coluna de 𝑋𝑋. Portanto, para cada 𝐴𝐴 ∈ 𝑹𝑹𝑘𝑘, deve existir 𝑤𝑤 ∈ 𝑹𝑹𝑘𝑘 tal que

𝑃𝑃𝑋𝑋𝐴𝐴 = 𝑋𝑋𝑤𝑤.

Portanto 𝑃𝑃𝑋𝑋 deve ser da forma

𝑃𝑃𝑋𝑋 = 𝑋𝑋𝐵𝐵, para alguma matriz 𝐵𝐵. Observe, agora, que 𝑃𝑃𝑋𝑋 deve ser simétrica, ou seja, 𝑃𝑃𝑋𝑋⊤ = 𝑃𝑃𝑋𝑋. Daí,

𝑋𝑋𝐵𝐵 = 𝑃𝑃𝑋𝑋 = 𝑃𝑃𝑋𝑋⊤ = (𝑋𝑋𝐵𝐵)⊤ = 𝐵𝐵⊤𝑋𝑋⊤. Portanto deve existir alguma matriz 𝐶𝐶 tal que 𝐵𝐵 = 𝐶𝐶𝑋𝑋⊤. Com isso, temos

𝑃𝑃𝑋𝑋 = 𝑋𝑋𝐶𝐶𝑋𝑋⊤. Queremos, agora, que 𝑃𝑃𝑋𝑋2 = 𝑃𝑃𝑋𝑋, ou seja,

𝑋𝑋𝐶𝐶𝑋𝑋⊤ = 𝑃𝑃𝑋𝑋 = 𝑃𝑃𝑋𝑋2 = 𝑋𝑋𝐶𝐶𝑋𝑋⊤𝑋𝑋𝐶𝐶𝑋𝑋⊤.

Page 65: Álgebra linear aplicada à ciência de dados

65

Ou seja, queremos que

𝑋𝑋𝐶𝐶𝑋𝑋⊤ = 𝑋𝑋𝐶𝐶𝑋𝑋⊤𝑋𝑋𝐶𝐶𝑋𝑋⊤. Observe que, se 𝐶𝐶𝑋𝑋⊤𝑋𝑋 = 𝐼𝐼, então vale a igualdade anterior. Como 𝑋𝑋 é uma matriz de

tamanho 𝑛𝑛 × 𝑘𝑘, então 𝑋𝑋⊤𝑋𝑋 é uma matriz de tamanho 𝑘𝑘 × 𝑘𝑘. Dessa forma, se 𝑋𝑋⊤𝑋𝑋 for inversível, podemos tomar 𝐶𝐶 = (𝑋𝑋⊤𝑋𝑋)−1. Para que 𝑋𝑋⊤𝑋𝑋 seja inversível, pelo que já vimos, o seu núcleo deverá ser trivial. Pelo teorema do núcleo e imagem, isso significa que 𝐶𝐶(𝑋𝑋⊤𝑋𝑋) = 𝑅𝑅𝑘𝑘, isto é, a dimensão do

espaço coluna de 𝑋𝑋⊤𝑋𝑋 deve ser 𝑅𝑅𝑘𝑘, ou equivalentemente, o posto de 𝑋𝑋⊤𝑋𝑋 deve ser 𝑘𝑘. Agora, note que 𝐶𝐶(𝑋𝑋⊤𝑋𝑋) ⊂ 𝐶𝐶(𝑋𝑋⊤), pois dado 𝐴𝐴 ∈ 𝑅𝑅𝑘𝑘, faça 𝑤𝑤 = 𝑋𝑋𝐴𝐴 para ver que

(𝑋𝑋⊤𝑋𝑋)𝐴𝐴 = 𝑋𝑋⊤𝑤𝑤. Isso nos diz que 𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝑋𝑋⊤) ≥ 𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝑋𝑋⊤𝑋𝑋). Além disso, para que 𝑋𝑋⊤𝑋𝑋 seja inversível,

devemos ter 𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝑋𝑋⊤𝑋𝑋) = 𝑘𝑘, portanto 𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝑋𝑋⊤) ≥ 𝑘𝑘. Relembre que o posto linha coincide com o posto coluna, logo 𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝑋𝑋) = 𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝑋𝑋⊤) ≥ 𝑘𝑘.

Por fim, como 𝑋𝑋 possui 𝑘𝑘 colunas, devemos ter 𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝑋𝑋) ≤ 𝑘𝑘. Portanto, para que 𝑋𝑋⊤𝑋𝑋 seja inversível, devemos ter 𝑘𝑘 ≤ 𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝑋𝑋) ≤ 𝑘𝑘, ou seja, 𝑝𝑝𝑐𝑐𝑐𝑐𝑡𝑡𝑐𝑐(𝑋𝑋) = 𝑘𝑘.

Em resumo, se 𝑋𝑋 é uma matriz de posto 𝑘𝑘, quer dizer, de posto completo, pois 𝑋𝑋 possui 𝑘𝑘 colunas, então podemos tomar

𝐶𝐶 = (𝑋𝑋⊤𝑋𝑋)−1

para concluirmos que

𝑃𝑃𝑋𝑋 = 𝑋𝑋(𝑋𝑋⊤𝑋𝑋)−1𝑋𝑋⊤. Com isso, segue que

|𝑦𝑦 − 𝑋𝑋(𝑋𝑋⊤𝑋𝑋)−1𝑋𝑋⊤𝑦𝑦|2 = min𝑦𝑦�∈𝐶𝐶(𝑋𝑋)

|𝑦𝑦 − 𝑦𝑦�|2.

Podemos concluir, então, que

𝑦𝑦� = 𝑋𝑋(𝑋𝑋⊤𝑋𝑋)−1𝑋𝑋⊤𝑦𝑦 e que

β� = (𝑋𝑋⊤𝑋𝑋)−1𝑋𝑋⊤𝑦𝑦.

Page 66: Álgebra linear aplicada à ciência de dados

66

Relembre, agora, que quando realizamos a projeção sobre um espaço 𝑊𝑊, na realidade estamos realizando duas projeções: uma sobre 𝑊𝑊 e outra sobre 𝑊𝑊⊥. Dessa forma, quando escrevemos

𝑦𝑦 = 𝑦𝑦� + (𝑦𝑦 − 𝑦𝑦�),

𝑦𝑦� é a projeção de 𝑦𝑦 sobre o espaço coluna de 𝑋𝑋, 𝐶𝐶(𝑋𝑋); e 𝑦𝑦 − 𝑦𝑦� é a projeção de 𝑦𝑦 sobre o

complemento ortogonal do espaço coluna de 𝑋𝑋, 𝐶𝐶(𝑋𝑋)⊥. Dito isso, o “erro” da regressão

𝑒𝑒 = 𝑦𝑦 − 𝑦𝑦� é a projeção de 𝑦𝑦 sobre 𝐶𝐶(𝑋𝑋)⊥. Portanto, se 𝑦𝑦 for ortogonal à informação 𝑋𝑋, então o “erro”

será total.

Regressões lineares no R

Para realizar regressões lineares no R, podemos utilizar a função lm.

A melhor forma de entrar com os argumentos da função lm é por meio da sintaxe de fórmula: “𝑦𝑦 ∼ 𝐴𝐴1 + 𝐴𝐴2 + ⋯+ 𝐴𝐴𝑘𝑘”, em que 𝑦𝑦 é o vetor com a variável dependente, e 𝐴𝐴1, … , 𝐴𝐴𝑘𝑘 são vetores com as variáveis independentes.

Obs.: por padrão, a sintaxe de fórmula inclui o intercepto. Para excluir o intercepto, deve-se incluir o “+0” ou “−1” do lado direito da fórmula.

# Exemplo: x1 <- rnorm(30) + 2 x2 <- rexp(30) y <- x1 + x2 + rnorm(30) lm(y ~ x1 + x2) aj <- lm(y ~ x1 + x2 - 1) aj # Sem intercepto: lm(y ~ x1 + x2 + 0) # ou lm(y ~ x1 + x2 - 1)

Para obter um resumo com dados estatísticos relevantes, utiliza-se o método summary no

modelo ajustado:

ajuste <- lm(y ~ x1+x2-1) summary(ajuste) # Vamos calcular as estimativas X = cbind(x1,x2) # x1 e x2 como vetores coluna

Page 67: Álgebra linear aplicada à ciência de dados

67

beta <- solve(t(X)%*%X, t(X)%*%y) as.vector(beta) ajuste$coefficients

Coeficiente de determinação

Relembre que, ao realizarmos a projeção de 𝑦𝑦 sobre o espaço coluna de 𝑋𝑋, 𝐶𝐶(𝑋𝑋), também realizamos uma projeção sobre o espaço 𝐶𝐶(𝑋𝑋)⊥:

𝑦𝑦 = 𝑦𝑦� + (𝑦𝑦 − 𝑦𝑦�),

em que 𝑦𝑦� ∈ 𝐶𝐶(𝑋𝑋) e 𝑦𝑦 − 𝑦𝑦� ∈ 𝐶𝐶(𝑋𝑋)⊥. Para o cálculo do coeficiente de determinação, precisamos supor que o vetor (1,1, … ,1)

pertence ao espaço coluna de 𝑋𝑋, isto é, que o vetor (1,1, … ,1) é combinação linear dos vetores coluna de 𝑋𝑋.

Obs.: isso não quer dizer que o modelo tem de conter o intercepto, mas, sim, que o intercepto pode ser obtido como combinação linear das demais variáveis.

Defina o resíduo 𝑒𝑒 = ε� = 𝑦𝑦 − 𝑦𝑦�.

Desse modo, como 𝑦𝑦 − 𝑦𝑦� ∈ 𝐶𝐶(𝑋𝑋)⊥ , então 𝑒𝑒 ∈ 𝐶𝐶(𝑋𝑋)⊥. Afirmação: se (1,1, … ,1) ∈ 𝐶𝐶(𝑋𝑋), isto é, se o vetor composto de “uns” pertence ao espaço

coluna de 𝑋𝑋, então

𝑒𝑒 =1𝑛𝑛�𝑒𝑒𝑖𝑖

𝑛𝑛

𝑖𝑖=1

= 0.

De fato, 𝟏𝟏 = (1,1, … ,1) ∈ 𝐶𝐶(𝑋𝑋) e 𝑒𝑒 ∈ 𝐶𝐶(𝑋𝑋)⊥. Logo, como 1 e e são ortogonais, 𝟏𝟏 ⋅ 𝑒𝑒 = 0. Portanto

0 = 𝟏𝟏 ⋅ 𝑒𝑒 = 𝟏𝟏⊤𝑒𝑒 = �𝑒𝑒𝑖𝑖

𝑛𝑛

𝑖𝑖=1

.

Logo 𝑒𝑒 = 0. Isso conclui a afirmação. Além disso, note que, como (1,1, … ,1) ∈ 𝐶𝐶(𝑋𝑋), então (𝑦𝑦,𝑦𝑦, … ,𝑦𝑦) = 𝑦𝑦𝟏𝟏 ∈ 𝐶𝐶(𝑋𝑋) e 𝐻𝐻𝑦𝑦 =

𝑦𝑦� ∈ 𝐶𝐶(𝑋𝑋). Portanto 𝑦𝑦� − 𝑦𝑦𝟏𝟏 ∈ 𝐶𝐶(𝑋𝑋).

Logo segue que

𝑒𝑒 ⋅ (𝑦𝑦� − 𝑦𝑦𝟏𝟏) = 0.

Page 68: Álgebra linear aplicada à ciência de dados

68

Agora, escreva

𝑦𝑦 = 𝑦𝑦� + 𝑒𝑒. Subtraindo 𝑦𝑦, temos

𝑦𝑦 − 𝑦𝑦𝟏𝟏 = 𝑦𝑦� − 𝑦𝑦𝟏𝟏 + 𝑒𝑒. Logo, como 𝑒𝑒 ⋅ (𝑦𝑦� − 𝑦𝑦𝟏𝟏) = 0, segue que

Dessa forma, chamamos: soma de quadrados totais, 𝑆𝑆𝑆𝑆𝑆𝑆 = |𝑦𝑦 − 𝑦𝑦𝟏𝟏|2 = ∑ (𝑦𝑦𝑖𝑖 − 𝑦𝑦)2𝑛𝑛

𝑖𝑖=1 ; soma de quadrados da regressão, 𝑆𝑆𝑆𝑆𝑅𝑅 = |𝑦𝑦� − 𝑦𝑦𝟏𝟏|2 = ∑ (𝑦𝑦�𝑖𝑖 − 𝑦𝑦)2𝑛𝑛

𝑖𝑖=1 , e soma de quadrados dos resíduos, 𝑆𝑆𝑆𝑆𝑅𝑅𝑒𝑒𝑐𝑐 = |𝑒𝑒|2 = ∑ 𝑒𝑒𝑖𝑖2𝑛𝑛

𝑖𝑖=1 = ∑ (𝑦𝑦𝑖𝑖 − 𝑦𝑦�𝑖𝑖)2𝑛𝑛𝑖𝑖=1 .

Dessa forma, a identidade

|𝑦𝑦 − 𝑦𝑦|2 = |𝑦𝑦� − 𝑦𝑦𝟏𝟏|2 + |𝑒𝑒|2 significa que

𝑆𝑆𝑆𝑆𝑆𝑆 = 𝑆𝑆𝑆𝑆𝑅𝑅 + 𝑆𝑆𝑆𝑆𝑅𝑅𝑒𝑒𝑐𝑐. Ou seja,

𝑆𝑆𝑆𝑆𝑅𝑅𝑆𝑆𝑆𝑆𝑆𝑆

+𝑆𝑆𝑆𝑆𝑅𝑅𝑒𝑒𝑐𝑐𝑆𝑆𝑆𝑆𝑆𝑆

= 1.

Definimos então o coeficiente de determinação como:

𝑅𝑅2 = 1 −𝑆𝑆𝑆𝑆𝑅𝑅𝑒𝑒𝑐𝑐𝑆𝑆𝑆𝑆𝑆𝑆

.

Intuitivamente, o 𝑅𝑅2 indica o quanto da variação de 𝑦𝑦 foi “explicado” pela regressão. Obs.: cuidado com o 𝑅𝑅2. Podemos ter 𝑅𝑅2 muito alto mesmo com um ajuste “ruim”. Ou seja, explicar a variação não significa necessariamente um bom ajuste.

Page 69: Álgebra linear aplicada à ciência de dados

69

Para ilustrar, considere o exemplo abaixo, em que consideramos a curva dada pela função de densidade de probabilidade de uma distribuição exponencial, que é determinística e não linear.

# Considere o exemplo x_r <- c(0:100)/40 y_r <- pexp(x_r) ajuste <- lm(y_r ~ x_r) summary(ajuste)

O 𝑅𝑅2 obtido foi de 91%.

plot(x_r,y_r) abline(ajuste$coefficients)

Na figura 12, a seguir, vemos o gráfico dos dados e da reta de regressão. O ajuste foi “bom”,

porém qualquer previsão para valores de 𝐴𝐴𝑟𝑟 maiores do que 2.5 será muito pobre. Mais precisamente, quanto maior o valor de 𝐴𝐴𝑟𝑟 maior será o erro de previsão.

Figura 12 – Regressão linear com os dados obtidos a partir da função de densidade de

probabilidade de uma distribuição exponencial

Page 70: Álgebra linear aplicada à ciência de dados

70

BIBLIOGRAFIA ANSCOMBE, F. J. Graphs in statistical analysis. The American Statistician, v. 27, n. 1, p. 17-21, 1973. DOI: 10.1080/00031305.1973.10478966.

R CORE TEAM. R: a language and environment for statistical computing. Viena, Áustria: R Foundation for Statistical Computing, 2021. Disponível em: <http://www.R-project.org>.

STRANG, G. Linear algebra and learning from data. [S. l.]: Wellesley-Cambridge Press, 2019. Disponível em: <https://math.mit.edu/~gs/learningfromdata>.

Page 71: Álgebra linear aplicada à ciência de dados

71

PROFESSOR-AUTOR Alexandre de Bustamante Simas possui graduação em Estatística

pela Universidade Federal de Pernambuco (UFPE), doutorado em Matemática pelo Instituto de Matemática Pura e Aplicada (Impa), tendo feito doutorado sanduíche no Courant Institute of Mathematical Sciences na New York University. Desde 2013, é bolsista de produtividade em pesquisa do Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq). É professor associado – atualmente, em licença sem remuneração – do Departamento de Matemática da Universidade Federal da Paraíba (UFPB) e atualmente se encontra como research scientist na Kaust University.

Page 72: Álgebra linear aplicada à ciência de dados
Page 73: Álgebra linear aplicada à ciência de dados
Page 74: Álgebra linear aplicada à ciência de dados