Considere um intervalo de medição, dado por
(-5 a 5 com passo de 0,1 em 0,1 ).
Gere em um mesmo gráfico a distribuição t student para os seguintes graus de liberdade:
, 20, 50 e 100 (no Matlab a função t student é mapeada pela rotina tpdf (veja help tpdf));
Gere em um mesmo gráfico a distribuição t student para os seguintes graus de liberdade:
Passo 1
O que o enunciado pede e o que nos foi dado.
- Pede-se gerar, em um mesmo gráfico, as densidades de probabilidade da distribuição t de Student para os graus de liberdade
. - O intervalo de
é dado por (ou seja, de a com passo ). Vou usar exatamente esse vetor em MATLAB. - Foi indicado usar a rotina do MATLAB
tpdf(que calcula a pdf da t de Student). - Objetivo prático: gerar uma figura com todas as curvas, legenda, rótulos de eixos e grade para facilitar a comparação visual.
Passo 2
O que é a função densidade da t de Student (fórmula) e interpretação rápida.
- A pdf da t de Student com
graus de liberdade é dada por:
onde
é a função Gama e
é o número de graus de liberdade.
- Interpretação prática e o que esperar no gráfico:
- A distribuição é simétrica em torno de
. - Para
pequeno (ex.: ) as caudas são muito pesadas (maior probabilidade em valores extremos) — é a distribuição de Cauchy. - À medida que
cresce, a t aproxima-se da normal padrão : pico mais alto em e caudas mais leves. - Esses comportamentos serão visíveis no gráfico: curvas para
baixos mais achatadas no centro e com caudas mais longas; para grandes mais parecidas com a curva normal.
- A distribuição é simétrica em torno de
Passo 3
Construir o vetor de pontos
no MATLAB.
- O enunciado dá o vetor diretamente como
. Em MATLAB isso se escreve: x = -5:0.1:5;
- Explicação: esse comando cria um vetor linha com valores começando em
, somando a cada passo até chegar a . Dá para checar o tamanho com length(x).
Passo 4
Calcular as pdfs da t para cada grau de liberdade com
tpdf.- Em MATLAB a função
tpdf(x,nu)retorna os valores da pdf da t para cada elemento do vetorxe um valor escalarnu. - Vou organizar os graus de liberdade em um vetor:
nus = [1 3 10 20 50 100];
- Para calcular todas as curvas, há duas opções práticas:
- Fazer um laço
forque calculay = tpdf(x, nu)para cadanue guarda em uma matriz. - Usar
arrayfun/cellfunou construção vetorizada. O laço é claro e didático.
- Fazer um laço
- Exemplo de laço (explicado no código final): para cada índice
i, calcularY(i,:) = tpdf(x, nus(i));. Assim cada linha deYcontém a pdf para umdiferente.
Passo 5
Escolher estilos de plotagem e elementos do gráfico (legenda, cores, rótulos).
- É importante distinguir visualmente cada curva: usar cores diferentes e
LineWidthmaior ajuda. - Incluir legenda com cada
: por exemplo rótulos do tipo '\nu=1','\nu=3', … - Recomendo também traçar a densidade da normal padrão
como referência (com normpdf(x,0,1)), desenhada com traço--(opcional, útil para comparação). - Colocar
xlabel,ylabel,title,grid onexlim([-5 5])para ficar apresentável.
Passo 6
Observações práticas (toolboxes e alternativas).
tpdfenormpdffazem parte do Statistics and Machine Learning Toolbox (ou em versões mais antigas do MATLAB do Statistics Toolbox). Se por algum motivonormpdfnão estiver disponível, a normal padrão pode ser avaliada por:
e então em MATLAB usar
yNorm = (1/sqrt(2*pi))*exp(-x.^2/2);.- O código final abaixo usa
tpdfenormpdf; senormpdffaltar, trocar conforme acima.
Passo 7
Dicas sobre interpretação do gráfico depois de obtido.
- Ao olhar o gráfico:
- A curva de
(Cauchy) terá pico relativamente baixo e caudas bem largas. - Curvas de
vão ficando cada vez mais parecidas entre si e com a normal padrão. - Para provas: comunicar que "à medida que
a t de Student converge em distribuição para " e justificar visualmente usando o gráfico.
- A curva de
Resposta
% Script MATLAB para plotar densidades t de Student em [-5:0.1:5]
x = -5:0.1:5;
nus = [1 3 10 20 50 100];
% Pré-alocar matriz de resultados: cada linha corresponde a um nu
Y = zeros(numel(nus), numel(x));
for i = 1:numel(nus)
Y(i,:) = tpdf(x, nus(i));
end
% Calcular normal padrão para referência (se não tiver normpdf, usar exp formula)
if exist('normpdf','file')
yNorm = normpdf(x, 0, 1);
else
yNorm = (1/sqrt(2*pi)) * exp(-x.^2 / 2);
end
% Plot
figure;
hold on;
colors = lines(numel(nus)); % paleta de cores automática
for i = 1:numel(nus)
plot(x, Y(i,:), 'Color', colors(i,:), 'LineWidth', 1.5);
end
plot(x, yNorm, 'k--', 'LineWidth', 1.2); % normal padrão como referência
% Legenda com graus de liberdade
legendStr = arrayfun(@(v) sprintf('\\nu=%d', v), nus, 'UniformOutput', false);
legendStr{end+1} = 'Normal(0,1)';
legend(legendStr, 'Location', 'Best');
% Rótulos e formato
xlabel('x');
ylabel('pdf');
title('Distribuição t de Student para vários graus de liberdade');
grid on;
xlim([-5 5]);
box on;
hold off;