【问题标题】:Nonlinear models with dicotomic affecting to a subset of parameters影响参数子集的二分法非线性模型
【发布时间】:2014-04-28 14:52:43
【问题描述】:

我一直在R 使用非线性模型,例如我们:

Y = Alpha1*time + Alpha2*sin(2*pi*time/Alpha3) + Alpha4*(-1)^time

我会确定一个伯努利变量是否会影响Alpha1*time 并拦截。这样的伯努利变量可能是:

varia<-rep("BEFORE","AFTER"),each=30)

Y<- -2.5+rnorm(60)+2*sin(2*pi*time/8)+2.5*(-1)^time
time<-seq(1,60)

我发现nls 可以拟合这个模型,但没有这个分类变量的影响,我还发现nlme 包可以估计变量而不是非线性模型的影响。 我的问题是:这些软件包中的哪一个可以帮助我?而且,我怎么能在代码中添加这个伯努利变量? 问候和感谢。

【问题讨论】:

    标签: r regression piecewise nlme nlm


    【解决方案1】:

    .lin4 下方将是AFTER 添加到Y 的数量:

    # test data
    set.seed(123)
    time<-seq(1,60)
    Y<- -2.5+rnorm(60)+2*sin(2*pi*time/8)+2.5*(-1)^time
    varia <- rep(c('BEFORE', 'AFTER'), each = 30)
    
    fm <- nls(Y ~ cbind(1, sin(2 * pi * time/Alpha3), (-1)^time, varia == "AFTER"), 
     start = list(Alpha3 = 8), alg = "plinear")
    
    summary(fm)
    

    给予:

    Formula: Y ~ cbind(1, sin(2 * pi * time/Alpha3), (-1)^time, (varia == 
        "AFTER"))
    
    Parameters:
           Estimate Std. Error t value Pr(>|t|)    
    Alpha3  8.03367    0.02583 310.984  < 2e-16 ***
    .lin1  -2.55242    0.16740 -15.247  < 2e-16 ***
    .lin2   1.88528    0.16726  11.272 6.45e-16 ***
    .lin3   2.53734    0.11828  21.453  < 2e-16 ***
    .lin4   0.23992    0.23673   1.013    0.315    
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    Residual standard error: 0.9159 on 55 degrees of freedom
    
    Number of iterations to convergence: 3 
    Achieved convergence tolerance: 6.226e-07
    

    所以在这种情况下,除了最后一个参数外,所有参数都很重要,正如预期的那样。

    REVISED重新阅读问题后修改。

    【讨论】:

      猜你喜欢
      • 2019-08-19
      • 1970-01-01
      • 2013-07-28
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 2021-07-04
      相关资源
      最近更新 更多