【问题标题】:How to add noise in R如何在R中添加噪音
【发布时间】:2015-07-24 10:31:31
【问题描述】:

我是 R 编程新手。我有一个方程,并使用 R 的 nls 函数来估计一些参数(b1、b2、b3、b4、b5、b6、b7)。我有我的起始值,但不知何故我从 R 得到“奇异梯度”错误。当我改变我的一两个起始值时,它工作正常。但是我的起始值不应该因为我的研究论文而改变。我在网上做了一些研究,发现这种情况源于缺乏噪音。这是我的工作代码。有没有人知道如何在这段代码中添加噪音?谢谢。

    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)                            

【问题讨论】:

  • 我从来不知道没有噪音是一件坏事。无论如何,jitter 会增加一点噪音。
  • b1-b7 是如何计算的?它们是否共线?

标签: r regression nls


【解决方案1】:

rnorm 会给你正态分布的噪音。例如:

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

runifrpoisrbinom 以及更多可用。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-30
    • 2012-03-12
    • 2015-11-01
    • 2013-04-12
    • 1970-01-01
    • 2011-09-02
    • 2012-03-22
    • 2012-12-03
    相关资源
    最近更新 更多