[英]Mechanics of plotting a linear model (lm) object in R?
例:
x <- c(1,2,5,6)
y <- c(3,5,2,9)
m <- lm(y ~ x)
plot(m)
plot(m)將吐出一系列情節。 我的問題是,我怎么知道它會噴出什么樣的情節? Paul Teetor的書如何知道編寫plot(m, which=1)
來選擇殘差圖? ls.str(m)
在這里顯得毫無用處。
我的猜測是lm類有一些為plot()
函數定義的接口,但是我不知道如何獲取有關它是如何工作的或有什么圖可用的信息(除了輸入plot(m)
和寫入之外)落下黑盒吐出的東西)。
這一頁
http://stat.ethz.ch/R-manual/R-patched/library/stats/html/plot.lm.html
解釋了6個情節。
第一個是殘差,對應於你的例子中的which=1
。 以下是該頁面的引用:
Six plots (selectable by which) are currently available: a plot of residuals against fitted values, a Scale-Location plot of sqrt(| residuals |) against fitted values, a Normal QQ plot, a plot of Cook's distances versus row labels, a plot of residuals against leverages, and a plot of Cook's distances against leverage/(1-leverage). By default, the first three and 5 are provided.
我希望網頁是朝着正確的方向邁出的一步。
你提到“ lm
類有一些為plot()
函數定義的接口”。 實際上,這是R中的S3機制,它遵循“method.class”命名約定。 這里,方法是plot
,類是lm
。 您不必鍵入plot.lm
以獲取這些圖。 當你調用plot
,R將首先檢查第一個參數的類類型,並將它(在這種情況下為m
)賦予類lm
; 然后R自動調用plot.lm
函數。
對於plot
方法,您可以通過在R中鍵入methods(plot)
來看到它適用於更多類:
[1] plot.acf* plot.data.frame* plot.decomposed.ts* plot.default plot.dendrogram*
[6] plot.density plot.ecdf plot.factor* plot.formula* plot.function
[11] plot.gofm* plot.gofv* plot.hap.score* plot.hclust* plot.histogram*
[16] plot.HoltWinters* plot.isoreg* plot.lm plot.md plot.medpolish*
[21] plot.mlm plot.ppr* plot.prcomp* plot.princomp* plot.profile.nls*
[26] plot.spec plot.spline* plot.stepfun plot.stl* plot.table*
[31] plot.ts plot.tskernel* plot.TukeyHSD plot.xyVector*
Non-visible functions are asterisked
你看plot.lm
就是其中之一。 要了解其中任何一個,您可以使用fix(plot.lm)
。 然后你會注意到第一行:
caption = list("Residuals vs Fitted",
"Normal Q-Q", "Scale-Location", "Cook's distance", "Residuals vs Leverage",
expression("Cook's dist vs Leverage " * h[ii]/(1 - h[ii])))
當你在類lm
的對象上調用plot
時,顯然你會知道構造了哪些圖:)希望這會有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.