I want to add a non-linear regression line to a scatter plot in R. I've tried using the predict() command, but I have not been able to make it work for my data.
My friend is doing it in Stata, where graph twoway qfit x y yielded a curved line, as I wanted in R. Is there such a function in R?
            Asked
            
        
        
            Active
            
        
            Viewed 250 times
        
    0
            
            
         
    
    
        DespeRate
        
- 25
- 4
- 
                    When asking for help, you should include a simple [reproducible example](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) with sample input and desired output that can be used to test and verify possible solutions. – MrFlick Mar 05 '18 at 15:46
- 
                    Do you happen to know if I can upload a data set here, in some way? I don't know how to produce an example without that... – DespeRate Mar 05 '18 at 15:49
- 
                    The link I provided gives suggestions for including data with your question. It doesn't have to be your actual data, just something we can easily use for testing. – MrFlick Mar 05 '18 at 15:51
- 
                    @DespeRate did my solution work? – leeum Mar 06 '18 at 15:04
- 
                    @leeum Yes! Sorry for not getting back yet, but yes, it worked marvelously! I have even been able to use that for a project I'm working on, so thank you for that! – DespeRate Mar 07 '18 at 16:35
- 
                    @DespeRate great. Can you mark my answer as correct for future readers? Click the check mark – leeum Mar 07 '18 at 17:57
1 Answers
0
            Answer using library(ggplot2)
You want to use geom_smooth in your data. I believe method = 'gam' will give you a curved line. So if you have this below:
ggplot(data = df) + geom_scatter(aes(x = xvar, y = yvar))
You need to just add
ggplot(data = df) + geom_scatter(aes(x = xvar, y = yvar)) + 
geom_smooth(aes(x = xvar, y = yvar), method = 'gam')
See here for more info: http://ggplot2.tidyverse.org/reference/geom_smooth.html
 
    
    
        leeum
        
- 264
- 1
- 13