Ferramentas do usuário

Ferramentas do site


02_tutoriais:tutorial7:start

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

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:27]
adalardo [Variável Indicadora]
02_tutoriais:tutorial7:start [2020/10/02 18:30]
adalardo [Variável Indicadora]
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''​ ea 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)
-<- 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 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 826: Linha 860:
 </​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>​
  
  
02_tutoriais/tutorial7/start.txt · Última modificação: 2023/09/11 15:58 (edição externa)