簡體   English   中英

在R中繪制線性模型(lm)對象的機制?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM