Many thanks Duncun, Best, Le samedi 31 mars 2018 ? 18:05:53 UTC+2, Duncan Murdoch <murdoch.duncan at gmail.com> a ?crit : On 31/03/2018 11:57 AM, varin sacha via R-help wrote:> Dear R-experts, > > Here below my reproducible R code. I want to add many straight lines to a plot using "abline" > The last fit (fast Tau-estimator, color yellow) will not appear on the plot. What is going wrong ? > Many thanks for your reply. >It's not quite reproducible:? you forgot the line to create Dataset. It's probably something like Dataset <- data.frame(Y, Z)> ########## > > Y=c(2,4,5,4,3,4,2,3,56,5,4,3,4,5,6,5,4,5,34,21,12,13,12,8,9,7,43,12,19,21) > Z=c(43,2,1,2,34,4,3,4,5,30,4,5,4,3,4,5,56,6,43,21,34,19,12,11,9,34,21,23,2,19) > reg1<-lm(Z ~ Y) > plot(Y,Z) > abline(reg1, col="black") > > install.packages("robustbase") > library?(robustbase) > reg=lmrob(Z ~ Y, data = Dataset) > abline(reg, col="green") > > install.packages("MASS") > library(MASS) > Huber=rlm(Z ~ Y, data = Dataset) > abline(Huber,col="red") > > Tukey=rlm(Z ~ Y, data = Dataset,psi=psi.bisquare) > abline(Tukey,col="purple") >? > install.packages("quantreg") > library(quantreg) > L1=rq(Z ~ Y, data = Dataset,tau=0.5) > abline(L1,col="blue") >? > install.packages("RobPer") > library(RobPer) > FastTau(Z,Y) > fast=FastTau(Z,Y) > abline(fast, col="yellow")abline() doesn't know what to do with the "fast" object.? It isn't a vector containing intercept and slope, it's a list containing them.? So you'll need something like abline(unlist(fast), col="yellow") Duncan Murdoch> > ########## >? > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. >
R-experts, I have fitted many different lines. The fast-tau estimator (yellow line) seems strange to me?because this yellow line is not at all in agreement with the other lines (reverse slope, I mean the yellow line has a positive slope and the other ones have negative slope). Is there something wrong in my R code ? Is it because the Y variable is 1 vector and should be a matrix ? Here is the reproducible code ############### X=c(5,3,2,4,7,6,9,3,7,11,1,6,4,5,6,9,4,5,34,2,1,3,12,8,9,7,4,12,19,21) Y=c(25,24,23,19,17,14,13,14,25,13,17,25,14,13,19,25,16,16,20,21,25,19,12,11,9,28,21,10,2,8) {reg1<-lm(Y ~ X) plot(X,Y) abline(reg1, col="black") install.packages("robustbase") library?(robustbase) reg=lmrob(Y ~ X) abline(reg, col="green") install.packages("MASS")? library(MASS) Huber=rlm(Y ~ X) abline(Huber,col="red") Tukey=rlm(Y ~ X,psi=psi.bisquare) abline(Tukey,col="purple") install.packages("quantreg") library(quantreg) L1=rq(Y ~ X,tau=0.5) abline(L1,col="blue") install.packages("RobPer") library(RobPer) FastTau(Y,X) fast=FastTau(Y,X) abline(unlist(fast), col="yellow") legend("topright",c("OLS",?"L1",?"Huber M-estimator", "Tukey", "MM", "fast tau"),inset=0.02,lwd=2,col=c("black","blue","red","purple","green", "yellow"),cex=.9)} ############### Le samedi 31 mars 2018 ? 21:52:55 UTC+2, varin sacha via R-help <r-help at r-project.org> a ?crit : Many thanks Duncun, Best, Le samedi 31 mars 2018 ? 18:05:53 UTC+2, Duncan Murdoch <murdoch.duncan at gmail.com> a ?crit : On 31/03/2018 11:57 AM, varin sacha via R-help wrote:> Dear R-experts, > > Here below my reproducible R code. I want to add many straight lines to a plot using "abline" > The last fit (fast Tau-estimator, color yellow) will not appear on the plot. What is going wrong ? > Many thanks for your reply. >It's not quite reproducible:? you forgot the line to create Dataset. It's probably something like Dataset <- data.frame(Y, Z)> ########## > > Y=c(2,4,5,4,3,4,2,3,56,5,4,3,4,5,6,5,4,5,34,21,12,13,12,8,9,7,43,12,19,21) > Z=c(43,2,1,2,34,4,3,4,5,30,4,5,4,3,4,5,56,6,43,21,34,19,12,11,9,34,21,23,2,19) > reg1<-lm(Z ~ Y) > plot(Y,Z) > abline(reg1, col="black") > > install.packages("robustbase") > library?(robustbase) > reg=lmrob(Z ~ Y, data = Dataset) > abline(reg, col="green") > > install.packages("MASS") > library(MASS) > Huber=rlm(Z ~ Y, data = Dataset) > abline(Huber,col="red") > > Tukey=rlm(Z ~ Y, data = Dataset,psi=psi.bisquare) > abline(Tukey,col="purple") >? > install.packages("quantreg") > library(quantreg) > L1=rq(Z ~ Y, data = Dataset,tau=0.5) > abline(L1,col="blue") >? > install.packages("RobPer") > library(RobPer) > FastTau(Z,Y) > fast=FastTau(Z,Y) > abline(fast, col="yellow")abline() doesn't know what to do with the "fast" object.? It isn't a vector containing intercept and slope, it's a list containing them.? So you'll need something like abline(unlist(fast), col="yellow") Duncan Murdoch> > ########## >? > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.>______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.
Jeff Newmiller
2018-Apr-07 05:25 UTC
[R] Fast tau-estimator line does not appear on the plot
You need to pay attention to the documentation more closely. If you don't know what something means, that is usually a signal that you need to study more... in this case about the difference between an input variable and a design (model) matrix. This is a concept from the standard linear algebra formulation for regression equations. (Note that I have never used RobPer, nor do I regularly mess with model matrices, but I do recognize the term "design matrix" and used help.search("design matrix") to track this down.) Thanks for the reprex, though it is highly irregular to intersperse install.packages in code that may be run more than once. ###################### # install.packages( "robustbase" ) # install.packages( "MASS" ) # install.packages( "quantreg" ) # install.packages( "RobPer" ) library(robustbase) library(MASS) library(quantreg) library(RobPer) X <- c(5,3,2,4,7,6,9,3,7,11,1,6,4,5,6,9,4,5,34,2,1,3,12,8,9,7,4,12,19,21) Y <- c(25,24,23,19,17,14,13,14,25,13,17,25,14,13,19,25,16,16,20,21,25,19,12,11,9,28,21,10,2,8) reg1 <- lm( Y ~ X ) plot( X, Y ) abline( reg1, col = "black" ) reg <- lmrob( Y ~ X ) abline( reg, col = "green" ) Huber <- rlm( Y ~ X ) abline( Huber, col="red" ) Tukey <- rlm( Y ~ X, psi = psi.bisquare ) abline( Tukey, col = "purple" ) L1 <- rq( Y ~ X, tau = 0.5 ) abline( L1, col = "blue" ) fast <- FastTau(model.matrix(~X),Y) fast # save result, then print... avoid computing twice # model matrix leads to first element of beta as constant and # second element of beta as slope abline( fast$beta, col="yellow" ) legend( "topright" , c( "OLS" , "L1" , "Huber M-estimator" , "Tukey" , "MM" , "fast tau" ) , inset = 0.02 , lwd = 2 , col = c( "black","blue","red","purple","green", "yellow") , cex = .9 ) ###################### On Fri, 6 Apr 2018, varin sacha via R-help wrote:> R-experts, > > I have fitted many different lines. The fast-tau estimator (yellow line) seems strange to me?because this yellow line is not at all in agreement with the other lines (reverse slope, I mean the yellow line has a positive slope and the other ones have negative slope). > Is there something wrong in my R code ? Is it because the Y variable is 1 vector and should be a matrix ? > > Here is the reproducible code > > ############### > X=c(5,3,2,4,7,6,9,3,7,11,1,6,4,5,6,9,4,5,34,2,1,3,12,8,9,7,4,12,19,21) > Y=c(25,24,23,19,17,14,13,14,25,13,17,25,14,13,19,25,16,16,20,21,25,19,12,11,9,28,21,10,2,8) > > {reg1<-lm(Y ~ X) > plot(X,Y) > abline(reg1, col="black") > > install.packages("robustbase") > library?(robustbase) > reg=lmrob(Y ~ X) > abline(reg, col="green") > > install.packages("MASS")? > library(MASS) > Huber=rlm(Y ~ X) > abline(Huber,col="red") > > Tukey=rlm(Y ~ X,psi=psi.bisquare) > abline(Tukey,col="purple") > > install.packages("quantreg") > library(quantreg) > L1=rq(Y ~ X,tau=0.5) > abline(L1,col="blue") > > install.packages("RobPer") > library(RobPer) > FastTau(Y,X) > fast=FastTau(Y,X) > abline(unlist(fast), col="yellow") > > legend("topright",c("OLS",?"L1",?"Huber M-estimator", "Tukey", "MM", "fast tau"),inset=0.02,lwd=2,col=c("black","blue","red","purple","green", "yellow"),cex=.9)} > ############### > > > > > > > > > > Le samedi 31 mars 2018 ? 21:52:55 UTC+2, varin sacha via R-help <r-help at r-project.org> a ?crit : > > > > > > Many thanks Duncun, > > Best, > > > > > > Le samedi 31 mars 2018 ? 18:05:53 UTC+2, Duncan Murdoch <murdoch.duncan at gmail.com> a ?crit : > > > > > > On 31/03/2018 11:57 AM, varin sacha via R-help wrote: >> Dear R-experts, >> >> Here below my reproducible R code. I want to add many straight lines to a plot using "abline" >> The last fit (fast Tau-estimator, color yellow) will not appear on the plot. What is going wrong ? >> Many thanks for your reply. >> > > It's not quite reproducible:? you forgot the line to create Dataset. > It's probably something like > > Dataset <- data.frame(Y, Z) > >> ########## >> >> Y=c(2,4,5,4,3,4,2,3,56,5,4,3,4,5,6,5,4,5,34,21,12,13,12,8,9,7,43,12,19,21) >> Z=c(43,2,1,2,34,4,3,4,5,30,4,5,4,3,4,5,56,6,43,21,34,19,12,11,9,34,21,23,2,19) >> reg1<-lm(Z ~ Y) >> plot(Y,Z) >> abline(reg1, col="black") >> >> install.packages("robustbase") >> library?(robustbase) >> reg=lmrob(Z ~ Y, data = Dataset) >> abline(reg, col="green") >> >> install.packages("MASS") >> library(MASS) >> Huber=rlm(Z ~ Y, data = Dataset) >> abline(Huber,col="red") >> >> Tukey=rlm(Z ~ Y, data = Dataset,psi=psi.bisquare) >> abline(Tukey,col="purple") >> ? >> install.packages("quantreg") >> library(quantreg) >> L1=rq(Z ~ Y, data = Dataset,tau=0.5) >> abline(L1,col="blue") >> ? >> install.packages("RobPer") >> library(RobPer) >> FastTau(Z,Y) >> fast=FastTau(Z,Y) >> abline(fast, col="yellow") > > abline() doesn't know what to do with the "fast" object.? It isn't a > vector containing intercept and slope, it's a list containing them.? So > you'll need something like > > abline(unlist(fast), col="yellow") > > Duncan Murdoch > > >> >> ########## >> ? >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. > >> > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. >--------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k ---------------------------------------------------------------------------