如何在R中添加噪音

时间:2015-07-24 10:31:31

标签: r regression nls

我是R编程的新手。我有一个quation并使用R的nls函数来估计一些参数(b1,b2,b3,b4,b5,b6,b7)。我有我的起始值,但不知怎的,我得到了#34;奇异渐变"来自R的错误。当我查看一两个我的起始值时,它运行正常。但是由于我的研究论文,我的起始值不应该改变。我在网上做了一些研究,发现这种情况源于缺乏噪音。这是我的工作代码。 anyboy是否知道如何为此代码添加噪音?感谢。

    ComputeDi.Bi <- function(hi, d, h, b1, b2, b3, b4, b5, b6, b7){

            q <- hi/h
            t <- 1.30/h
            A <- sin(q*3.14/2)
            C <- sin(t*3.14/2)
            B <- log(A)/log(C)

            di <- d * (B^(b1+b2*sin(3.14*q/2)+b3*cos(3*3.14*q/2)+b4*sin(3.14*q/2)/q+b5*d+b6*q*(d^0.5)+b7*q*(h^0.5)))
            return(di)
    }

setwd("../Data")
sylvestris <- read.csv("ScotsPine100Trees_Turkey.csv")



nlmod.fp.di <- nls(di ~ ComputeDi.Bi(hi, d, h, b1, b2, b3, b4, b5, b6, b7), data = sylvestris, start = c(b1 = 2.16, b2 = -0.070, b3 = 0.031, b4 = -0.95, b5 = 0.0001, b6 = 0.075, b7 = -0.08), control = nls.control(tol = 1e-07))
summary(nlmod.fp.di, correlation = T)                            

1 个答案:

答案 0 :(得分:0)

rnorm会为您提供正常分布的噪音。例如:

ComputeDi.Bi(hi, d, h, b1, b2, b3, b4, b5, b6, b7) + rnorm(length(hi), mean = 0, sd = 0.1)

runifrpoisrbinom以及更多内容也可用。

我不确定你在这里想要做什么......我可能不理解你的问题,但如果你还没有噪音那么他们就不需要拟合统计模型了。