Hi: I agree with Ista's point that you shouldn't be doing loess with these data (x and y both need to be continuous for loess, but your x is discrete), but you shouldn't be computing boxplots at each YMRS_Sum value either because you don't have enough resid observations at Sum = 3 and 4. A combination of stripplot and average line would seem to be a reasonable thing to do, though, as long as you don't try to overinterpret it - the standard errors across Sum values are likely to be quite variable due to the severe imbalance in sample size. Even error bars don't make sense because there are two observations at Sum = 3 and three at Sum = 4, so the local standard deviation/standard error estimates will be quite uncertain.
The lattice version of the plot is rather simple: library(lattice) xyplot(resid ~ YMRS_Sum, type = c('p', 'a'), pch = 16, col = 1, col.line = 'red', lwd = 2) # Add grid and least squares line (spoiler alert - it's essentially flat): xyplot(resid ~ YMRS_Sum, type = c('g', 'p', 'a', 'r'), pch = 16, col = 1, lwd = 2) # To get separate colors for the lines, a panel function is required: xyplot(resid ~ YMRS_Sum, type = c('g', 'p', 'a'), pch = 16, col= 1, lwd = 2, panel = function(x, y, ...) { panel.xyplot(x, y, ...) panel.lmline(x, y, col.line = 'red', ...) } ) The ggplot2 version is a little more complicated because the means are computed and plotted by ggplot2: library(ggplot2) h <- ggplot(d, aes(x = YMRS_Sum, y = resid)) h + geom_point() + theme_bw() + stat_summary(fun.y='mean', colour='red', geom='line', size = 1) # Add least squares line with confidence bands h + geom_point() + theme_bw() + stat_summary(fun.y='mean', colour='red', geom='line', size = 1) + geom_smooth(method = 'lm') I like the confidence bands here because it points up the uncertainty in the line where the data are sparse, but to get rid of it, use the option se = FALSE. (Zero slope falls well within the confidence bands...) HTH, Dennis On Tue, Oct 19, 2010 at 2:43 PM, phoebe kong <sityeek...@gmail.com> wrote: > Hi there, > > I would like to draw a scatter plot and fit a smooth line by loess. > Below is the data. > However, the curve line started from 0, which my "resid" list doesn't > consist of 0 value. > It returned some warnings which I don't know if this is the reason > affecting such problem. Here I also attached the warning messages. > Please let me know if there is a solution to fix this. Thank you very > much! > > YMRS_Sum<-c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 1, 1, > 4, 0, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, 1, 4, 2, 1, 2, 0, 1, > 0, 0, 0, 0, 2, 0, 0, 3, 0, 0, 0, 0, 2, 0, 4, 0, 2, 0, 0) > > resid<-c(80.1150, 84.0279, 88.3736, 90.1557, 55.1979, 78.4293, > 87.4367, 74.0271, 80.8871, 91.5685, 82.4154, 73.3080, 66.7786, > 70.2486, 82.4971, 77.3792, 70.7731, 66.9593, 85.5515 81.4071, 68.6646, > 89.8271, 91.6041, 85.1980, 80.6071, 86.4362, 86.2915, 86.4493, > 87.8664, 84.5150, 64.4975, 79.1246, 84.9350, 89.1608, 92.7546, > 70.0253, 81.4146, 73.2755, 82.5200, 79.7164, 92.0786, 82.5633, > 84.4336, 84.0193, 64.8029, 87.4864, 86.3338, 75.6758, 86.8567, > 85.1077, 88.9533, 81.7240, 84.1713, 80.0400, 77.6050, 81.4436, > 83.8379, 72.5050, 80.5423, 83.2564, 84.1436, 90.0662, 84.5293, > 81.6771, 90.6425, 90.3285, 76.2371, 87.3625, 70.7917, 77.0993, > 88.3608, 89.7200, 79.1031, 79.7421, 84.2469, 83.9371, 73.8800, > 89.3921, 89.3900, 86.8921, 85.7036, 85.2664, 83.8700, 90.5493) > > > scatter.smooth(YMRS_Sum,resid) > > Warning messages: > 1: at -0.02 > 2: radius 0.0004 > 3: all data on boundary of neighborhood. make span bigger > 4: pseudoinverse used at -0.02 > 5: neighborhood radius 0.02 > 6: reciprocal condition number nan > 7: zero-width neighborhood. make span bigger > 8: There are other near singularities as well. 1 > 9: at -0.02 > 10: radius 0.0004 > 11: all data on boundary of neighborhood. make span bigger > 12: pseudoinverse used at -0.02 > 13: neighborhood radius 0.02 > 14: reciprocal condition number nan > 15: zero-width neighborhood. make span bigger > 16: There are other near singularities as well. 1 > 17: at -0.02 > 18: radius 0.0004 > 19: all data on boundary of neighborhood. make span bigger > 20: pseudoinverse used at -0.02 > 21: neighborhood radius 0.02 > 22: reciprocal condition number nan > 23: zero-width neighborhood. make span bigger > 24: There are other near singularities as well. 1 > 25: at -0.02 > 26: radius 0.0004 > 27: all data on boundary of neighborhood. make span bigger > 28: pseudoinverse used at -0.02 > 29: neighborhood radius 0.02 > 30: reciprocal condition number nan > 31: zero-width neighborhood. make span bigger > 32: There are other near singularities as well. 1 > 33: In simpleLoess(y, x, w, span, degree, FALSE, FALSE, normalize = > FALSE, ... : > at -0.02 > 34: In simpleLoess(y, x, w, span, degree, FALSE, FALSE, normalize = > FALSE, ... : > radius 0.0004 > 35: In simpleLoess(y, x, w, span, degree, FALSE, FALSE, normalize = > FALSE, ... : > all data on boundary of neighborhood. make span bigger > 36: In simpleLoess(y, x, w, span, degree, FALSE, FALSE, normalize = > FALSE, ... : > pseudoinverse used at -0.02 > 37: In simpleLoess(y, x, w, span, degree, FALSE, FALSE, normalize = > FALSE, ... : > neighborhood radius 0.02 > 38: In simpleLoess(y, x, w, span, degree, FALSE, FALSE, normalize = > FALSE, ... : > reciprocal condition number nan > 39: In simpleLoess(y, x, w, span, degree, FALSE, FALSE, normalize = > FALSE, ... : > zero-width neighborhood. make span bigger > 40: In simpleLoess(y, x, w, span, degree, FALSE, FALSE, normalize = > FALSE, ... : > There are other near singularities as well. 1 > > > Thanks, > Phoebe > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.