Aula 3: Projeções Ortogonais e Subespaços

Álgebra Linear e Otimização para Aprendizado de Máquina

Autor

Prof. Marcos Medeiros Raimundo

Data de Publicação

30 de agosto de 2026

Slides Lista de aulas

1 Revisão e Introdução


1.1 Revisão Rápida: Onde a Aula 2 Parou

A Aula 2 deu quatro passos, nesta ordem. Primeiro, generalizou “um vetor” para “um dataset inteiro” via a matriz de design \(X\in\mathbb{R}^{N\times d}\) — cada linha uma observação, cada coluna um atributo. Segundo, deu duas leituras ao produto \(A\mathbf{x}\): por linha, uma previsão (produto interno por observação); por coluna, uma combinação linear dos atributos — a mesma fórmula, dois significados, ambos usados o resto do curso. Terceiro, classificou os sistemas lineares \(A\mathbf{x}=\mathbf{b}\) em três casos possíveis — nenhuma, exatamente uma, ou infinitas soluções — via o critério do posto da matriz aumentada, \(\text{rk}(A)=\text{rk}(A|\mathbf{b})\), resolvendo um exemplo completo por Eliminação de Gauss. Quarto, tratou de independência linear: um atributo é redundante (multicolinear) quando é combinação linear dos demais, e o posto de uma matriz mede exatamente quantas colunas são, de fato, independentes — quando as \(d\) colunas de \(X\) são linearmente independentes, dizemos que \(X\) tem posto completo, \(\text{rk}(X)=d\).

Esse último fato — posto completo de \(X\), não o critério de solvabilidade do terceiro passo (outra aplicação do mesmo conceito de posto, mas sobre \(A\) e a matriz aumentada, não sobre \(X\)) — é a peça que esta aula vai reusar diretamente no Bloco 4, como a condição exata que garante uma única melhor aproximação. A peça central que fica de tudo isso: em Regressão Linear Múltipla, o sistema \(X\mathbf{w}=\mathbf{y}\) tem \(N\) equações e \(d\) incógnitas, e como \(N\gg d\) em praticamente todo problema real, o sistema é sobredeterminado — genericamente, nenhuma solução exata.

1.2 Organizador Prévio: De “Sem Solução” Para “Melhor Aproximação”

A Aula 2 fechou com essa constatação como um beco aparentemente sem saída: exigir que \(X\mathbf{w}\) alcance \(\mathbf{y}\) exatamente é pedir demais quando há milhares de observações reais e ruidosas. Mas “sem solução exata” não é “sem solução nenhuma que preste”. O próprio livro que citamos nas Aulas 1-2 (MathML) já aponta a saída, no capítulo sobre projeções: quando um sistema \(A\mathbf{x}=\mathbf{b}\) não pode ser resolvido exatamente, ainda é possível perguntar qual é a melhor aproximação — “a ideia é encontrar o vetor no subespaço gerado pelas colunas de \(A\) que está mais próximo de \(\mathbf{b}\)” (tradução nossa, MathML, §3.8.2, p. 88). Essa pergunta — “mais próximo, mas dentro de onde?” — é geométrica antes de ser algébrica, e é exatamente o fio que esta aula segue.

1.3 Roteiro da Aula

A pergunta que fecha o Organizador Prévio — “mais próximo, mas dentro de onde?” — se desdobra em quatro perguntas mais específicas, cada uma resolvida em um bloco desta aula:

  1. O que significa, geometricamente, “a melhor aproximação possível” de \(\mathbf{y}\) por um \(X\mathbf{w}\) alcançável?
  2. O que é projetar um vetor sobre um subespaço, e por que essa operação resolve exatamente o problema da pergunta 1?
  3. Como essa ideia geométrica vira uma fórmula calculável — as Equações Normais?
  4. Quando essa fórmula falha, ou fica numericamente frágil, e por quê?

1.4 Problema Motivador

Volte ao California Housing Dataset das Aulas 1-2: \(N=16\,640\) bairros (a partição de treino), 4 atributos (MedInc, HouseAge, AveRooms, AveBedrms), e o alvo MedHouseVal. O sistema \(X\mathbf{w}=\mathbf{y}\) tem \(16\,640\) equações e \(4\) incógnitas — sobredeterminado por uma margem enorme. Sem resolver nada ainda, pense por um instante: se \(X\mathbf{w}\) nunca alcança \(\mathbf{y}\) exatamente, qual \(X\mathbf{w}\) alcançável está mais perto? E “mais perto” — medido como, exatamente?

DicaSe \(X\mathbf{w}=\mathbf{y}\) nunca é alcançado exatamente, existe sempre exatamente uma “melhor” aproximação, ou pode haver várias igualmente boas?

Dica: pense em como a Aula 2 já classificou o número de soluções de um sistema exato — nenhuma, uma, ou infinitas. A pergunta agora troca “solução exata” por “solução aproximada”. O número de “melhores aproximações” muda de natureza?

  • □ Se o sistema \(X\mathbf{w}=\mathbf{y}\) fosse subdeterminado (\(N<d\)) em vez de sobredeterminado, ainda faria sentido perguntar qual \(X\mathbf{w}\) é “mais próximo” de \(\mathbf{y}\), mas a pergunta mudaria de natureza: deixaria de ser sobre um erro irredutível e passaria a ser sobre escolher entre infinitas soluções exatas.
  • □ No caso-limite \(N=d\) com \(X\) de posto completo, a “melhor aproximação” \(X\hat{\mathbf{w}}\) coincide exatamente com \(\mathbf{y}\) (erro zero).
  • □ Num sistema de posicionamento por GPS, com mais satélites (equações) do que coordenadas a estimar (incógnitas), a mesma lógica de “melhor aproximação por projeção” se aplica, ainda que o contexto seja localização geográfica, não preço de imóvel.
  • □ Como nenhum \(X\mathbf{w}\) alcança \(\mathbf{y}\) exatamente num sistema sobredeterminado, a Regressão Linear Múltipla deixa de fornecer qualquer informação útil sobre a relação entre atributos e alvo.

2 Intuição: A Sombra no Chão


2.1 A Ideia Antes da Álgebra

Antes de qualquer fórmula, uma imagem concreta. Imagine um ponto \(\mathbf{y}\) flutuando no espaço, e um subespaço \(U\) — uma reta ou um plano passando pela origem — como se fosse o chão. Se uma fonte de luz vier exatamente perpendicular ao chão, a sombra de \(\mathbf{y}\) sobre \(U\) é um ponto específico: chame-o \(\hat{\mathbf{y}}\). Essa sombra tem duas propriedades que, juntas, definem tudo o que este bloco precisa:

  1. É o ponto de \(U\) mais próximo de \(\mathbf{y}\) — nenhum outro ponto do chão está a uma distância menor de \(\mathbf{y}\) do que a própria sombra.
  2. O segmento (ponto → sombra) é perpendicular a \(U\) — a “haste” que liga \(\mathbf{y}\) à sua sombra \(\hat{\mathbf{y}}\) faz ângulo reto com o chão inteiro, não só com a direção da luz.

Essas duas propriedades não são independentes — a segunda é a razão pela qual a primeira é verdade, algo que o Bloco 4 vai provar formalmente. Por ora, olhe para o desenho: projetar sobre uma reta (subespaço de dimensão 1) e projetar sobre um plano (subespaço de dimensão 2) são a mesma operação, só que o “chão” tem mais dimensões.

No painel esquerdo, \(U\) é a reta gerada pela direção \((2,1)\), e \(\mathbf{y}=(1{,}0;3{,}2)\) está fora dela. A sombra \(\hat{\mathbf{y}}\) (quadrado laranja) é o ponto da reta mais próximo de \(\mathbf{y}\), e o segmento tracejado (o “resíduo”) encontra a reta em ângulo reto — não em qualquer ângulo. No painel direito, o “chão” já é um plano bidimensional (o plano \(x_3=0\)) dentro de um espaço tridimensional: \(\mathbf{y}=(1{,}5;1{,}8;\,2{,}3)\) tem sombra \(\hat{\mathbf{y}}=(1{,}5;1{,}8;\,0)\) — a projeção simplesmente “zera” a componente perpendicular ao chão, e o segmento tracejado (puramente na direção \(x_3\)) é, de novo, perpendicular a todo o plano, não só a uma direção dentro dele. É essa segunda observação — perpendicular a todo o subespaço — que vai generalizar para o espaço-coluna de \(X\), que tem \(d=4\) dimensões, não \(1\) ou \(2\): a “álgebra” muda, a geometria não.

DicaSe a “luz” da projeção não viesse perpendicular ao chão, mas num ângulo oblíquo fixo, o ponto resultante ainda seria o mais próximo de \(\mathbf{y}\)?

Dica: pense no desenho da reta acima. Se você inclinasse a direção da “luz” (a direção da haste que liga \(\mathbf{y}\) à sua sombra), o ponto de chegada na reta mudaria — ele continuaria sendo o ponto mais próximo?

  • □ Se a luz não viesse perpendicular ao chão, mas em um ângulo oblíquo fixo, o ponto resultante ainda seria o ponto do subespaço mais próximo de \(\mathbf{y}\).
  • □ Se o ponto \(\mathbf{y}\) já pertencesse ao subespaço \(U\), a “sombra” de \(\mathbf{y}\) sobre \(U\) coincidiria com o próprio \(\mathbf{y}\), e o resíduo teria norma zero.
  • □ Comprimir uma imagem mantendo só suas componentes principais é, geometricamente, projetar cada vetor-pixel sobre um subespaço de menor dimensão — a mesma lógica da sombra perpendicular discutida aqui, aplicada a outro tipo de dado.
  • □ Como a sombra perpendicular minimiza a distância até \(\mathbf{y}\), ela também é, necessariamente, o ponto do subespaço com a maior norma possível entre os candidatos considerados.

3 Subespaços e Complemento Ortogonal


3.1 Recapitulando: Subespaço e Espaço-Coluna

A Aula 1 definiu subespaço \(U\subseteq V\) como um subconjunto fechado sob combinação linear: para quaisquer \(\mathbf{u},\mathbf{v}\in U\) e escalares \(a,b\in\mathbb{R}\), \(a\mathbf{u}+b\mathbf{v}\in U\) (em particular, \(\mathbf{0}\in U\) sempre — basta tomar \(a=b=0\)). A Aula 2 deu um exemplo concreto e central para este curso — o espaço-coluna \[ \text{col}(X) = \{X\mathbf{w} : \mathbf{w}\in\mathbb{R}^d\}\subseteq\mathbb{R}^N, \] o conjunto de todas as combinações lineares das colunas de \(X\) (a Leitura 2 do produto matriz-vetor, Aula 2), ou seja, tudo que \(X\mathbf{w}\) alcança quando \(\mathbf{w}\) varia livremente por \(\mathbb{R}^d\) — e essa definição já garante que \(\text{col}(X)\) é, de fato, um subespaço (a distributividade do produto matriz-vetor, \(X(a\mathbf{w}_1+b\mathbf{w}_2)=aX\mathbf{w}_1+bX\mathbf{w}_2\), é exatamente o fechamento sob combinação linear exigido pela definição). Com \(X\in\mathbb{R}^{16640\times 4}\) de posto completo (verificado na Aula 2), \(\text{col}(X)\) é um subespaço de dimensão \(4\) dentro de um espaço ambiente de dimensão \(16\,640\) — geometricamente, como um plano finíssimo boiando dentro de um espaço gigantesco, e \(\mathbf{y}\) (o vetor com as \(16\,640\) observações de MedHouseVal) quase certamente não está dentro dele.

3.2 O Complemento Ortogonal

A pergunta natural — “o que dizer sobre a parte de \(\mathbf{y}\) que não está em \(\text{col}(X)\)?” — tem uma resposta com nome: o complemento ortogonal. Dado um subespaço \(U\) de um espaço \(V\) de dimensão \(D\), com \(U\) de dimensão \(M\), o MathML define (tradução nossa, §3.6, p. 79):

“seu complemento ortogonal \(U^\perp\) é um subespaço de \(V\) de dimensão \((D-M)\) e contém todos os vetores em \(V\) que são ortogonais a todo vetor em \(U\). Além disso, \(U\cap U^\perp=\{\mathbf{0}\}\), de modo que qualquer vetor \(\mathbf{x}\in V\) pode ser decomposto de forma única” \[ \mathbf{x} = \sum_{m=1}^{M}\lambda_m\mathbf{b}_m + \sum_{j=1}^{D-M}\psi_j\mathbf{b}_j^\perp, \qquad \lambda_m,\psi_j\in\mathbb{R} \qquad \text{(MathML, eq. 3.36)}, \] onde \((\mathbf{b}_1,\dots,\mathbf{b}_M)\) é uma base de \(U\) e \((\mathbf{b}_1^\perp,\dots,\mathbf{b}_{D-M}^\perp)\) é uma base de \(U^\perp\). Em notação compacta, isso se escreve \(V = U \oplus U^\perp\): todo vetor de \(V\) é a soma de uma única parte dentro de \(U\) com uma única parte dentro de \(U^\perp\) — nunca duas formas diferentes de fazer essa soma, nunca nenhuma parte sobrando de fora.

Em \(\mathbb{R}^2\) (\(D=2\)), com \(U\) a reta de dimensão \(M=1\), o complemento ortogonal \(U^\perp\) também tem dimensão \(D-M=1\) — a reta perpendicular. O vetor \(\mathbf{x}=(1,3)\) se decompõe de forma única em uma parte sobre \(U\) e uma parte sobre \(U^\perp\) (linhas pontilhadas): some as duas setas azul/laranja e você recupera exatamente \(\mathbf{x}\), sem sobra e sem ambiguidade — não existe uma segunda forma de fazer essa soma. Em \(\mathbb{R}^3\), se \(U\) fosse um plano (\(M=2\)), \(U^\perp\) teria dimensão \(D-M=1\) — é exatamente o “vetor normal” do MathML: “o vetor \(\mathbf{w}\) com \(\|\mathbf{w}\|=1\), ortogonal ao plano \(U\), é o vetor de base de \(U^\perp\)” (tradução nossa, §3.6, p. 80). No caso da regressão que fecha esta aula, \(D=16\,640\) e \(M=4\): \(U^\perp=\text{col}(X)^\perp\) tem a dimensão gigantesca \(16\,636\), mas isso não importa para o que vamos usar dele — só importa que o resíduo \(\mathbf{y}-\hat{\mathbf{y}}\) vai viver exatamente ali dentro.

DicaSe \(U\) fosse o subespaço trivial \(\{\mathbf{0}\}\), o que seria \(U^\perp\)?

Dica: releia a definição — \(U^\perp\) contém todo vetor ortogonal a todo vetor de \(U\). Se o único vetor de \(U\) for \(\mathbf{0}\), quantos vetores de \(V\) são ortogonais a ele?

  • □ Se \(U\) fosse o subespaço trivial \(\{\mathbf{0}\}\), seu complemento ortogonal \(U^\perp\) seria igual ao espaço \(V\) inteiro.
  • □ Se \(U=V\) (o subespaço é o espaço inteiro), então \(U^\perp=\{\mathbf{0}\}\).
  • □ Num modelo de regressão em que o resíduo \(\mathbf{y}-\hat{\mathbf{y}}\) é ortogonal a todo vetor do espaço-coluna de \(X\), esse resíduo não é apenas “ortogonal a ele” informalmente — ele satisfaz a própria definição formal de pertencer a \(\text{col}(X)^\perp\).
  • □ Como todo vetor de \(V\) se decompõe de forma única numa parte de \(U\) e uma parte de \(U^\perp\), isso implica que \(U\) e \(U^\perp\) têm, necessariamente, a mesma dimensão.

4 O Teorema da Projeção: Premissas e Passo a Passo


4.1 Enunciando o Problema com Precisão

Antes de derivar qualquer fórmula, vamos deixar explícitas as premissas — seguindo a diretriz deste curso de nunca saltar direto para o resultado final.

NotaPremissas
  1. Temos um subespaço \(U=\text{col}(X)\subseteq\mathbb{R}^N\), o espaço-coluna da matriz de design (Aula 2).
  2. Temos um vetor \(\mathbf{y}\in\mathbb{R}^N\) que, em geral, não pertence a \(U\) (o caso sobredeterminado da Aula 2 e do Bloco 1 desta aula).
  3. Definimos \(\hat{\mathbf{y}}\in U\) como o ponto de \(U\) mais próximo de \(\mathbf{y}\) — o que minimiza \(\|\mathbf{y}-\hat{\mathbf{y}}\|\) (a formalização da “sombra” do Bloco 2).

O objetivo dos dois passos seguintes é ir de “\(\hat{\mathbf{y}}\) minimiza a distância” até uma fórmula fechada e calculável para \(\hat{\mathbf{w}}\) tal que \(\hat{\mathbf{y}}=X\hat{\mathbf{w}}\).

4.2 Passo (i): Ortogonal a Cada Coluna de \(X\) via Otimização

Formalizar “\(\hat{\mathbf{y}}\) é o ponto de \(U=\text{col}(X)\) mais próximo de \(\mathbf{y}\)” é resolver um problema de otimização. Minimizar a distância \(\|\mathbf{y}-\mathbf{v}\|\) sobre \(\mathbf{v}\in U\) é equivalente a minimizar o quadrado da distância — a raiz quadrada é crescente, então o mínimo cai no mesmo ponto, e o quadrado tem derivada mais simples. E como \(U=\text{col}(X)\), já sabemos exatamente como \(\mathbf{v}\) varia dentro de \(U\): pela Leitura 2 do produto matriz-vetor (Aula 2), todo \(\mathbf{v}\in U\) é \(X\mathbf{w}\) para algum \(\mathbf{w}\in\mathbb{R}^d\), e \(\mathbf{w}\) não tem restrição nenhuma — não é preciso inventar uma base abstrata de \(U\) só para ter variáveis livres para derivar; \(\mathbf{w}\)é essa variável livre, dada de graça pela própria definição de espaço-coluna. Minimizar sobre \(\mathbf{v}\in U\) é, então, o mesmo que minimizar sobre \(\mathbf{w}\in\mathbb{R}^d\) sem restrições — um problema de otimização irrestrita de verdade: \[ \hat{\mathbf{w}} = \arg\min_{\mathbf{w}\in\mathbb{R}^d}\; g(\mathbf{w}), \qquad g(\mathbf{w}) = \|\mathbf{y}-X\mathbf{w}\|^2. \]

Expandindo por manipulação de matrizes — \((\mathbf{y}-X\mathbf{w})^T(\mathbf{y}-X\mathbf{w})\), usando que \(\mathbf{y}^TX\mathbf{w}\) é um escalar, logo igual à sua própria transposta \(\mathbf{w}^TX^T\mathbf{y}\): \[ g(\mathbf{w}) = \mathbf{y}^T\mathbf{y} - 2\,\mathbf{y}^TX\mathbf{w} + \mathbf{w}^TX^TX\mathbf{w}. \] Usando as regras de cálculo vetorial \(\nabla_{\mathbf{w}}(\mathbf{a}^T\mathbf{w})=\mathbf{a}\) e \(\nabla_{\mathbf{w}}(\mathbf{w}^TC\mathbf{w})=2C\mathbf{w}\) (para \(C\) simétrica — e \(X^TX\) é simétrica), o gradiente de \(g\) é \[ \nabla_{\mathbf{w}}\, g(\mathbf{w}) = -2X^T\mathbf{y} + 2X^TX\mathbf{w} = -2\,X^T(\mathbf{y}-X\mathbf{w}). \] A Hessiana é \(2X^TX\), e ela é sempre semidefinida positiva — para qualquer \(X\), \(\mathbf{w}^TX^TX\mathbf{w}=\|X\mathbf{w}\|^2\ge 0\) —, o suficiente para \(g\) ser convexa, mesmo sem sabermos ainda se \(X^TX\) é invertível (essa condição extra só vai entrar no Passo (ii), para isolar um único \(\hat{\mathbf{w}}\) — não é necessária para caracterizar o mínimo). Como o problema é irrestrito e \(g\) é convexa, o mínimo é caracterizado pela condição de otimalidade de primeira ordem para problemas irrestritos — necessária e suficiente para um mínimo global: o gradiente se anula no ponto ótimo, \[ -2\,X^T(\mathbf{y}-X\hat{\mathbf{w}}) = \mathbf{0} \qquad\Longleftrightarrow\qquad X^T(\mathbf{y}-X\hat{\mathbf{w}}) = \mathbf{0}. \]

Essa equação diz que o resíduo \(\mathbf{y}-X\hat{\mathbf{w}}\) é ortogonal a cada coluna de \(X\) individualmente. E como todo vetor de \(\text{col}(X)\) é combinação linear das colunas (a mesma Leitura 2 de novo), o resíduo é ortogonal a qualquer vetor de \(\text{col}(X)\) — a ortogonalidade “passa” pela combinação linear sem se perder: \[ \mathbf{y}-X\hat{\mathbf{w}} \;\perp\; \text{col}(X). \] Minimizar a distância e ser ortogonal a \(\text{col}(X)\), portanto, não são duas condições separadas — são a mesma condição, uma vista pela definição (mínimo) e a outra pela consequência algébrica de anular o gradiente. O MathML batiza essa condição da mesma forma (tradução nossa, §3.8.2, p. 85-86, adaptando \(B\to X\)): “obtemos \(m\) condições simultâneas […] o que […] pode ser escrito como um sistema linear homogêneo […] \(B^T(\mathbf{x}-B\lambda)=\mathbf{0}\)” — o MathML enuncia essa condição via uma base abstrata de \(U\); aqui chegamos a ela diretamente, otimizando sobre a variável livre \(\mathbf{w}\) que \(X\) já oferece de graça.

4.3 Passo (ii): Isolando \(\hat{\mathbf{w}}\) — as Equações Normais

Distribuindo o produto do Passo (i): \[ X^T\mathbf{y} - X^TX\hat{\mathbf{w}} = \mathbf{0} \qquad\Longleftrightarrow\qquad X^TX\hat{\mathbf{w}} = X^T\mathbf{y}. \] O MathML batiza essa equação (tradução nossa, §3.8.2, p. 86, eq. 3.56): “a última expressão é chamada equação normal”. Isso ainda não é a fórmula fechada de \(\hat{\mathbf{w}}\) — é um sistema linear em \(\hat{\mathbf{w}}\), com \(X^TX\in\mathbb{R}^{d\times d}\) no papel de “\(A\)” e \(X^T\mathbf{y}\in\mathbb{R}^d\) no papel de “\(\mathbf{b}\)” (a mesma estrutura \(A\mathbf{x}=\mathbf{b}\) da Aula 2, agora numa matriz derivada de \(X\), não em \(X\) diretamente).

Quando esse sistema tem solução única. O MathML completa a derivação notando exatamente a condição que faz \(X^TX\) invertível (tradução nossa, §3.8.2, p. 86): “como \(b_1,\dots,b_m\) são uma base de \(U\) e, portanto, linearmente independentes, \(B^TB\in\mathbb{R}^{m\times m}\) é regular e pode ser invertida.” Traduzido para o nosso caso: as colunas de \(X\) são linearmente independentes exatamente quando \(X\) tem posto completo (\(\text{rk}(X)=d\)) — o mesmo critério provado na Aula 2, Bloco 5. Quando isso vale, \(X^TX\) é invertível, e podemos isolar \(\hat{\mathbf{w}}\): \[ \hat{\mathbf{w}} = (X^TX)^{-1}X^T\mathbf{y}. \] O MathML chama a matriz \((X^TX)^{-1}X^T\) de pseudo-inversa de \(X\) (tradução nossa, §3.8.2, p. 86) — um nome que vai voltar quando o curso tratar de decomposições matriciais (SVD), mais adiante. Por ora, a peça que fecha o ciclo aberto na Aula 2: o sistema \(X\mathbf{w}=\mathbf{y}\) sobredeterminado não tem solução exata, mas tem, sob posto completo, uma única melhor aproximação — e ela tem fórmula fechada.

\usetikzlibrary{arrows.meta, positioning}
\definecolor{icblue}{HTML}{0085CA}
\definecolor{icorange}{HTML}{FF5E00}
\definecolor{icred}{HTML}{E03C31}
\begin{tikzpicture}[scale=1.0]
  % col(X): reta pela origem, direção (5,1) -- ŷ abaixo é a projeção
  % ortogonal exata de y sobre essa reta (calculada, não estética).
  \draw[icblue, thick] (-2.648,-0.530) -- (2.648,0.530) node[right] {\small $\mathrm{col}(X)$};
  \node (yhat) at (1.462,0.292) {};
  \fill[icorange] (1.462,0.292) circle (2.4pt);
  \node[icorange, below right=1pt and 2pt of yhat, font=\small] {$\hat{\mathbf{y}}=X\hat{\mathbf{w}}$};
  \node (y) at (1.1,2.1) {};
  \fill[icred] (1.1,2.1) circle (2.4pt);
  \node[icred, above=2pt of y, font=\small] {$\mathbf{y}$};
  \draw[gray!70, dashed, thick, -{Stealth}] (1.1,2.1) -- (1.462,0.292) node[midway, right, font=\small, black] {resíduo $\perp\, \mathrm{col}(X)$};
  % marcador de ângulo reto no ponto de encontro
  \draw[gray!70, thick] (1.609,0.322) -- (1.579,0.469) -- (1.432,0.440);
  \draw[icblue, -{Stealth}, thick] (1.119,0.224) -- (1.462,0.292);
\end{tikzpicture}

O esquema resume os dois passos: \(\text{col}(X)\) é a “reta” azul (uma representação necessariamente simplificada de um subespaço de dimensão \(4\)), \(\mathbf{y}\) está fora dele, \(\hat{\mathbf{y}}=X\hat{\mathbf{w}}\) é o ponto mais próximo dentro de \(\text{col}(X)\), e o resíduo (tracejado) encontra o subespaço em ângulo reto — a mesma “sombra” do Bloco 2, agora com nome de variável de regressão.

DicaA condição \((\mathbf{y}-X\hat{\mathbf{w}})\perp\text{col}(X)\) garante que o resíduo seja zero?

Dica: releia o Passo (i) — “mais próximo” e “ortogonal” são a mesma condição. Isso é o mesmo que dizer “o erro desaparece”?

  • □ Se, em vez de minimizar \(\|\mathbf{y}-X\mathbf{w}\|\) (norma \(L_2\)), o critério de “melhor” fosse minimizar \(\|\mathbf{y}-X\mathbf{w}\|_1\) (norma \(L_1\)), a condição de ortogonalidade \((\mathbf{y}-X\hat{\mathbf{w}})\perp\text{col}(X)\) ainda garantiria a solução.
  • □ No caso em que \(\mathbf{y}\) já pertence ao espaço-coluna de \(X\), as Equações Normais \(X^TX\hat{\mathbf{w}}=X^T\mathbf{y}\) têm como solução um \(\hat{\mathbf{w}}\) tal que \(X\hat{\mathbf{w}}=\mathbf{y}\) exatamente (erro zero).
  • □ Num problema de calibração de sensores, em que \(\mathbf{y}\) são leituras redundantes de \(N\) sensores e \(X\) mapeia \(d<N\) parâmetros físicos verdadeiros para essas leituras, a mesma derivação das Equações Normais forneceria a melhor estimativa desses parâmetros por mínimos quadrados.
  • □ Como a condição \((\mathbf{y}-X\hat{\mathbf{w}})\perp\text{col}(X)\) equivale a \(X^T(\mathbf{y}-X\hat{\mathbf{w}})=\mathbf{0}\), isso significa que o resíduo \(\mathbf{y}-X\hat{\mathbf{w}}\) deve ser o vetor nulo sempre que \(X\) tiver posto completo.

5 Aplicação e Verificação no Dado Real


5.1 Calculando \(\hat{\mathbf{w}}\) de Verdade

Chegou a hora de aplicar a fórmula fechada do Passo (ii) ao problema motivador do Bloco 1: os \(N=16\,640\) bairros do California Housing, com \(X\in\mathbb{R}^{16640\times 4}\) (as colunas MedInc, HouseAge, AveRooms, AveBedrms) e \(\mathbf{y}\in\mathbb{R}^{16640}\) (MedHouseVal). Como a Aula 2 já verificou que \(X\) tem posto completo (\(\text{rk}(X)=4\)), \(X^TX\) é invertível, e a fórmula \(\hat{\mathbf{w}}=(X^TX)^{-1}X^T\mathbf{y}\) se aplica diretamente.

X_completo = _housing[COLS].to_numpy()
y_completo = _housing["MedHouseVal"].to_numpy()

# Equações Normais, resolvidas diretamente pela fórmula fechada
XtX = X_completo.T @ X_completo
Xty = X_completo.T @ y_completo
w_hat = np.linalg.inv(XtX) @ Xty

tabela_w = pd.DataFrame({"atributo": COLS, "ŵ": np.round(w_hat, 5)})
tabela_w
atributo ŵ
0 MedInc 0.48761
1 HouseAge 0.01171
2 AveRooms -0.18809
3 AveBedrms 0.78255

A tabela mostra que o peso de maior módulo não é o de MedInc (\(\approx 0{,}488\)), como seria fácil supor à primeira vista, mas o de AveBedrms (\(\approx 0{,}783\)) — e isso é uma pista, não uma medida direta de importância. AveRooms e AveBedrms são atributos fortemente correlacionados (quantos cômodos, quantos são quartos — Bloco 6 volta a isso com números), e a Regressão Linear Múltipla estima cada peso na presença dos demais (Leitura 2 do produto matriz-vetor, Aula 2): quando duas colunas carregam quase a mesma informação, o modelo pode distribuir o efeito combinado entre elas de forma desequilibrada — um peso grande e positivo, o outro pequeno ou até negativo (AveRooms, \(\approx -0{,}188\)) — sem que isso signifique, isoladamente, que mais cômodos reduzam o preço. É um sintoma do problema de multicolinearidade que o Bloco 6 vai quantificar e explicar por que fragiliza numericamente \(X^TX\). O peso de MedInc (\(\approx 0{,}488\)), por não competir por informação redundante com nenhum outro atributo do modelo, tem leitura direta: cada unidade adicional de renda mediana está associada a um aumento de \(\approx 0{,}488\) (centenas de milhares de dólares) no preço previsto. Já HouseAge tem o menor peso em módulo (\(\approx 0{,}012\)) — a idade do imóvel, sozinha, quase não move a previsão depois de controlar pelos outros três atributos.

5.2 Conferência Independente: numpy.linalg.lstsq

A fórmula fechada é uma forma de calcular \(\hat{\mathbf{w}}\), mas não a única — numpy.linalg.lstsq resolve o mesmo problema de mínimos quadrados por um algoritmo numérico diferente (decomposição, não inversão explícita de \(X^TX\)). Se a nossa derivação do Bloco 4 estiver certa, as duas contas devem coincidir:

w_lstsq, *_ = np.linalg.lstsq(X_completo, y_completo, rcond=None)
print("w_hat (lstsq):           ", np.round(w_lstsq, 5))
print("maior diferença absoluta:", np.max(np.abs(w_hat - w_lstsq)))
w_hat (lstsq):            [ 0.48761  0.01171 -0.18809  0.78255]
maior diferença absoluta: 1.3100631690576847e-14

A diferença máxima entre os dois vetores é da ordem de \(10^{-14}\) — zero, a menos de erro de arredondamento de ponto flutuante. Dois algoritmos completamente diferentes (inversão explícita de uma matriz \(4\times 4\) vs. decomposição numérica) chegam ao mesmo \(\hat{\mathbf{w}}\) — evidência de que a derivação do Bloco 4 não é só elegante no quadro, funciona com dados reais.

5.3 Verificando a Ortogonalidade do Resíduo

A promessa central do Passo (i) foi que o resíduo \(\mathbf{y}-X\hat{\mathbf{w}}\) é ortogonal a cada coluna de \(X\) — não uma afirmação vaga, uma igualdade numérica exata (até erro de arredondamento) que podemos checar:

residuo = y_completo - X_completo @ w_hat

print("Produto interno do resíduo com cada coluna de X:")
for j, nome in enumerate(COLS):
    prod = residuo @ X_completo[:, j]
    print(f"  {nome:10s}: {prod:.3e}")
Produto interno do resíduo com cada coluna de X:
  MedInc    : -4.522e-10
  HouseAge  : -5.039e-09
  AveRooms  : -8.756e-10
  AveBedrms : -1.987e-10

Cada produto interno é da ordem de \(10^{-9}\) ou menor — e, colocado em perspectiva (dividindo pelas normas de cada vetor envolvido, para comparar “zero relativo” e não só “zero absoluto”), a proporção é da ordem de \(10^{-14}\): numericamente zero, exatamente como o Passo (i) exigia. Não é coincidência — é a própria equação \(X^T(\mathbf{y}-X\hat{\mathbf{w}})=\mathbf{0}\) (Passo i) verificada numericamente, coluna a coluna.

5.4 O Tamanho do Resíduo — o Que a Ortogonalidade Não Diz

Ortogonalidade garante a direção do erro (ele mora em \(\text{col}(X)^\perp\)), mas nada diz sobre o tamanho do erro. Vale a pena medir:

norma_residuo = np.linalg.norm(residuo)
norma_y = np.linalg.norm(y_completo)
r2 = 1 - np.sum(residuo**2) / np.sum((y_completo - y_completo.mean())**2)

print(f"||resíduo|| = {norma_residuo:.2f}")
print(f"||y||       = {norma_y:.2f}")
print(f"||resíduo||/||y|| = {norma_residuo/norma_y:.3f}")
print(f"R² = {r2:.3f}")
||resíduo|| = 101.49
||y||       = 298.57
||resíduo||/||y|| = 0.340
R² = 0.518

O resíduo tem norma \(\approx 101{,}5\) contra \(\|\mathbf{y}\|\approx 298{,}6\) — não é pequeno; em termos de \(R^2\) (a fração da variação de MedHouseVal “explicada” pelo modelo), o ajuste é \(R^2\approx 0{,}518\): o modelo explica um pouco mais da metade da variação do preço usando só 4 atributos. Isso não é uma falha da matemática do Bloco 4 — a projeção ortogonal garante a melhor aproximação possível dentro do espaço-coluna de \(X\), não uma boa aproximação em termos absolutos. Com só 4 atributos (faltam localização, qualidade da construção, proximidade da costa, etc.), \(\text{col}(X)\) é um subespaço pequeno demais para chegar perto de \(\mathbf{y}\) — a projeção é ótima dentro das opções disponíveis, e as opções disponíveis são limitadas pelos atributos escolhidos, não pela matemática da projeção.

5.5 Vendo o Ajuste numa Amostra Concreta

Voltando à amostra de 6 bairros usada na Aula 2 (mesma semente, random_state=7) — agora com o \(\hat{\mathbf{w}}\) de verdade, ajustado a partir de todos os \(16\,640\) bairros, não mais um \(\mathbf{w}\) inventado:

Compare com o gráfico da Aula 2 (mesmos 6 bairros, \(\mathbf{w}\) inventado): os erros ali eram grandes e sem padrão claro; aqui, ainda há erro (esperado, dado o \(R^2\approx 0{,}518\)), mas o modelo já captura a tendência geral — o bairro 1 (renda mais alta) continua sendo o de previsão mais alta entre os seis, por exemplo. É a diferença entre “um \(\mathbf{w}\) qualquer” e “o \(\hat{\mathbf{w}}\) que resolve as Equações Normais”: o segundo não é perfeito, mas é matematicamente o melhor possível dentro do que os 4 atributos permitem.

DicaSe comparássemos \(\hat{\mathbf{w}}\) com uma resolução por eliminação de Gauss do sistema \(X^TX\hat{\mathbf{w}}=X^T\mathbf{y}\), esperaríamos o mesmo resultado da comparação com lstsq?

Dica: o que muda entre lstsq e eliminação de Gauss é o algoritmo, não a equação que ambos resolvem. Isso muda a resposta?

  • □ Comparar \(\hat{\mathbf{w}}\) (Equações Normais) com uma resolução por eliminação de Gauss do mesmo sistema \(X^TX\hat{\mathbf{w}}=X^T\mathbf{y}\) daria, a menos de erro de arredondamento, exatamente o mesmo vetor encontrado com lstsq.
  • □ Se o produto interno do resíduo com cada coluna de \(X\) fosse exatamente zero (não apenas próximo de zero, mas matematicamente exato), isso seria uma coincidência numérica desta amostra específica, não uma consequência necessária da teoria.
  • □ Num ajuste de crescimento populacional, com atributos em escalas bem diferentes das usadas nesta aula, a mesma verificação (produto interno do resíduo com cada coluna \(\approx 0\)) continuaria sendo um teste válido de que \(\hat{\mathbf{w}}\) foi calculado corretamente.
  • □ Como o resíduo é ortogonal a cada coluna de \(X\), isso implica que o modelo ajustado explica quase toda a variação de \(\mathbf{y}\) (um \(R^2\) próximo de \(1\)).

6 Quando a Fórmula Falha, ou Fica Frágil


6.1 Reconectando com a Aula 2: Posto Completo

O Passo (ii) do Bloco 4 usou uma hipótese específica: \(X^TX\) é invertível se, e somente se, as colunas de \(X\) são linearmente independentes — ou seja, \(X\) tem posto completo, \(\text{rk}(X)=d\) (critério provado na Aula 2, Bloco 5). Essa não é uma hipótese técnica qualquer: é a única coisa que separa “\(\hat{\mathbf{w}}\) tem fórmula fechada” de “\(\hat{\mathbf{w}}\) não é sequer único”. Vamos ver os dois jeitos como essa hipótese pode falhar — um exato, um só numericamente frágil — reaproveitando exatamente os exemplos da Aula 2.

6.2 Caso 1: Multicolinearidade Exata — \(\hat{\mathbf{y}}\) Único, \(\hat{\mathbf{w}}\) Não

A Aula 2 fabricou uma quinta coluna, \(2\times\)AveRooms, e mostrou que o posto da matriz de design não sobe de 4 para 5 — a nova coluna não traz direção independente. Repetindo o experimento, agora olhando diretamente para a invertibilidade de \(X^TX\):

X_com_duplicata = np.column_stack([X_completo, 2.0 * X_completo[:, 2]])
print("posto de X:              ", np.linalg.matrix_rank(X_completo))
print("posto de X com duplicata:", np.linalg.matrix_rank(X_com_duplicata))

XtX_dup = X_com_duplicata.T @ X_com_duplicata
print("det(X^T X com duplicata):", np.linalg.det(XtX_dup))
try:
    np.linalg.inv(XtX_dup)
except np.linalg.LinAlgError as erro:
    print("np.linalg.inv falha:", erro)
posto de X:               4
posto de X com duplicata: 4
det(X^T X com duplicata): 0.0
np.linalg.inv falha: Singular matrix

\(\det(X^TX)=0\): a matriz é singular, e np.linalg.inv recusa explicitamente (“Singular matrix”) — não há fórmula fechada \(\hat{\mathbf{w}}=(X^TX)^{-1}X^T\mathbf{y}\) possível. Mas note a distinção crucial, já anunciada no Passo (i) do Bloco 4: a projeção \(\hat{\mathbf{y}}\) continua perfeitamente bem definida — é o ponto de \(\text{col}(X)\) mais próximo de \(\mathbf{y}\), e \(\text{col}(X)\) não mudou (a coluna redundante não acrescenta nenhuma direção nova, Aula 2). O que deixou de ser único é como distribuir o crédito entre AveRooms e sua cópia \(2\times\)AveRooms — infinitos \(\hat{\mathbf{w}}\) diferentes produzem exatamente o mesmo \(\hat{\mathbf{y}}=X\hat{\mathbf{w}}\). A sombra é única; a “receita” para chegar nela, não.

6.3 Caso 2: Quase-Multicolinearidade — \(X^TX\) Mal-Condicionada

Multicolinearidade exata é rara em dados reais. O problema mais comum, já visto na Aula 2, é a quase-dependência entre AveRooms e AveBedrms (correlação \(0{,}865\)) — posto continua completo (\(4\)), a fórmula fechada ainda existe, mas fica numericamente frágil. Reaproveitando exatamente a amostra de 20 bairros e a perturbação de 1% da Aula 2, agora olhando para o número de condição de \(X^TX\) em cada par:

_amostra_20 = _housing.sample(n=20, random_state=7)
X_quase_dep = _amostra_20[["AveRooms", "AveBedrms"]].to_numpy()
X_bem_cond = _amostra_20[["MedInc", "HouseAge"]].to_numpy()

cond_quase_dep = np.linalg.cond(X_quase_dep.T @ X_quase_dep)
cond_bem_cond = np.linalg.cond(X_bem_cond.T @ X_bem_cond)

print(f"número de condição de X^TX (AveRooms, AveBedrms):  {cond_quase_dep:,.1f}")
print(f"número de condição de X^TX (MedInc, HouseAge):     {cond_bem_cond:,.1f}")
print(f"\nnúmero de condição de X^TX completo (4 atributos): {np.linalg.cond(XtX):,.1f}")
número de condição de X^TX (AveRooms, AveBedrms):  419.8
número de condição de X^TX (MedInc, HouseAge):     169.1

número de condição de X^TX completo (4 atributos): 23,460.5

O par quase-dependente tem número de condição \(\approx 420\) contra \(\approx 169\) do par bem-condicionado — mais do dobro, um sinal numérico direto de fragilidade (definição formal na Aula 4). Mas número de condição alto é uma promessa de instabilidade; para ver a instabilidade em si, é preciso repetir o experimento de perturbação da Aula 2 — não só citar o resultado de lá:

y_amostra_20 = _amostra_20["MedHouseVal"].to_numpy()

w_orig_qd, *_ = np.linalg.lstsq(X_quase_dep, y_amostra_20, rcond=None)
rng_ruido = np.random.default_rng(1)
y_perturbado = y_amostra_20 + rng_ruido.normal(scale=0.01 * y_amostra_20.std(), size=y_amostra_20.shape)
w_pert_qd, *_ = np.linalg.lstsq(X_quase_dep, y_perturbado, rcond=None)

w_orig_bc, *_ = np.linalg.lstsq(X_bem_cond, y_amostra_20, rcond=None)
w_pert_bc, *_ = np.linalg.lstsq(X_bem_cond, y_perturbado, rcond=None)

print("Par quase-dependente (AveRooms, AveBedrms):")
print(f"  variação relativa em w[AveRooms]  = {abs(w_pert_qd[0]-w_orig_qd[0])/abs(w_orig_qd[0]):.1%}")
print(f"  variação relativa em w[AveBedrms] = {abs(w_pert_qd[1]-w_orig_qd[1])/abs(w_orig_qd[1]):.1%}")
print("\nPar bem-condicionado (MedInc, HouseAge):")
print(f"  variação relativa em w[MedInc]    = {abs(w_pert_bc[0]-w_orig_bc[0])/abs(w_orig_bc[0]):.1%}")
print(f"  variação relativa em w[HouseAge]  = {abs(w_pert_bc[1]-w_orig_bc[1])/abs(w_orig_bc[1]):.1%}")
Par quase-dependente (AveRooms, AveBedrms):
  variação relativa em w[AveRooms]  = 0.5%
  variação relativa em w[AveBedrms] = 29.5%

Par bem-condicionado (MedInc, HouseAge):
  variação relativa em w[MedInc]    = 0.1%
  variação relativa em w[HouseAge]  = 0.1%

Mesmo ruído (\(1\%\) do desvio-padrão de MedHouseVal), efeito muito diferente: o peso de AveBedrms oscila \(\approx 29{,}5\%\) no par quase-dependente, contra \(\approx 0{,}1\%\) no par bem-condicionado sob a mesma perturbação — quase 300 vezes mais sensível, exatamente como a Aula 2 já havia mostrado. O número de condição do \(X^TX\) com os 4 atributos completos (\(\approx 23\,460\)) é ainda maior, porque combina a informação redundante de AveRooms/AveBedrms com a escala natural de todos os atributos — mas o efeito é o mesmo em espécie: \(X^TX\) tecnicamente invertível, porém perto o suficiente de singular para que pequenos erros nos dados produzam grandes oscilações no \(\hat{\mathbf{w}}\) calculado.

A mesma distinção do Caso 1, com um grau de intensidade menor: a projeção \(\hat{\mathbf{y}}\) (a previsão do modelo) muda pouco com a perturbação — é a decomposição dos pesos \(\hat{\mathbf{w}}\) entre as duas colunas quase-redundantes que oscila. Medir e nomear essa sensibilidade com precisão — o número de condição, calculado a partir dos autovalores de \(X^TX\), não só estimado por um experimento de perturbação — é exatamente o que abre a Aula 4.

O diagrama resume os dois caminhos: multicolinearidade exata quebra a invertibilidade de \(X^TX\) (posto deficiente), enquanto multicolinearidade quase-exata preserva o posto completo mas deixa \(X^TX\) mal-condicionada — dois sintomas de gravidade diferente, mas da mesma causa raiz (colunas de \(X\) carregando informação redundante), com o mesmo alívio parcial em comum: a projeção \(\hat{\mathbf{y}}\) nunca é o problema; o problema mora inteiramente em como \(\hat{\mathbf{w}}\) tenta descrevê-la.

DicaSe \(X^TX\) está mal-condicionada, a previsão \(\hat{\mathbf{y}}=X\hat{\mathbf{w}}\) também fica proporcionalmente instável sob a mesma perturbação dos dados?

Dica: releia o que os números do Caso 2 mostraram sobre \(\hat{\mathbf{w}}\) vs. \(\hat{\mathbf{y}}\) — a instabilidade tem o mesmo tamanho nos dois?

  • □ Se a coluna duplicada fabricada no Caso 1 fosse uma combinação de duas colunas originais (não um múltiplo de uma única coluna), em vez de exatamente \(2\times\)AveRooms, o posto de \(X\) ainda cairia da mesma forma ao ser adicionada.
  • □ No caso-limite em que a correlação entre AveRooms e AveBedrms fosse exatamente \(1\) (em vez de \(0{,}865\)), \(X^TX\) deixaria de ser invertível, e a fórmula fechada \(\hat{\mathbf{w}}=(X^TX)^{-1}X^T\mathbf{y}\) deixaria de estar definida.
  • □ Num modelo de crédito com dois atributos quase redundantes (ex.: “renda mensal” e “renda anual dividida por 12”, com pequena diferença por arredondamento), o mesmo sintoma de instabilidade numérica no peso estimado apareceria, mesmo sem nenhuma coluna exatamente duplicada.
  • □ Como \(X^TX\) mal-condicionada torna \(\hat{\mathbf{w}}\) instável, isso implica que a previsão \(\hat{\mathbf{y}}=X\hat{\mathbf{w}}\) também se torna proporcionalmente instável sob a mesma perturbação dos dados.

7 Fechamento e Ponte para a Aula 4


Retomando as perguntas de abertura

  1. O que significa “a melhor aproximação possível”? O ponto \(\hat{\mathbf{y}}\in\text{col}(X)\) que minimiza \(\|\mathbf{y}-\hat{\mathbf{y}}\|\) — e essa minimização é equivalente a uma condição geométrica exata: o resíduo ortogonal a todo o subespaço.
  2. O que é projetar sobre um subespaço, e por que resolve o problema? É encontrar exatamente esse \(\hat{\mathbf{y}}\) — a “sombra” perpendicular do Bloco 2, formalizada no Teorema da Projeção do Bloco 4.
  3. Como isso vira uma fórmula calculável? As Equações Normais, \(X^TX\hat{\mathbf{w}}=X^T\mathbf{y}\), e sob posto completo, \(\hat{\mathbf{w}}=(X^TX)^{-1}X^T\mathbf{y}\) — verificado com números reais no Bloco 5 (comparação com lstsq, ortogonalidade do resíduo).
  4. Quando essa fórmula falha, ou fica frágil? Multicolinearidade exata quebra a invertibilidade de \(X^TX\) (\(\hat{\mathbf{w}}\) não-único, \(\hat{\mathbf{y}}\) ainda único); quase-multicolinearidade preserva o posto completo, mas deixa \(X^TX\) mal-condicionada (\(\hat{\mathbf{w}}\) instável).

O Que Fica em Aberto

A fórmula fechada \(\hat{\mathbf{w}}=(X^TX)^{-1}X^T\mathbf{y}\) é a forma mais simples de descrever a solução — mas não é a forma mais estável de calculá-la quando \(X^TX\) está mal-condicionada, como o Bloco 6 acabou de mostrar. O número de condição foi usado aqui de forma empírica (perturbar os dados e medir o efeito) — a Aula 4 dá a ferramenta exata para medi-lo diretamente a partir da estrutura de \(X^TX\) (seus autovalores e autovetores), sem precisar perturbar nada. Essa mesma ferramenta é o que vai motivar, mais adiante no curso, métodos numéricos mais estáveis do que inverter \(X^TX\) diretamente — decomposição \(QR\) e \(SVD\) — que resolvem as Equações Normais sem nunca formar \(X^TX\) explicitamente.

8 Exercícios

8.1 Questões discursivas

  1. Explique, com suas próprias palavras e usando a linguagem geométrica do Bloco 2 (a “sombra”), por que minimizar \(\|\mathbf{y}-X\mathbf{w}\|\) é equivalente à condição de ortogonalidade \((\mathbf{y}-X\hat{\mathbf{w}})\perp\text{col}(X)\). Por que essa equivalência é o que permite transformar um problema de otimização (minimizar uma distância) numa equação linear (as Equações Normais)?

  2. Compare os dois casos do Bloco 6 — multicolinearidade exata (posto deficiente) e quase-multicolinearidade (posto completo, mas mal-condicionada) — explicando, para cada um, o que acontece com a projeção \(\hat{\mathbf{y}}\) e o que acontece com o vetor de pesos \(\hat{\mathbf{w}}\). Por que a distinção entre essas duas grandezas é a chave para entender os dois casos?

  3. A Aula 2 provou que \(X^TX\) é invertível se, e somente se, \(X\) tem posto completo. Explique como essa condição de invertibilidade entra exatamente no Passo (ii) da derivação das Equações Normais desta aula, e o que aconteceria à derivação (não só ao resultado final) se essa condição não fosse satisfeita.

8.2 Questões de Verdadeiro/Falso

Cada bloco de 4 itens trata do mesmo tema. A questão só é considerada correta se todos os 4 itens forem julgados corretamente (deixar em branco tem penalidade de 20% da nota da questão).

NotaSistemas sobredeterminados e a melhor aproximação
  • □ Se um sistema \(A\mathbf{x}=\mathbf{b}\) fosse subdeterminado (\(n>m\)) em vez de sobredeterminado, ainda haveria um sentido útil para “melhor aproximação” via projeção, mas ele coincidiria trivialmente com uma das infinitas soluções exatas, não com um ponto fora do espaço-coluna de \(A\).
  • □ No caso-limite em que \(\mathbf{y}\) está exatamente sobre o espaço-coluna de \(X\), a “melhor aproximação” \(\hat{\mathbf{y}}=X\hat{\mathbf{w}}\) coincide com \(\mathbf{y}\), e o problema de mínimos quadrados se reduz ao caso já resolvido pela Aula 2 (sistema com solução exata).
  • □ Num problema de previsão de demanda de energia elétrica, com muito mais medições horárias (equações) do que parâmetros do modelo físico a estimar (incógnitas), a mesma lógica de “sistema sobredeterminado sem solução exata, resolvido por projeção” se aplicaria.
  • □ Como um sistema sobredeterminado não tem solução exata, isso implica que qualquer \(\mathbf{w}\) escolhido produzirá um erro de magnitude semelhante — a escolha de \(\mathbf{w}\) não afetaria significativamente a qualidade da aproximação.
NotaA intuição da sombra
  • □ Se a fonte de luz da analogia da sombra viesse de um ângulo oblíquo fixo (não perpendicular ao subespaço), o ponto de chegada no subespaço, em geral, não seria mais o ponto mais próximo do ponto original.
  • □ No caso-limite em que o subespaço \(U\) tem a mesma dimensão do espaço ambiente (\(U=V\)), a “sombra” de qualquer ponto sobre \(U\) coincide com o próprio ponto, para qualquer ponto escolhido.
  • □ A ideia de reduzir a dimensionalidade de dados de alta dimensão para visualização (ex.: reduzir atributos de um dataset para 2 dimensões e plotar um gráfico de dispersão) usa, na essência, a mesma operação geométrica de projeção perpendicular discutida nesta aula.
  • □ Como a projeção perpendicular minimiza a distância ao subespaço, ela produz sempre o ponto de menor norma dentro do subespaço, entre todos os candidatos.
NotaSubespaços e o complemento ortogonal
  • □ Se \(U\) e \(W\) são dois subespaços distintos de mesma dimensão \(M\) dentro de um espaço \(V\) de dimensão \(D\), seus complementos ortogonais \(U^\perp\) e \(W^\perp\) têm, necessariamente, a mesma dimensão entre si (\(D-M\)), ainda que \(U^\perp \ne W^\perp\) como conjuntos.
  • □ No caso-limite \(M=D\) (o subespaço é o espaço inteiro), o complemento ortogonal se reduz ao subespaço trivial \(\{\mathbf{0}\}\).
  • □ Em processamento de sinais, decompor um sinal de áudio em uma componente dentro de uma banda de frequência específica (um subespaço) e uma componente fora dela usa a mesma lógica de decomposição única \(V=U\oplus U^\perp\) discutida nesta aula.
  • □ Como todo vetor de \(V\) se decompõe de forma única em \(U\oplus U^\perp\), isso implica que essa decomposição é a única forma possível de escrever qualquer vetor de \(V\) como soma de dois vetores de \(V\).
NotaDefinição formal de projeção
  • □ Se \(\pi:V\to U\) satisfaz \(\pi^2=\pi\), então, para qualquer vetor \(\mathbf{u}\) que já pertença a \(U\), necessariamente \(\pi(\mathbf{u}) = \mathbf{u}\).
  • □ No caso-limite em que a matriz de projeção \(P_\pi\) é a matriz identidade, o subespaço \(U\) sobre o qual ela projeta é o espaço ambiente \(V\) inteiro.
  • □ Num sistema de compressão de vídeo que descarta certas componentes de frequência (mantendo só um subconjunto), a operação de manter as componentes retidas e descartar as demais pode ser descrita, de forma exata, por uma matriz de projeção \(P_\pi\) com \(P_\pi^2=P_\pi\).
  • □ Como toda matriz de projeção satisfaz \(P_\pi^2=P_\pi\), isso significa que qualquer matriz quadrada que satisfaça essa condição algébrica também é, necessariamente, simétrica.
NotaDerivação das Equações Normais
  • □ Se a condição de ortogonalidade fosse verificada apenas para algumas colunas de \(X\) (não todas), em vez de todas as \(d\) colunas, isso não seria suficiente, em geral, para garantir que o resíduo é ortogonal a todo o espaço-coluna de \(X\).
  • □ No caso-limite \(d=1\) (uma única coluna, isto é, \(X\) é um vetor-coluna \(\mathbf{x}\in\mathbb{R}^N\)), as Equações Normais \(X^TX\hat{\mathbf{w}}=X^T\mathbf{y}\) se reduzem a uma única equação escalar, \(\hat{w}=\dfrac{\mathbf{x}^T\mathbf{y}}{\mathbf{x}^T\mathbf{x}}\).
  • □ Num problema de estimar um único parâmetro físico (temperatura média) a partir de \(N\) leituras redundantes de um termômetro (cada leitura sendo \(y_i = \theta + \text{ruído}\)), a mesma derivação das Equações Normais levaria a uma estimativa que é, essencialmente, a média das leituras.
  • □ Como as Equações Normais são obtidas impondo ortogonalidade coluna a coluna, isso implica que, se duas colunas de \(X\) forem ortogonais entre si, a equação normal correspondente a cada uma delas pode ser resolvida de forma totalmente independente da outra, sem nenhum termo cruzado.
NotaInvertibilidade de \(X^TX\) e a pseudo-inversa
  • □ Se \(X\) tivesse posto deficiente (colunas linearmente dependentes), \(X^TX\) deixaria de ser invertível, mas isso não impediria, por si só, que existisse algum \(\hat{\mathbf{w}}\) satisfazendo as Equações Normais — apenas deixaria de haver um único.
  • □ No caso-limite em que \(X\) tem uma única coluna não-nula (\(d=1\), \(\mathbf{x}\ne\mathbf{0}\)), \(X^TX\) é sempre invertível (é um escalar positivo).
  • □ Num problema de reconstrução de sinais com uma matriz de observação \(X\) de posto deficiente, a pseudo-inversa \((X^TX)^{-1}X^T\) não pode ser calculada da forma usual, mas existem generalizações (pseudo-inversa de Moore-Penrose, via SVD) que contornam exatamente esse problema.
  • □ Como \((X^TX)^{-1}X^T\) é chamada de pseudo-inversa de \(X\), isso significa que ela satisfaz \(X\cdot(X^TX)^{-1}X^T = I\) (a identidade), do mesmo jeito que uma inversa de matriz quadrada de verdade.
NotaAplicação numérica e verificação de ortogonalidade
  • □ Se, em vez de comparar \(\hat{\mathbf{w}}\) obtido pela fórmula fechada com np.linalg.lstsq, comparássemos com uma resolução por eliminação de Gauss do sistema \(X^TX\hat{\mathbf{w}}=X^T\mathbf{y}\), esperaríamos, a menos de erro de arredondamento, o mesmo vetor.
  • □ No caso-limite em que \(\mathbf{y}\) é o vetor nulo, o \(\hat{\mathbf{w}}\) que resolve as Equações Normais (com \(X\) de posto completo) é necessariamente o vetor nulo também.
  • □ Num experimento de física em que um pesquisador mede a mesma grandeza \(N\) vezes com ruído aleatório, verificar que o resíduo entre o valor estimado e as medições é ortogonal aos “atributos” do modelo é um teste válido de correção, do mesmo jeito que foi usado nesta aula para o California Housing.
  • □ Como o resíduo é ortogonal a cada coluna de \(X\), isso implica que o modelo captura toda a informação relevante contida nos dados disponíveis para prever \(\mathbf{y}\).
Nota\(R^2\) e o que a ortogonalidade do resíduo garante
  • □ Se o \(R^2\) do ajuste fosse exatamente \(0\) (o modelo não explica nada da variação de \(\mathbf{y}\) além da média), o resíduo ainda seria ortogonal a cada coluna de \(X\), contanto que \(\hat{\mathbf{w}}\) resolva as Equações Normais.
  • □ No caso-limite \(R^2=1\) (ajuste perfeito), o resíduo \(\mathbf{y}-X\hat{\mathbf{w}}\) é o vetor nulo.
  • □ Num modelo de previsão de nota de estudantes usando só o número de horas de sono (um único atributo, claramente insuficiente para prever notas), seria possível obter um \(R^2\) baixo e, ainda assim, um resíduo perfeitamente ortogonal a essa única coluna — exatamente como ocorreu com os 4 atributos do California Housing nesta aula.
  • □ Como o resíduo é sempre ortogonal ao espaço-coluna de \(X\) quando \(\hat{\mathbf{w}}\) resolve as Equações Normais, um \(R^2\) baixo indica necessariamente um erro no cálculo de \(\hat{\mathbf{w}}\), não uma limitação dos atributos escolhidos.
NotaPosto e multicolinearidade exata (conexão com a Aula 2)
  • □ Se a coluna redundante fabricada no Bloco 6 fosse \(-5\times\)AveRooms em vez de \(2\times\)AveRooms, o posto de \(X\) ainda cairia da mesma forma ao ser adicionada (permaneceria em 4, não subiria para 5).
  • □ No caso-limite em que todas as \(d\) colunas de \(X\) fossem múltiplos escalares de uma única coluna não-nula, o posto de \(X\) seria exatamente \(1\), independentemente do valor de \(d\).
  • □ Num dataset de sensores IoT em que um atributo é reportado tanto em Celsius quanto em Fahrenheit (uma transformação linear afim exata da outra, não apenas um múltiplo escalar), a inclusão de ambas as colunas na matriz de design também produziria posto deficiente, pelo mesmo princípio da coluna duplicada exata desta aula.
  • □ Como a coluna redundante fabricada não acrescenta nenhuma direção independente ao espaço-coluna de \(X\), isso implica que removê-la necessariamente reduz a qualidade das previsões do modelo ajustado.
NotaQuase-multicolinearidade e número de condição (preview da Aula 4)
  • □ Se, em vez de perturbar MedHouseVal em 1% do desvio-padrão, perturbássemos em 10 vezes esse valor (10% do desvio-padrão), a variação relativa esperada no peso de AveBedrms no par quase-dependente seria, ao menos aproximadamente, também maior do que a observada com a perturbação de 1% — o número de condição alto amplifica perturbações maiores tanto quanto amplifica as pequenas.
  • □ No caso-limite em que o número de condição de \(X^TX\) tende a infinito, \(X^TX\) se torna, no limite, singular (não invertível).
  • □ Num modelo de precificação de opções financeiras com duas variáveis de entrada quase redundantes (ex.: duas medidas de volatilidade calculadas por métodos ligeiramente diferentes), a mesma fragilidade numérica (pesos instáveis sob pequena perturbação dos dados) apareceria, mesmo com o posto de \(X\) tecnicamente completo.
  • □ Como o número de condição de \(X^TX\) com os 4 atributos completos (\(\approx 23\,460\)) é maior do que o do par isolado AveRooms/AveBedrms (\(\approx 420\)), isso implica que a previsão \(\hat{\mathbf{y}}\) do modelo completo é proporcionalmente mais instável do que a previsão do modelo com só esse par de atributos.
NotaA matriz de projeção \(P_\pi\)
  • □ Se, em vez de projetar \(\mathbf{y}\) sobre \(\text{col}(X)\), quiséssemos projetar sobre um subespaço diferente gerado pelas colunas de outra matriz \(Z\) (mesmas dimensões de \(X\)), a matriz de projeção correspondente seria \(P_\pi'=Z(Z^TZ)^{-1}Z^T\), com a mesma propriedade \(P_\pi'^2=P_\pi'\).
  • □ No caso-limite em que as colunas de \(X\) já são ortonormais (\(X^TX=I\)), a matriz de projeção se simplifica para \(P_\pi=XX^T\).
  • □ Em compressão de imagem via PCA, manter apenas as \(k\) componentes principais mais informativas e descartar as demais pode ser descrito por uma matriz de projeção \(P_\pi\) com as mesmas propriedades (\(P_\pi^2=P_\pi\), simétrica) discutidas nesta aula.
  • □ Como \(P_\pi=X(X^TX)^{-1}X^T\in\mathbb{R}^{N\times N}\) e toda matriz quadrada invertível que satisfaz \(P^2=P\) só pode ser a identidade, isso implica que \(P_\pi\) só pode ser a matriz identidade quando \(X\) tem posto completo.
NotaSíntese: da falta de solução à ponte para a Aula 4
  • □ Se a Aula 4 mostrasse que o número de condição de \(X^TX\) pode ser calculado exatamente a partir da razão entre o maior e o menor autovalor de \(X^TX\), isso tornaria desnecessário o tipo de experimento de perturbação numérica usado no Bloco 6 desta aula para detectar fragilidade — mas o experimento de perturbação continuaria sendo uma forma válida de demonstrar o efeito prático dessa fragilidade.
  • □ No caso-limite em que \(X\) tem colunas mutuamente ortogonais e todas de norma \(1\) (uma base ortonormal do espaço-coluna), o número de condição de \(X^TX\) é exatamente \(1\) — o melhor condicionamento numérico possível.
  • □ Num pipeline de aprendizado de máquina em que os atributos de entrada são primeiro padronizados (média 0, desvio-padrão 1) antes do ajuste, essa etapa de pré-processamento pode, dependendo dos dados, influenciar o número de condição de \(X^TX\) resultante, mesmo sem alterar o posto de \(X\).
  • □ Como as Equações Normais fornecem uma fórmula fechada exata para \(\hat{\mathbf{w}}\) sempre que \(X\) tem posto completo, isso implica que essa fórmula é sempre o método numericamente mais recomendado para calcular \(\hat{\mathbf{w}}\) na prática, independentemente do número de condição de \(X^TX\).

8.3 Aviso

As questões de Verdadeiro/Falso e discursivas ficam sem solução neste arquivo — são para resolução autônoma do aluno, fora do horário de aula.