全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3569 1
2014-06-30
R中使用nls做指数下降拟合,当y中含有NA时,不返回对应的预测值,如何解决
x <- c(0.25,  1.00,  4.00, 11.00, 18.00, 25.00, 32.00, 56.00)
y <- c(27.017,     NA, 26.497, 25.706, 25.430, 25.481, 25.299, 25.322)
data.xy <- as.list(cbind(x,y))
xy.nls <- nls(y ~ a * exp(-1 * b * x) + c, data = data.xy, start = list(a = 9, b = 0.004, c = 18))
summary(xy.nls)
xy.nls.pred <- predict(xy.nls, newdata = data.xy)

xy.nls.pred只返回了7个值,NA对应的值没有,如何解决?


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-12-8 18:16:43
系统应该会提示你这样一句话:“(1 observation deleted due to missingness)”

如果这里有缺失值,可以选择的方法一般有:删除存在缺失值的个案缺失值插补
如果去掉后信息过多丢失,可以考虑处理一下你的缺失值,考虑可以采用多重插补的方式。

R中的多重插补方式,可以通过mice包实现。
给你一个例子——

library(mice)
imp<-mice(mydata,m)
fit<-with(imp,analysis)
pooled<-pool(fit)
summary(pooled)
-----------------------------
我再解释一下:
mydata是一个包含缺失值的矩阵或数据框。
imp是一个包含m个插补数据集的列表对象,同时还含有完成插补过程的信息。默认地,m为5。
analysis是一个表达式对象,用来设定应用于m个插补数据集的统计分析方法。
方法包括做线性回归模型的lm()函数、做广义线性模型的glm()函数、做广义可加模型的gam(),以及做负二项模型的nbrm()函数。表达式在函数的括号中, ~的左边是响应变量,右边是预测变量(用+符号分隔开)。
fit是一个包含m个单独统计分析结果的列表对象。
pooled是一个包含这m个统计分析平均结果的列表对象。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群