ประมาณอัตราที่เครื่องชั่งเบี่ยงเบนมาตรฐานที่มีตัวแปรอิสระ


11

ฉันมีการทดลองในที่ที่ฉันกำลังการวัดของการกระจายตามปกติตัวแปรY ,

YN(μ,σ)

อย่างไรก็ตามการทดลองก่อนหน้านี้ได้มีหลักฐานบางอย่างที่เบี่ยงเบนมาตรฐานσเป็นฟังก์ชั่นเลียนแบบของตัวแปรอิสระคือX

σ=a|X|+b

YN(μ,a|X|+b)

ฉันต้องการที่จะประเมินค่าพารามิเตอร์และBโดยการสุ่มตัวอย่างYที่หลายค่าของX นอกจากนี้เนื่องจากข้อ จำกัด ในการทดสอบฉันสามารถใช้ตัวอย่างYจำนวน จำกัด (ประมาณ 30-40) เท่านั้นและต้องการสุ่มตัวอย่างที่ค่าXหลาย ๆ ค่าด้วยเหตุผลการทดลองที่ไม่เกี่ยวข้อง ได้รับข้อ จำกัด เหล่านี้สิ่งที่วิธีการที่มีอยู่ในการประมาณการและ ?abYXYXab

คำอธิบายการทดลอง

นี่เป็นข้อมูลเพิ่มเติมถ้าคุณสนใจว่าทำไมฉันถึงถามคำถามข้างต้น การทดลองของฉันวัดการรับรู้ทางสายตาและภาพ ฉันมีตั้งค่าการทดสอบที่ฉันสามารถนำเสนอทั้งการได้ยินหรือการมองเห็นเป้าหมายจากสถานที่ที่แตกต่างกัน, , และวิชาที่บ่งบอกถึงสถานที่รับรู้ของเป้าหมาย Y ทั้งการมองเห็น * และการออดิชั่นนั้นมีความแม่นยำน้อยลงด้วยการเพิ่มความเยื้องศูนย์ (เช่นการเพิ่ม| X | ) ซึ่งฉันจำลองเป็นσข้างต้น ในที่สุดฉันต้องการประเมินaและbXY|X|σabสำหรับทั้งการมองเห็นและการออดิชั่นฉันรู้ถึงความแม่นยำของแต่ละความรู้สึกในสถานที่ต่างๆในอวกาศ การประมาณเหล่านี้จะใช้ในการทำนายน้ำหนักสัมพัทธ์ของเป้าหมายทางสายตาและการได้ยินเมื่อนำเสนอพร้อมกัน (คล้ายกับทฤษฎีของการรวมหลายพันทางที่นำเสนอที่นี่: http://www.ncbi.nlm.nih.gov/pubmed/12868643 )

* ฉันรู้ว่าโมเดลนี้ไม่ถูกต้องสำหรับการมองเห็นเมื่อเปรียบเทียบ foveal กับอวกาศนอกโลก แต่การวัดของฉันถูก จำกัด เฉพาะกับอวกาศนอกโลกซึ่งนี่เป็นการประมาณที่เหมาะสม


2
ปัญหาที่น่าสนใจ อาจเป็นไปได้ว่าโซลูชันที่ดีที่สุดจะพิจารณาถึงสาเหตุที่คุณทำการทดสอบนี้ เป้าหมายสูงสุดของคุณคืออะไร คาดการณ์? ค่าประมาณของ , a , และ / หรือσ ? ยิ่งคุณบอกเราเกี่ยวกับจุดประสงค์ได้มากเท่าไร μaσ
whuber

เนื่องจาก SD ไม่สามารถเป็นลบได้จึงไม่น่าจะเป็นฟังก์ชันเชิงเส้นของ X ข้อเสนอแนะของคุณ | X | จำเป็นต้องใช้รูปตัว V ที่แคบกว่าหรือกว้างกว่าโดยที่ X = 0 น้อยที่สุดซึ่งดูเหมือนว่าเป็นไปได้ที่ผิดธรรมชาติสำหรับฉัน . คุณแน่ใจเหรอ
gung - Reinstate Monica

จุดที่ดี @ gung ฉันจะ oversimplified ปัญหาของฉันไม่เหมาะสม มันจะสมจริงยิ่งกว่าที่จะบอกว่าเป็นฟังก์ชันเลียนแบบของ| X | . ฉันจะแก้ไขคำถามของฉัน σ|X|
อดัม Bosen

@whuber เหตุผลที่ทำให้สิ่งนี้เกี่ยวข้อง แต่ฉันจะคิดถึงวิธีการอธิบายการทดสอบและเพิ่มรายละเอียดเพิ่มเติมในคำถามของฉันในไม่ช้า
Adam Bosen

1
คุณมีเหตุผลที่ดี a-Priori หรือไม่ที่จะเชื่อว่า X = 0 หมายถึง SD ขั้นต่ำและ f (| X |) นั้นเป็นเสียงโมโนหรือไม่
gung - Reinstate Monica

คำตอบ:


2

ในกรณีเช่นคุณที่คุณมีค่อนข้างง่าย แต่ "ไม่ได้มาตรฐาน" กำเนิดรูปแบบที่คุณต้องการประมาณค่าพารามิเตอร์สำหรับคิดแรกของฉันจะใช้โปรแกรมการอนุมานแบบเบย์เช่นสแตน คำอธิบายที่คุณให้ไว้จะแปลอย่างหมดจดเป็นแบบจำลองของสแตน

ตัวอย่างโค้ด R ใช้ RStan (อินเตอร์เฟส R เป็น Stan)

library(rstan)

model_code <- "
data {
    int<lower=0> n; // number of observations
    real y[n];
    real x[n];
}
parameters {
    real mu; // I've assumed mu is to be fit.
             // Move this to the data section if you know the value of mu.
    real<lower=0> a;
    real<lower=0> b;
}
transformed parameters {
    real sigma[n];
    for (i in 1:n) {
        sigma[i] <- a + b * fabs(x[i]);
    }
}
model {
    y ~ normal(mu, sigma);
}
"

# Let's generate some test data with known parameters

mu <- 0
a <- 2
b <- 1

n <- 30
x <- runif(n, -3, 3)
sigma <- a + b * abs(x)
y <- rnorm(n, mu, sigma)

# And now let's fit our model to those "observations"

fit <- stan(model_code=model_code,
            data=list(n=n, x=x, y=y))

print(fit, pars=c("a", "b", "mu"), digits=1)

คุณจะได้รับผลลัพธ์ที่มีลักษณะเช่นนี้ (แม้ว่าตัวเลขสุ่มของคุณอาจแตกต่างจากของฉัน):

Inference for Stan model: model_code.
4 chains, each with iter=2000; warmup=1000; thin=1; 
post-warmup draws per chain=1000, total post-warmup draws=4000.

   mean se_mean  sd 2.5%  25% 50% 75% 97.5% n_eff Rhat
a   2.3       0 0.7  1.2  1.8 2.2 2.8   3.9  1091    1
b   0.9       0 0.5  0.1  0.6 0.9 1.2   1.9  1194    1
mu  0.1       0 0.6 -1.1 -0.3 0.1 0.5   1.4  1262    1

Samples were drawn using NUTS(diag_e) at Thu Jan 22 14:26:16 2015.
For each parameter, n_eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor on split chains (at 
convergence, Rhat=1).

แบบจำลองมีการบรรจบกันเป็นอย่างดี (Rhat = 1) และขนาดตัวอย่างที่มีประสิทธิภาพ (n_eff) มีขนาดใหญ่พอสมควรในทุกกรณีดังนั้นในระดับเทคนิคแบบจำลองมีความประพฤติดี ค่าประมาณที่ดีที่สุดของ , bและμ (ในคอลัมน์ค่าเฉลี่ย) ก็ใกล้เคียงกับค่าที่ให้ไว้abμ


โอ้ฉันชอบสิ่งนี้! ฉันไม่เคยได้ยินชื่อสแตนมาก่อนขอบคุณสำหรับการอ้างอิง ตอนแรกฉันหวังว่าจะได้วิธีการวิเคราะห์ แต่เมื่อขาดการตอบสนองฉันสงสัยว่ามันมีอยู่จริง ฉันอยากเชื่อว่าคำตอบของคุณเป็นวิธีที่ดีที่สุดในการแก้ไขปัญหานี้
Adam Bosen

มันจะไม่ทำให้ฉันตกใจอย่างสิ้นเชิงหากมีวิธีการวิเคราะห์อยู่ แต่แน่นอนว่าฉันจะแปลกใจเล็กน้อย จุดแข็งของการใช้บางอย่างเช่นสแตนก็คือมันง่ายมากที่จะทำการเปลี่ยนแปลงโมเดลของคุณ - โซลูชันการวิเคราะห์อาจจะมีข้อ จำกัด อย่างมากต่อโมเดลดังกล่าว
Martin O'Leary

2

YN(μ,a|x|+b)
l(μ,a,b)=ln(a|xi|+b)12(yiμa|xi|+b)2

ใน R เราทำได้

make_lik  <-  function(x,y){
    x  <-  abs(x)
    function(par) {
        mu <- par[1];a  <-  par[2];  b <-  par[3]
        axpb <-  a*x+b
        -sum(log(axpb)) -0.5*sum( ((y-mu)/axpb)^2 )
    }
}

จากนั้นจำลองข้อมูลบางส่วน:

> x <-  rep(c(2,4,6,8),10)
> x
 [1] 2 4 6 8 2 4 6 8 2 4 6 8 2 4 6 8 2 4 6 8 2 4 6 8 2 4 6 8 2 4 6 8 2 4 6 8 2 4
[39] 6 8
> a <- 1
> b<-  3
> sigma <-  a*x+b
> mu  <-  10
> y  <-  rnorm(40,mu, sd=sigma)

จากนั้นสร้างฟังก์ชัน loglikelihood:

> lik <-  make_lik(x,y)
> lik(c(10,1,3))
[1] -99.53438

จากนั้นปรับให้เหมาะสม:

> optim(c(9.5,1.2,3.1),fn=function(par)-lik(par))
$par
[1] 9.275943 1.043019 2.392660

$value
[1] 99.12962

$counts
function gradient 
     136       NA 

$convergence
[1] 0

$message
NULL
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.