楼主: 波列
980 2

[统计软件与数据分析] R软件Normal variates using uniform.R 内有具体内容 [推广有奖]

  • 0关注
  • 0粉丝

高中生

37%

还不是VIP/贵宾

-

威望
0
论坛币
538 个
通用积分
1.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3420 点
帖子
1
精华
0
在线时间
56 小时
注册时间
2015-7-27
最后登录
2024-10-25

楼主
波列 发表于 2016-4-18 10:43:29 |AI写论文
125论坛币


replace the function calls dnorm(newPosition) and dnorm(position) with
dnormmix(newPosition) and dnormmix(position), where
dnormmix( ) is a function that you'll write that averages two dnorm( )s,
one with mean = -3 and sd = 1, the other with mean = 3 and sd = 1.

Here's the listing:

# Simulate standard normal random numbers using Gibbs and uniform

step <- function (radius) {
  return(runif(1,-radius,radius))
}

# Parameters of random walk
radius = 1
position = 0.45
length = 100000

# initialize
values = rep(0,length)

for (i in 1:length) {
  newPosition = position + step(radius)
  if ( dnorm(newPosition) >= dnorm(position) ) {
    position = newPosition
  } else {
    if ( runif(1) < dnorm(newPosition)/dnorm(position) ) {
      position = newPosition
    } # else stay at original position
  }
  values = position
}

hist(values)
ks.test(values, "pnorm")

最后得到的结果根据starting positions的不同有不同的直方图

应该怎么修改代码?已经安装了JAGS


关键词:Variates Uniform Variate normal Using 软件

沙发
sticktoenwei 学生认证  发表于 2016-4-18 14:34:24
没搞清楚你的目的  你是想干啥?

藤椅
sticktoenwei 学生认证  发表于 2016-4-18 15:08:06
我表示你的代码好像有点问题     你的倒数第三行 应该是    values[i]= position (values应该是一个向量才对啊)
运行下这个试试:
step <- function (radius) {
  return(runif(1,-radius,radius))
}

# Parameters of random walk
radius = 1
position = 0.45
length = 100000

# initialize
values = rep(0,length)

for (i in 1:length) {
  newPosition = position + step(radius)
  if ( dnorm(newPosition) >= dnorm(position) ) {
    position = newPosition
  } else {
    if ( runif(1) < dnorm(newPosition)/dnorm(position) ) {
      position = newPosition
    } # else stay at original position
  }
  values[i]= position
}

hist(values,freq=F)
ks.test(values, "pnorm")
windows()
plot.ecdf(values)

改的话就改那个position的初始值就好了

QQ图片20160418150626.png (11.24 KB)

需要: 3 个论坛币  [购买]

经验分布图

QQ图片20160418150607.png (11.17 KB)

需要: 3 个论坛币  [购买]

运行结果图

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-1-23 14:07