【问题标题】:Random, curvy distribution of data points数据点的随机曲线分布
【发布时间】:2011-05-27 23:59:44
【问题描述】:

背景

提供一个 R 编程示例。

问题

创建一个值分布,当建模时,该分布会产生类似于以下内容的曲线:

基本上,我想做这样的事情:

x <- seq( 0, 2, by=0.01 )
y <- sin( 2 * pi * cos( x - 1/2 ) )
plot( x, y * runif( x ) )

但没有 0.5 左右的数据点聚集:

问题

您将如何创建这样的分布?

谢谢!

【问题讨论】:

    标签: r random package distribution curve-fitting


    【解决方案1】:
    slo<-0.5 #slope of underlying trend
    sta<--0.5 #starting y value
    amp<-0.2 #amplitude of sine wave
    fre<-3 #frequency of sine wave
    noi<-0.8 #amplitude of noise term
    x<-seq(0,2,0.01)
    y<-sta+(slo*x)+(amp*sin(fre*x)) #y no noise
    ywnoise<-y+(noi*(runif(length(x))-0.5)) #y with noise
    
    plot(x,ywnoise)
    lines(x,y, col="orange")
    grid()
    

    【讨论】:

    • 这正是我的想法。太棒了,谢谢。 (很好地与网格接触。)
    【解决方案2】:

    由于 sin(2*pi*cos(x-0.5)) 在 0.5 处变为零,您应该尝试添加 runif()

    x <- seq( 0, 2, by=0.01 )
    y <- sin( 2 * pi * cos( x - 1/2 ) ) +runif(201)
    plot( x,y  )
    lines(loess(y~x)$x, lowess(y~x)$y)
    

    【讨论】:

      【解决方案3】:

      嗯...我不确定您的分布是否需要任何特定的统计属性,但是这样的事情可以消除团块

      plot(x,y+rnorm(length(x), 0, 0.2))
      

      【讨论】:

      • 这与我想要使用的非常接近。谢谢!
      猜你喜欢
      • 2020-05-05
      • 2016-02-03
      • 2010-09-16
      • 2016-10-04
      • 2012-11-07
      • 2012-09-04
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      相关资源
      最近更新 更多