2014-01-09 19 views
0

我想用lm()和optim()分析線性迴歸的結果。什麼軟件包可以輕鬆地繪製/分析optim()函數的擬合結果?

其實,從LM結果()函數很容易積或相關功能,如分析:

fit <- lm(y~x1+x2, data=dat) 

# I can plot 'Fitted values', 'Theoretical Quantiles', 'Fitted values' and 'Leverage' by plot() easily. 

plot(fit) 
durbinWatsonTest(fit) 

但是從的Optim()的結果不能由圖中可以接受()或其他功能,如:

> result.opt <- optim(par = c(0, 0, 0, 0,0, 0, 0), 
             min.OLS, 
             data = dat 
         ) 

> result.opt 
$par 
[1] 811.06933 285.10077 -476.69048 144.11307 273.46945 -30.65947 -279.02271 

$value 
[1] 152364.6 

$counts 
function gradient 
    502  NA 

$convergence 
[1] 1 

$message 
NULL 

> plot(result.opt) 
Error in xy.coords(x, y, xlabel, ylabel, log) : 
    'x' is a list, but does not have components 'x' and 'y' 

什麼包或方法可以做結果分析,繪製LM的結果呢?

在此先感謝。

+0

我懷疑有一個; 'optim()'是一個通用的優化工具。你可以把它傳遞給幾乎任何需要優化的東西,它會給它一個提示,但是包編寫者怎麼知道你用'optim()'做的是OLS適合的,但是其他的一些其他的用'optim() 「例如,是否適合GLMM?一種適合的方法對另一種適用不太可能。你只需要自己去處理這個問題,也許可以通過將'optim()'調用包裝在其他東西中來產生額外的信息。 –

+0

嗨加文,謝謝你的意見。你的關心是有道理的。 optim()是一個通用工具,他們不知道用戶提供了什麼方法,因此它不能給出具體的情節。我們可以通過某些方法將optimue()的返回結果轉換爲lm(),以便我可以應用OLS的例程? – Patric

+0

你可能想要檢查'stats4 :: mle':它只是'optim'的一個包裝,但是它增加了所有你可能會覺得有趣的信息,當通過最大似然擬合一個模型時 - 還有一個'plot'方法。 –

回答

0

什麼你問的是一個圖法optim,但我相信optim返回,沒有特定類的列表,所以它不可能爲它分配的方法。您可以很容易地編寫一個小函數,它抓取輸出列表的par元素,並使用它來生成要繪製的數據。

+0

感謝您的回答。是的,我意識到我的請求不適合OOP的編程模型,所以我必須定義我自己的optim()方法。 – Patric

相關問題