【发布时间】:2014-01-27 12:30:32
【问题描述】:
我正在尝试使用 lm() 和 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() 的结果不能被 plot() 或其他函数接受,例如:
> 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的结果?
提前致谢。
【问题讨论】:
-
我怀疑有一个;
optim()是一个通用的优化工具。你可以通过它来优化任何东西,它会试一试,但是一个包作者怎么会知道你用optim()做的事情是适合OLS的,但是其他一些乔用optim()做的事情是一个GLMM适合例如?适用于一种合身的方法不太可能适用于另一种。您只需要自己处理这个问题,也许可以通过将optim()调用包装在其他内容中,从而生成此类绘图所需的额外信息。 -
您好,Gavin,感谢您的意见。你的担心是有道理的。 optim() 是一个通用工具,他们不知道用户提供了什么方法,因此无法给出具体的情节。我们可以通过某些方法将 optim() 的返回结果转换为 lm() 以便我可以应用 OLS 的例程吗?
-
您可能需要检查
stats4::mle:它只是optim的包装,但它添加了您在通过最大似然拟合模型时可能会发现有趣的所有信息——而且还有plot方法。 -
我认为没有
plot.mle函数。bbmle::mle2的功能稍多一些,但可能不是您想要的。 -
我指的是
plot对象的plot方法。
标签: r optimization plot linear-regression