首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中为我的数据获取Loess函数?

如何在R中为我的数据获取Loess函数?
EN

Stack Overflow用户
提问于 2014-03-17 05:31:49
回答 2查看 1.3K关注 0票数 0

我有一些数据,我用R将它们画在一张图上,然后,我画出关于这些数据的黄土函数。代码如下:

代码语言:javascript
复制
data <- read.table("D:/data.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
ur <- subset(data, select = c(users,responseTime))
ur <- ur[with(ur, order(users, responseTime)), ]

plot(ur, xlab="Users", ylab="Response Time (ms)")
lines(ur)
loess_fit <- loess(responseTime ~ users, ur)
lines(ur$users, predict(loess_fit), col = "blue")

这是我的图:

怎样才能得到这个回归的函数呢?例如: responseTime = 68 + 45 *个用户。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-03-17 06:27:29

您可以使用代码中的loess_fit对象来预测响应时间。如果你想估算230个用户的平均响应时间,你可以这样做:

代码语言:javascript
复制
predict(loess_fit, newdata=data.frame(users=230))

这里有一个关于这个主题的有趣的blog post

编辑:如果您想对数据之外的值进行预测,则需要一个理论或进一步的假设。最简单的假设是线性拟合,

代码语言:javascript
复制
lm_fit <- lm(responseTime ~ users, data=ur)
predict(lm_fit, newdata=data.frame(users=400))

但是,您的数据可能会显示异方差(非常量方差),并且可能会显示非正态残差。您可能需要检查是否存在这种情况。如果是,那么一个健壮的线性拟合过程,比如MASS软件包中的rlm,或者一个广义的线性模型glm可能值得一试。我不是这方面的专家,也许其他人或Cross Validated可以提供更好的帮助。

票数 1
EN

Stack Overflow用户

发布于 2014-03-17 09:31:01

TeachingDemos包中的loess.demo函数显示了loess背后的逻辑。这可以帮助您了解发生了什么,以及为什么没有简单的预测功能。但是,对于预测,有一个与黄土拟合一起使用的predict函数来创建预测。您还可以找到预测特定x值的线性方程(但对于您想要预测的每个x值,它将是不同的)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22443302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档