Inserir no gráfico em forma de texto a função que gerou a regressão e seu R²

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Inserir no gráfico em forma de texto a função que gerou a regressão e seu R²

Mensagem por Marcello Guerreiro em Seg Nov 06, 2017 11:47 am

Prezado Marcos,

Nos pacotes estatísticos de outros programas, conseguimos inserir no gráfico a função gerada a partir de uma regressão por exemplo e seu valor de ajuste o R², como podemos realizar o mesmo no R, depois que adicionamos uma reta pelo comando abline? é possível fazer isso por comando direto, sem termos que digitar toda a função e o R² calculado em forma de texto? Mas é importante saber como fazer em forma de texto também, como já sabemos o R possui muitas formas de fazer a mesma coisa.

Abs
avatar
Marcello Guerreiro

Mensagens : 27
Data de inscrição : 08/10/2017
Idade : 39
Localização : Rio de Janeiro

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Inserir no gráfico em forma de texto a função que gerou a regressão e seu R²

Mensagem por Prof. Marcos em Qua Nov 08, 2017 11:58 am

Oi, Guerreiro!

Então, talvez exista um caminho automático (como uma função para isso), mas não conheço. Posso procurar um pouco, na certa alguém pensou a respeito e fez. Wink

Agora, há um caminho intermediário, que eu acho bem interessante. Você pode usar o resultado da regressão para "chamar" os valores dos coeficientes e do R2, de tal forma que você pode criar um script que sempre coloca este valores no seu gráfico, mas sem ter que digitar os números. Veja aqui como acessar os valores sem digitar:

Código:
#Dados:
data(iris)

#Regressão:
modelo<-lm(iris$Sepal.Length~iris$Petal.Width)
summary(modelo)

#Gráfico com reta:
plot(iris$Sepal.Length~iris$Petal.Width, las=1, pch=16)
abline(modelo, col="red", lty=2)


#Olhando o objeto com o modelo, para achar os coeficientes da equação:
str(modelo)

#Os coefiecientes da fórmula estão em:
modelo$coefficients


#Já o R2 está mais escondido, veja aqui:
str(summary(modelo))

#Daí, para obtê-lo:
summary(modelo)$adj.r.squared


E claro que você pode arredondar, por exemplo:

Código:
round(summary(modelo)$adj.r.squared, 2)

No caso dos coeficientes, se quiser um de cada vez, faça assim:

Código:

#Intercepto:
modelo$coefficients[2]
#Inclinação:
modelo$coefficients[1]

Qualquer coisa vamos seguindo com o papo!
avatar
Prof. Marcos

Mensagens : 259
Data de inscrição : 23/12/2015
Idade : 36
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Inserir no gráfico em forma de texto a função que gerou a regressão e seu R²

Mensagem por Marcello Guerreiro em Qua Nov 08, 2017 12:13 pm

Professor Marcos, Ok, encontramos os valores, agora, como eu posso plotar no gráfico a função e o R² de forma literal, como uma legenda?
avatar
Marcello Guerreiro

Mensagens : 27
Data de inscrição : 08/10/2017
Idade : 39
Localização : Rio de Janeiro

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Inserir no gráfico em forma de texto a função que gerou a regressão e seu R²

Mensagem por Prof. Marcos em Qua Nov 08, 2017 4:23 pm

Opa, bora lá então!

Para começar com um exemplo completamente genérico, pegue o gráfico do exemplo anterior e, com ele aberto, execute:

Código:
#Com o gráfico ainda aberto, execute:
text(0.5, 7.5, "y=ax+b")


Isso vai escrever a equação no gráfico, nas coordenadas 0.5, 7.5.
Você pode mexer nas coordenadas para achar posições melhores.
Ou, se preferir que a equação apareça na margem, pode usar a função mtext() no lugar de text().

Já volto para dar o exemplo completo, com os dados da regressão.
avatar
Prof. Marcos

Mensagens : 259
Data de inscrição : 23/12/2015
Idade : 36
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Inserir no gráfico em forma de texto a função que gerou a regressão e seu R²

Mensagem por Prof. Marcos em Qua Nov 08, 2017 4:26 pm

Ah, e podemos usar a função expres​sion() para gerar equações que não sejam apenas texto, ok?

Mas já volto com o exemplão. Wink
avatar
Prof. Marcos

Mensagens : 259
Data de inscrição : 23/12/2015
Idade : 36
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Inserir no gráfico em forma de texto a função que gerou a regressão e seu R²

Mensagem por Prof. Marcos em Qua Nov 08, 2017 4:40 pm

Aqui para plotar a equação completinha, usando os dados extraídos do modelo:

Código:
a<-round(modelo$coefficients[1],2)
b<-round(modelo$coefficients[2],2)

plot(iris$Sepal.Length~iris$Petal.Width, las=1, pch=16)
abline(modelo, col="red", lty=2)
text(0.5, 7.5, paste("y=", a, "x", "+", b))


avatar
Prof. Marcos

Mensagens : 259
Data de inscrição : 23/12/2015
Idade : 36
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Inserir no gráfico em forma de texto a função que gerou a regressão e seu R²

Mensagem por Marcello Guerreiro em Qua Nov 08, 2017 5:03 pm

Legal. Sou muito agradecido por sua dedicação e ajuda! Este curso esta sendo ótimo, e estamos no começo. Muito obrigado
avatar
Marcello Guerreiro

Mensagens : 27
Data de inscrição : 08/10/2017
Idade : 39
Localização : Rio de Janeiro

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Inserir no gráfico em forma de texto a função que gerou a regressão e seu R²

Mensagem por Marcello Guerreiro em Qua Nov 08, 2017 5:09 pm

Excelente,

Olhe o que fiz depois

Código:
plot(iris$Sepal.Length~iris$Petal.Width, las=1, pch=16)
abline(modelo, col="red", lty=2)
text(0.5, 7.5, paste("y=", a, "x", "+", b, " ", "R²=", round(summary(modelo)$adj.r.squared,4)))

Ficou ótimo

avatar
Marcello Guerreiro

Mensagens : 27
Data de inscrição : 08/10/2017
Idade : 39
Localização : Rio de Janeiro

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Inserir no gráfico em forma de texto a função que gerou a regressão e seu R²

Mensagem por Prof. Marcos em Qua Nov 08, 2017 5:12 pm

Que massa, Guerreiro, ficou bom mesmo!

E fico feliz que esteja aproveitando bem o curso. Vamos seguindo e aprendendo, fico sempre feliz em poder ajudar ao longo das aulas, pois acabo aprendendo mais coisas no caminho também.

Abraços!
avatar
Prof. Marcos

Mensagens : 259
Data de inscrição : 23/12/2015
Idade : 36
Localização : Maceió, AL

Ver perfil do usuário https://cantinhodor.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Inserir no gráfico em forma de texto a função que gerou a regressão e seu R²

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum