Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior Próxima revisão Ambos lados da revisão seguinte | ||
02_tutoriais:tutorial7:start [2020/10/01 16:24] adalardo [Variável Indicadora] |
02_tutoriais:tutorial7:start [2022/06/21 11:38] adalardo [Estimando os parâmetros] |
||
---|---|---|---|
Linha 7: | Linha 7: | ||
A primeira parte desse tutorial é baseado no [[http://labtrop.ib.usp.br/doku.php?id=cursos:planeco:roteiro:08-lm_rcmdr| tutoria de modelos lineares da disciplina Princípios de Planejamento e Análise de Dados]], inclusive as vídeoaulas. Aqui iremos focar no código que estava subjacente ao tutorial. | A primeira parte desse tutorial é baseado no [[http://labtrop.ib.usp.br/doku.php?id=cursos:planeco:roteiro:08-lm_rcmdr| tutoria de modelos lineares da disciplina Princípios de Planejamento e Análise de Dados]], inclusive as vídeoaulas. Aqui iremos focar no código que estava subjacente ao tutorial. | ||
+ | <WRAP center round tip 60%> | ||
+ | A videoaula gravada no google meet no dia 02 de outubro de 2020 está ao final do tutorial. Dê preferência para as videoaulas do curso de **Principios de Planejamento e Análise de Dados** que estão colocadas ao longo do tutorial. Eles tratam o tema de modelos lineares de forma mais sucinta e tiveram alguma edição. Desconsiderem nesses vídeos as referências à disciplina. | ||
+ | </WRAP> | ||
+ | |||
===== Modelos Lineares ===== | ===== Modelos Lineares ===== | ||
Linha 12: | Linha 16: | ||
Os modelos lineares são uma generalização dos testes de hipótese clássicos mais simples. Uma regressão linear, por exemplo, só pode ser aplicada para dados em que tanto a variável preditora quanto a resposta são contínuas, enquanto uma análise de variância é utilizada quando a variável preditora é categórica. Os modelos lineares não têm essa limitação, podemos usar variáveis contínuas ou categóricas indistintamente. | Os modelos lineares são uma generalização dos testes de hipótese clássicos mais simples. Uma regressão linear, por exemplo, só pode ser aplicada para dados em que tanto a variável preditora quanto a resposta são contínuas, enquanto uma análise de variância é utilizada quando a variável preditora é categórica. Os modelos lineares não têm essa limitação, podemos usar variáveis contínuas ou categóricas indistintamente. | ||
- | <WRAP center round box 40%> | + | <WRAP center round box 80%> |
__**Videoaula Modelo Linear I**__ | __**Videoaula Modelo Linear I**__ | ||
O vídeo é proveniente de outra disciplina, desconsidere qualquer referência a ela. | O vídeo é proveniente de outra disciplina, desconsidere qualquer referência a ela. | ||
+ | <WRAP center round tip 80%> | ||
{{youtube>b4VgLr6loGE}} | {{youtube>b4VgLr6loGE}} | ||
+ | |||
+ | </WRAP> | ||
</WRAP> | </WRAP> | ||
- | No quadro abaixo estão listados alguns dos testes clássicos frequentistas. Estes testes foram criados para diferentes naturezas de variáveis respostas e preditoras. Você já refletiu sobre a natureza das variáveis do seu estudo? Esse é um passo importante na tomada de decisão da análise adequada, assim como seu acoplamento com a hipótese do trabalho é fundamental! | + | No quadro abaixo estão listados alguns dos testes clássicos frequentistas. Estes testes foram criados para diferentes naturezas de variáveis respostas e preditoras. Você já refletiu sobre a natureza das variáveis do seu estudo? Esse é um passo importante na tomada de decisão da análise adequada, assim como seu acoplamento com a hipótese de trabalho é fundamental! |
Linha 47: | Linha 54: | ||
- | Parece complicado, mas é simples gerar dados aleatórios com essa estrutura do R. Vamos definir primeiro qual são os parâmetros que estão na nossa população, ou seja qual o valor de $\alpha$ e $\beta$ da relação entre ''y'' e ''x'' na população. Além disso, vamos definir também qual a variabilidade associada a essa relação, o nosso $\epsilon$. | + | Parece complicado, mas é simples gerar dados aleatórios com essa estrutura do R. Vamos definir primeiro quais são os parâmetros que estão na nossa população, ou seja qual o valor de $\alpha$ e $\beta$ da relação entre ''y'' e ''x'' na população. Além disso, vamos definir também qual a variabilidade associada a essa relação, o nosso $\epsilon$. |
$$ y = 5.3 + 0.12 x + N(0, 5) $$ | $$ y = 5.3 + 0.12 x + N(0, 5) $$ | ||
- | Antes de gerar os dados aleatórios, vamos utilizar uma ferramenta que define a raiz da semente aleatória que o R irá usar. Com isso, apesar dos dados gerados serem proveniente de uma amostra aleatória, todos que utilizarem a mesma semente terão os mesmo valores amostrados. Em seguida vamos criar uma sequência para representar a variável preditora ''x'' e a partir da relação acima, calcular o ''y0'', que são os valores associados a essa relação determinística com ''x'' e também criar um vetor ''res'' que define a variabilidade do nossos dados: | + | Antes de gerar os dados aleatórios, vamos utilizar uma ferramenta que define a raiz da semente aleatória que o R irá usar. Com isso, apesar dos dados gerados serem provenientes de uma amostra aleatória, todos que utilizarem a mesma semente terão os mesmo valores amostrados. Em seguida vamos criar uma sequência para representar a variável preditora ''x'' e, a partir da relação acima, calcular o ''y0'', que são os valores associados a essa relação determinística com ''x'' e também criar um vetor ''res'' que define a variabilidade do nossos dados: |
<code rsplus> | <code rsplus> | ||
set.seed(1) | set.seed(1) | ||
- | x <- round(seq(12, 220, len = 15), 1) | + | x1 <- round(seq(12, 220, len = 15), 1) |
- | y0 <- 10.3 + 0.12 * x | + | y0 <- 10.3 + 0.12 * x1 |
- | res <- rnorm(length(x), 0, 5) | + | res <- rnorm(length(x1), 0, 5) |
y1 <- y0 + res | y1 <- y0 + res | ||
+ | xm <- mean(x1) | ||
+ | ym <- mean(y1) | ||
</code> | </code> | ||
Linha 67: | Linha 76: | ||
<code rsplus> | <code rsplus> | ||
par(mar = c(4, 4, 2, 2), cex.lab = 1.5, cex.axis = 1.5, las = 1, bty = "n") | par(mar = c(4, 4, 2, 2), cex.lab = 1.5, cex.axis = 1.5, las = 1, bty = "n") | ||
- | plot(x1, y1, type = "n", axes = FALSE, ann = FALSE, , ylim = range(y1), xlim = range(x1)) | + | plot(x1, y1, type = "n", axes = FALSE, ann = FALSE, ylim = range(y1), xlim = range(x1)) |
rect(par()$usr[1], par()$usr[3], par()$usr[2], par()$usr[4], col = rgb(0, 0, 0, 0.15)) | rect(par()$usr[1], par()$usr[3], par()$usr[2], par()$usr[4], col = rgb(0, 0, 0, 0.15)) | ||
axis(1) | axis(1) | ||
Linha 74: | Linha 83: | ||
mtext(text = "Variável resposta (y1)", side = 2, line = 3, cex = 1.5, las =0) | mtext(text = "Variável resposta (y1)", side = 2, line = 3, cex = 1.5, las =0) | ||
cores <- c(rgb(1, 0, 0, 0.3), rgb(0, 0, 1, 0.3)) | cores <- c(rgb(1, 0, 0, 0.3), rgb(0, 0, 1, 0.3)) | ||
- | points(x, y0, pch = 16, cex = 0.8, col = cores[1] ) | + | points(x1, y0, pch = 16, cex = 0.8, col = cores[1] ) |
- | points(x, y1, pch = 19, col = cores[2]) | + | points(x1, y1, pch = 19, col = cores[2]) |
legend("bottomright", legend = c("y0 = 10.3 + 0.12 x1", "y1 = y0 + N(0, 5)"), bty = "n", col = cores, pch = 19) | legend("bottomright", legend = c("y0 = 10.3 + 0.12 x1", "y1 = y0 + N(0, 5)"), bty = "n", col = cores, pch = 19) | ||
</code> | </code> | ||
Linha 84: | Linha 93: | ||
==== Estimando os parâmetros ==== | ==== Estimando os parâmetros ==== | ||
+ | |||
+ | {{:02_tutoriais:tutorial7:convAxisLeg.png?600 |}} | ||
Os valores em ''x1'' e ''y1'', a partir desse ponto, são os dados, provenientes de uma amostra aleatória de ''y1'' e de sua relação determinística com ''x1''. Vamos esquecer que geramos os dados. Vamos partir do ponto que temos os dados coletados e precisamos fazer as inferências relacionadas à relação ''y1 ~ x1''. | Os valores em ''x1'' e ''y1'', a partir desse ponto, são os dados, provenientes de uma amostra aleatória de ''y1'' e de sua relação determinística com ''x1''. Vamos esquecer que geramos os dados. Vamos partir do ponto que temos os dados coletados e precisamos fazer as inferências relacionadas à relação ''y1 ~ x1''. | ||
Linha 119: | Linha 130: | ||
Agora, precisamos encontrar entre as muitas possibilidades de inclinação, aquela que <wrap em>minimiza</wrap> o valor de soma dos desvios quadráticos. | Agora, precisamos encontrar entre as muitas possibilidades de inclinação, aquela que <wrap em>minimiza</wrap> o valor de soma dos desvios quadráticos. | ||
- | Por sorte já sabemos fazer iterações e gráficos no R! Vamos utilizar o gráfico anterior como base e fazer muitos gráficos com diferentes inclinações e ao mesmo tempo calcular a soma dos desvios ao quadrado. | + | Por sorte já sabemos fazer iterações e gráficos no R! Vamos utilizar o gráfico anterior como base e fazer muitos gráficos com diferentes inclinações e ao mesmo tempo calcular a soma dos desvios ao quadrado. Antes vamos calcular os valores para diferentes inclinações: |
+ | |||
+ | <code rsplus> | ||
+ | bsim <- seq(-0.05, 0.29, 0.005) | ||
+ | asim <- ym - bsim * xm | ||
+ | nsim <- length(bsim) | ||
+ | ML <- rep(NA, nsim) | ||
+ | MQ <- rep(NA, nsim) | ||
+ | for (i in 1:nsim) | ||
+ | { | ||
+ | spred <- asim[i] + bsim[i] * x1 | ||
+ | MQ[i] <- sum((spred - y1)^2) | ||
+ | ML[i] <- prod(dnorm(y1, mean = spred, sd = 5, log = FALSE)) | ||
+ | } | ||
+ | estima <- data.frame(alfa = asim, beta = bsim, ML = ML, MQ = MQ, logML = log10(ML)) | ||
+ | </code> | ||
+ | |||
+ | Acima, criamos uma sequencia de valores para representar diferentes inclinações ''bsim'', estimamos o intercepto, ''asim'', a partir dessas inclinações. Em seguinda utilizamos esses coeficientes para calcular o valor de soma quadrática, ''MQ'', e verossimilhança, ''ML''. | ||
+ | |||
Abaixo um gráfico animado. A única função que ainda não conhecemos é ''Sys.sleep''((Consulte a documentação!)), que é uma forma de fazer o R dar um cochilada durante os ciclos, sem isso não seria possível ver os quadros. | Abaixo um gráfico animado. A única função que ainda não conhecemos é ''Sys.sleep''((Consulte a documentação!)), que é uma forma de fazer o R dar um cochilada durante os ciclos, sem isso não seria possível ver os quadros. | ||
Linha 177: | Linha 207: | ||
Nossas estimativas parecem muito boas! | Nossas estimativas parecem muito boas! | ||
- | Não precisamos fazer a simulação para fazer estimativas. A função ''lm'' faz isso para por nós. | + | Quando construímos modelos, não precisamos fazer a simulação para fazer estimativas, a função ''lm'' faz isso para nós. |
===== Modelos Lineares ===== | ===== Modelos Lineares ===== | ||
Linha 289: | Linha 319: | ||
*1. Cria valores aleatórios de uma normal com média zero e desvio padrão igual a 5; | *1. Cria valores aleatórios de uma normal com média zero e desvio padrão igual a 5; | ||
- | *2. Somo esses valores ao valor ''y0 '', proveniente da relação ''y ~ x'' da população e cria os dados ''ySim''; | + | *2. Soma esses valores ao valor ''y0 '', proveniente da relação ''y ~ x'' da população e cria os dados ''ySim''; |
*3. Cria o modelo com o ''ySim ~ x1''; | *3. Cria o modelo com o ''ySim ~ x1''; | ||
*4. Guarda os coeficientes do modelo em ''cSim''; | *4. Guarda os coeficientes do modelo em ''cSim''; | ||
Linha 403: | Linha 433: | ||
===== Tabela de Anova de uma Regressão ===== | ===== Tabela de Anova de uma Regressão ===== | ||
- | <WRAP center round box 60%> | + | <WRAP center round box 100%> |
+ | <WRAP center round tip 80%> | ||
+ | Video na disciplina de Princípios de Planejamento e Análise de Dados. Desconsidere qualquer referência à disciplina. O tema tratado é a partição de variação dos dados. | ||
{{youtube>C4urUFRGDvo}} | {{youtube>C4urUFRGDvo}} | ||
+ | |||
+ | </WRAP> | ||
</WRAP> | </WRAP> | ||
Linha 822: | Linha 856: | ||
</WRAP> | </WRAP> | ||
- | São muitos conceitos não triviais. É necessário exercitá-los para sedimentar as informações. Em um primeiro momento contente-se em ter compreendido, mesmo que ainda pareça nebuloso. | + | São muitos conceitos não triviais. Em um primeiro momento, busque alguma compreensão, mesmo que ainda pareça nebuloso. |
</WRAP> | </WRAP> | ||
+ | <WRAP center round box 100%> | ||
+ | Aula síncrona da disciplina no google meet, gravada em 01 de outubro de 2020. Nela abordo a construção e interpretação de modelos lineares simples no ambiente de programação R, focando no resumo (''summary'') com as principais informações do modelo. Uma bom entendimento do resumo do modelo é essencial para interpretação correta do resultado. Veja curso completo em: | ||
+ | http://ecor.ib.usp.br | ||
+ | <WRAP center round tip 80%> | ||
+ | {{youtube>VRrJ487k5qY}} | ||
+ | </WRAP> | ||
+ | |||
+ | </WRAP> | ||