วิธีการเลือกค่าเริ่มต้นสำหรับสี่เหลี่ยมที่ไม่เชิงเส้นอย่างน้อยพอดี


13

คำถามข้างต้นบอกว่ามันทั้งหมด โดยทั่วไปคำถามของฉันสำหรับฟังก์ชั่นการติดตั้งอุปกรณ์ทั่วไป (อาจซับซ้อนโดยพลการ) ซึ่งจะเป็นแบบไม่เชิงเส้นในพารามิเตอร์ที่ฉันพยายามที่จะประเมินหนึ่งจะเลือกค่าเริ่มต้นเพื่อเริ่มต้นพอดีได้อย่างไร ฉันพยายามที่จะทำกำลังสองน้อยที่สุดแบบไม่เชิงเส้น มีกลยุทธ์หรือวิธีการใดบ้าง? มีการศึกษาเรื่องนี้หรือไม่? การอ้างอิงใด ๆ มีอะไรอีกที่คาดเดาได้ยาก โดยเฉพาะตอนนี้หนึ่งในรูปแบบที่เหมาะสมที่ฉันทำงานด้วยคือแบบฟอร์มเกาส์บวกเชิงเส้นที่มีห้าพารามิเตอร์ที่ฉันพยายามประเมินเช่น

y=Ae(xBC)2+Dx+E

โดยที่ (ข้อมูล abscissa) และy = log 10 (จัดระเบียบข้อมูล) หมายความว่าในพื้นที่ล็อกบันทึกข้อมูลของฉันดูเหมือนเป็นเส้นตรงบวกกับชนที่ฉันประมาณโดยเกาส์เซียน ฉันไม่มีทฤษฎีไม่มีอะไรที่จะแนะนำฉันเกี่ยวกับวิธีการเริ่มต้นแบบไม่เชิงเส้นยกเว้นกราฟและลูกตาเช่นความลาดชันของเส้นและสิ่งที่เป็นศูนย์กลาง / ความกว้างของการชนคือ แต่ฉันมีมากกว่าร้อยแบบที่เหมาะกับการทำเช่นนั้นแทนที่จะใช้การสร้างกราฟและการคาดเดาฉันต้องการวิธีที่สามารถเป็นแบบอัตโนมัติได้x=log10y=log10

ฉันไม่พบการอ้างอิงใด ๆ ในห้องสมุดหรือออนไลน์ สิ่งเดียวที่ฉันคิดได้ก็คือเลือกค่าเริ่มต้นแบบสุ่ม MATLAB เสนอให้เลือกค่าแบบสุ่มจาก [0,1] การกระจายแบบสม่ำเสมอ ดังนั้นด้วยชุดข้อมูลแต่ละชุดฉันจึงรันการเริ่มต้นแบบสุ่มหนึ่งพันครั้งแล้วเลือกชุดที่มีค่าสูงสุดหรือไม่ ความคิดอื่น ๆ (ดีกว่า)?r2


ภาคผนวก # 1

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

ข้อมูลที่ดี บันทึกข้อมูลที่ดี ข้อมูลไม่ดี บันทึกข้อมูลที่ไม่ดี

แต่ละพาเนลหกตัวในแต่ละรูปแสดงชุดข้อมูลสี่ชุดที่พล็อตด้วยกันคือสีแดงสีเขียวสีน้ำเงินและสีฟ้าและชุดข้อมูลแต่ละชุดมีจุดข้อมูล 20 จุด ฉันกำลังพยายามทำให้พอดีกับพวกเขาแต่ละคนด้วยเส้นตรงและ Gaussian เนื่องจากการกระแทกที่เห็นในข้อมูล

รูปแรกเป็นข้อมูลที่ดี รูปที่สองคือพล็อตการบันทึกข้อมูลที่ดีเหมือนกันจากรูปที่หนึ่ง รูปที่สามเป็นข้อมูลที่ไม่ดี รูปที่สี่คือพล็อตบันทึกการใช้งานของรูปที่สาม มีข้อมูลมากขึ้นเหล่านี้เป็นเพียงสองชุดย่อย ข้อมูลส่วนใหญ่ (ประมาณ 3/4) เป็นสิ่งที่ดีคล้ายกับข้อมูลที่ฉันแสดงให้เห็นที่นี่

ตอนนี้ความคิดเห็นโปรดอดทนกับฉันเพราะมันอาจจะนาน แต่ฉันคิดว่ารายละเอียดทั้งหมดนี้เป็นสิ่งที่จำเป็น ฉันจะพยายามรัดกุมที่สุดเท่าที่จะทำได้

ตอนแรกฉันคาดว่ากฎหมายพลังงานแบบง่าย (หมายถึงเส้นตรงในพื้นที่บันทึกการทำงาน) เมื่อฉันวางแผนทุกอย่างในพื้นที่ log-log ฉันเห็นการชนที่ไม่คาดคิดที่ 4.8 mHz ชนถูกตรวจสอบอย่างละเอียดและถูกค้นพบในผู้อื่นทำงานเช่นกันดังนั้นมันจึงไม่ใช่ว่าเราทำผิดพลาด มันมีอยู่จริงที่นั่นและงานที่ตีพิมพ์อื่น ๆ พูดถึงเรื่องนี้ด้วย ดังนั้นฉันจึงเพิ่มคำเกาส์ลงในรูปเชิงเส้นของฉัน โปรดทราบว่าแบบนี้จะต้องทำในพื้นที่บันทึกการเข้าสู่ระบบ (ด้วยคำถามทั้งสองของฉันรวมถึงคำถามนี้)

ตอนนี้หลังจากอ่านคำตอบของ Stumpy Joe Pete ไปยังคำถามอื่นของฉัน (ไม่เกี่ยวข้องกับข้อมูลเหล่านี้เลย) และอ่านสิ่งนี้และสิ่งนี้และการอ้างอิงในนั้น (สิ่งของโดย Clauset) ฉันรู้ว่าฉันไม่ควรใส่ log-log ช่องว่าง ดังนั้นตอนนี้ฉันต้องการที่จะทำทุกอย่างในพื้นที่ pre-transformed

คำถามที่ 1: การดูข้อมูลที่ดีฉันยังคงคิดว่าเส้นตรงบวกกับเกาส์ในพื้นที่แปลงก่อนยังคงเป็นรูปแบบที่ดี ฉันชอบที่จะได้ยินจากคนอื่น ๆ ที่มีประสบการณ์เกี่ยวกับข้อมูลมากกว่าที่พวกเขาคิด Gaussian + linear สมเหตุสมผลหรือไม่ ฉันควรทำเกาส์เซียนอย่างเดียวเหรอ? หรือรูปแบบที่แตกต่างอย่างสิ้นเชิง?

คำถามที่ 2: ไม่ว่าคำตอบสำหรับคำถามที่ 1 จะยังคงต้องการสี่เหลี่ยมจัตุรัสที่ไม่เป็นเส้นตรง (ส่วนใหญ่) ซึ่งยังคงต้องการความช่วยเหลือในการเริ่มต้น

ข้อมูลที่เราเห็นสองชุดเราชอบมากที่จะจับชนแรกที่ประมาณ 4-5 เมกะเฮิรตซ์ ดังนั้นฉันไม่ต้องการเพิ่มเงื่อนไข gaussian เพิ่มเติมและคำ gaussian ของเราควรเน้นที่การชนครั้งแรกซึ่งมักจะเป็นชนที่ใหญ่กว่า เราต้องการ "ความแม่นยำมากขึ้น" ระหว่าง 0.8mHz และประมาณ 5mHz เราไม่สนใจความถี่ที่สูงขึ้นมากเกินไป แต่ไม่ต้องการเพิกเฉยต่อมันอย่างสมบูรณ์ ดังนั้นการชั่งน้ำหนักบางอย่าง? หรือ B สามารถเริ่มต้นได้ประมาณ 4.8mHz เสมอ?

fL

L=Ae(fBC)2+Df+E.
  • f
  • L
  • AA>0A
  • B
  • CCC
  • D
  • ELELf=0

Ae(B/C)2+E.

EEf=0

L

คำถามที่ 3: พวกคุณคิดอย่างไรในกรณีนี้? ข้อดี / ข้อเสียใด ๆ ? มีแนวคิดอื่นใดอีกหรือไม่ในการอนุมาน อีกครั้งเราจะสนใจเฉพาะความถี่ที่ต่ำกว่าดังนั้นคาดการณ์ระหว่าง 0 ถึง 1 เมกะเฮิรตซ์ ... บางครั้งความถี่ที่เล็กมาก ๆ ใกล้กับศูนย์ ฉันรู้ว่าโพสต์นี้ได้รับการบรรจุแล้ว ฉันถามคำถามนี้ที่นี่เพราะคำตอบอาจเกี่ยวข้อง แต่ถ้าคุณชอบฉันสามารถแยกคำถามนี้และถามอีกคนในภายหลัง

สุดท้ายนี้เป็นชุดข้อมูลตัวอย่างสองชุดเมื่อมีการร้องขอ

0.813010000000000   0.091178000000000   0.012728000000000
1.626000000000000   0.103120000000000   0.019204000000000
2.439000000000000   0.114060000000000   0.063494000000000
3.252000000000000   0.123130000000000   0.071107000000000
4.065000000000000   0.128540000000000   0.073293000000000
4.878000000000000   0.137040000000000   0.074329000000000
5.691100000000000   0.124660000000000   0.071992000000000
6.504099999999999   0.104480000000000   0.071463000000000
7.317100000000000   0.088040000000000   0.070336000000000
8.130099999999999   0.080532000000000   0.036453000000000
8.943100000000001   0.070902000000000   0.024649000000000
9.756100000000000   0.061444000000000   0.024397000000000
10.569000000000001   0.056583000000000   0.025222000000000
11.382000000000000   0.052836000000000   0.024576000000000
12.194999999999999   0.048727000000000   0.026598000000000
13.008000000000001   0.045870000000000   0.029321000000000
13.821000000000000   0.041454000000000   0.067300000000000
14.633999999999999   0.039596000000000   0.081800000000000
15.447000000000001   0.038365000000000   0.076443000000000
16.260000000000002   0.036425000000000   0.075912000000000

คอลัมน์แรกคือความถี่ในหน่วย mHz ซึ่งเหมือนกันในชุดข้อมูลทุกชุด คอลัมน์ที่สองคือชุดข้อมูลที่ดี (รูปที่ 1 และ 2, แผงข้อมูล 5, เครื่องหมายสีแดง) และคอลัมน์ที่สามเป็นชุดข้อมูลที่ไม่ดี (รูปภาพข้อมูลสามและสี่, แผง 5, เครื่องหมายสีแดง)

หวังว่านี่จะเพียงพอที่จะกระตุ้นให้เกิดการสนทนาที่กระจ่างแจ้งมากขึ้น ขอบคุณทุกคน


+1 สำหรับข้อมูลเพิ่มเติม แต่ตอนนี้ดูเหมือนคำถามใหม่ บังเอิญถ้าคุณต้องการลบอันก่อนหน้านี้ตอนนี้ฉันคิดว่ามันจะโอเคดูเหมือนว่าตอนนี้คุณได้ครอบคลุมข้อมูลเพิ่มเติมที่มีอยู่
Glen_b -Reinstate Monica

@Glen_b ทำไมเป็นเช่นนั้น ทำไมดูเหมือนคำถามใหม่ สำหรับคำถามเก่าเราทุกคนต่างให้คะแนน ;-D และคนเก่ามีสอง upvotes วิธีใดที่จะรวมเข้ากับสิ่งนี้
Fixed Point

สำหรับผู้เริ่มต้นตอนนี้คุณกำลังถามเกี่ยวกับสิ่งที่คุณควรจะพอดีแทนที่จะระบุสิ่งที่จะพอดีเช่นก่อน มีความแตกต่างอื่น ๆ อีกจำนวนหนึ่งซึ่งฉันคิดว่ามีความสำคัญพอสมควร ฉันจะดูการเปลี่ยนคำตอบของฉัน แต่ฉันคิดว่าอันนี้อาจเป็นคำถามและคำตอบเดิมและส่วนใหม่ของคุณที่คุณถามสิ่งอื่น ๆ อาจเป็นคนใหม่ ฉันจะปล่อยให้การตัดสินใจของคุณสำหรับปัจจุบัน
Glen_b -Reinstate Monica

@Glen_b ยุติธรรมพอฉันตอบคำถามพิเศษ ดังนั้นคำถามยังคงอยู่ฉันมีข้อมูลบางอย่างที่ฉันต้องการให้พอดีโดยใช้รูปแบบเชิงเส้น + Gaussian ฉันจะทำได้ดีกว่าการเริ่มต้นแบบสุ่มหรือไม่
จุดคงที่

ฉันคิดว่าคำตอบปัจจุบันของฉันแสดงให้เห็นว่า - อย่างน้อยในบางสถานการณ์ - คุณสามารถทำได้ดีกว่าและ @whuber เสนอบางสิ่งที่ง่ายกว่ากระบวนการของฉัน ฉันสามารถย้อนกลับไปดูว่าฉันมีประสิทธิภาพอย่างไรกับข้อมูลของคุณ แต่ถึงแม้มันจะยืนอยู่ในตอนนี้มันก็ให้แนวคิดในการตั้งจุดเริ่มต้นเช่นนั้น
Glen_b -Reinstate Monica

คำตอบ:


10

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

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

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

x

yx

A

ข้อมูลตัวอย่างบางส่วนอาจช่วยได้ - กรณีทั่วไปและข้อมูลยากหากคุณสามารถทำได้


แก้ไข: นี่คือตัวอย่างของวิธีที่คุณสามารถทำได้ค่อนข้างดีหากปัญหาไม่ดังเกินไป:

นี่คือข้อมูลบางส่วนที่สร้างขึ้นจากแบบจำลองของคุณ (ค่าประชากรคือ A = 1.9947, B = 10, C = 2.828, D = 0.09, E = 5):

ข้อมูล nls

ค่าเริ่มต้นที่ฉันสามารถประเมินได้คือ
(As = 1.658, Bs = 10.001, Cs = 3.053, Ds = 0.0881, Es = 5.026)

ความพอดีของโมเดลเริ่มต้นนั้นมีลักษณะดังนี้:

nlstart

ขั้นตอนคือ:

  1. พอดีกับการถดถอยของ Theil เพื่อให้ได้ค่าประมาณคร่าวๆของ D และ E
  2. ลบความพอดีของการถดถอยของ Theil ออก
  3. ใช้ LOESS เพื่อให้พอดีกับเส้นโค้งที่ราบเรียบ
  4. หาค่าสูงสุดเพื่อรับค่าประมาณคร่าวๆของ A และค่า x ที่สอดคล้องกับค่าสูงสุดเพื่อรับค่าประมาณคร่าวๆของ B
  5. ใช้ LOESS ให้พอดีกับค่า y ที่> 60% ของค่าประมาณของ A เป็นการสังเกตและหากำลังสอง
  6. ใช้สมการกำลังสองเพื่ออัพเดตการประมาณ B และเพื่อประมาณ C
  7. จากข้อมูลดั้งเดิมให้ลบค่าประมาณของเกาส์เซียนออก
  8. พอดีกับการถดถอยของ Theil อื่นกับข้อมูลที่ได้รับการปรับปรุงเพื่ออัพเดตค่าประมาณของ D และ E

ในกรณีนี้ค่าเหมาะสำหรับการเริ่มต้นแบบไม่เชิงเส้น

ฉันเขียนสิ่งนี้เป็นRรหัส แต่สิ่งเดียวกันสามารถทำได้ใน MATLAB

ฉันคิดว่าสิ่งที่ดีกว่านี้เป็นไปได้

หากข้อมูลมีเสียงดังมากสิ่งนี้จะไม่ทำงานได้ดีนัก


แก้ไข 2: นี่คือรหัสที่ฉันใช้ใน R หากใครสนใจ:

gausslin.start <- function(x,y) {

  theilreg <- function(x,y){
    yy <- outer(y, y, "-")
    xx <- outer(x, x, "-")
    z  <- yy / xx
    slope     <- median(z[lower.tri(z)])
    intercept <- median(y - slope * x)
    cbind(intercept=intercept,slope=slope)
  }

  tr <- theilreg(x,y1)
  abline(tr,col=4)
  Ds = tr[2]
  Es = tr[1]
  yf  <- y1-Ds*x-Es
  yfl <- loess(yf~x,span=.5)

  # assumes there are enough points that the maximum there is 'close enough' to 
  #  the true maximum

  yflf   <- yfl$fitted    
  locmax <- yflf==max(yflf)
  Bs     <- x[locmax]
  As     <- yflf[locmax]

  qs     <- yflf>.6*As
  ys     <- yfl$fitted[qs]
  xs     <- x[qs]-Bs
  lf     <- lm(ys~xs+I(xs^2))
  bets   <- lf$coefficients
  Bso    <- Bs
  Bs     <-  Bso-bets[2]/bets[3]/2
  Cs     <- sqrt(-1/bets[3])
  ystart <- As*exp(-((x-Bs)/Cs)^2)+Ds*x+Es

  y1a <- y1-As*exp(-((x-Bs)/Cs)^2)
  tr  <- theilreg(x,y1a)
  Ds  <- tr[2]
  Es  <- tr[1]
  res <- data.frame(As=As, Bs=Bs, Cs=Cs, Ds=Ds, Es=Es)
  res
}

.

# population parameters: A = 1.9947 , B = 10, C = 2.828, D = 0.09, E = 5
# generate some data
set.seed(seed=3424921)
x  <- runif(50,1,30)
y  <- dnorm(x,10,2)*10+rnorm(50,0,.2)
y1 <- y+5+x*.09 # This is the data
xo <- order(x)

starts <- gausslin.start(x,y1)
ystart <- with(starts, As*exp(-((x-Bs)/Cs)^2)+Ds*x+Es)
plot(x,y1)
lines(x[xo],ystart[xo],col=2)

3
+1 ทำซ้ำพอดีพันครั้งและเลือกที่ดีที่สุด (ถ้าฉันเข้าใจว่าถูกต้อง) ฟังความคิดที่แปลก: กำลังสองน้อยที่สุดที่ไม่เชิงเส้นควรมาบรรจบกันถ้าแบบจำลองมีความสมเหตุสมผลสำหรับข้อมูลและมีค่าเริ่มต้นที่ดี อย่างที่สองคือสิ่งที่คุณถาม แต่ดูเหมือนว่าในแง่ร้ายจะบอกเป็นนัยว่าคุณอาจต้องเลือกค่าเริ่มต้นที่แตกต่างกันสำหรับการสวมใส่แต่ละครั้ง
Nick Cox

1
@ NickCox มันลงมาในช่วงของปัญหาที่พบ - ถ้าฉันจำได้ทันทีจากโพสต์ก่อนหน้านี้ OP ได้รับจำนวนมากของปัญหาเหล่านี้ แต่ฉันจำไม่ได้เห็นรายละเอียดเพียงพอที่จะให้คำแนะนำที่ดีมาก่อนแม้ว่าฉันลงทุนเล็กน้อย เวลาเล่นกับแนวทางที่อาจเกิดขึ้น (ซึ่งไม่ได้ให้ผลที่ชัดเจนพอที่จะโพสต์) OP น่าจะมีความรู้เกี่ยวกับโดเมนที่สามารถให้ค่าเริ่มต้นที่ดีซึ่งแก้ไขปัญหาของเขาหรือเธอได้เกือบตลอดเวลา
Glen_b -Reinstate Monica

1
ค่อนข้างมาก ฉันพลาดโพสต์ก่อนหน้านี้ที่stats.stackexchange.com/questions/61724/…
Nick Cox

3
|A|BA>0CA1/4A>0A<0

2
BB

6

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

Schnute และฉันคิดเรื่องนี้ประมาณปี 1982 เมื่อปรับโมเดลการเติบโตของปลาให้เหมาะสม

http://www.nrcresearchpress.com/doi/abs/10.1139/f80-172

อย่างไรก็ตามไม่จำเป็นต้องอ่านบทความนี้ เนื่องจากความจริงที่ว่าพารามิเตอร์เป็นเส้นตรงจำเป็นต้องทำการติดตั้งและแก้ระบบสมการเชิงเส้น 3x3 เพื่อใช้การสร้างพารามิเตอร์ที่เสถียรของแบบจำลอง

M

M=(exp(((x(1)B)/C)2)x(1)1exp(((x(6)B)/C)2)x(6)1exp(((x(n)B)/C)2)x(n)1)
n=20
DATA_SECTION
  init_int n
  int mid
 !! mid=6;
  init_matrix data(1,n,1,3)
  vector x(1,n)
  vector y(1,n)
 !! x=column(data,1);
 !! y=column(data,3);   //use column 3
PARAMETER_SECTION
  init_number L1(3)     //(3) means estimate in phase 3
  init_number Lmid(3)
  init_number Ln(3)

  vector L(1,3)
  init_number log_B       // estimate in phase 1
  init_number log_C(2)    // estimate in phase 2 
  matrix M(1,3,1,3);
  objective_function_value f
  sdreport_vector P(1,3)
  sdreport_number B
  sdreport_number C
  vector pred(1,n);
PROCEDURE_SECTION
  L(1)=L1;
  L(2)=Lmid;
  L(3)=Ln;
  B=exp(log_B);
  C=exp(log_C);
  M(1,1)=exp(-square((x(1)-B)/C));
  M(1,2)=x(1);
  M(1,3)=1;
  M(2,1)=exp(-square((x(mid)-B)/C));
  M(2,2)=x(mid);
  M(2,3)=1;
  M(3,1)=exp(-square((x(n)-B)/C));
  M(3,2)=x(n);
  M(3,3)=1;

  P=solve(M,L);  // solve for standard parameters 
                 // P is vector corresponding to A,D,E

  pred=P(1)*exp(-square((x-B)/C))+P(2)*x+P(3);
  if (current_phase()<4)
    f+=norm2(y-pred);
  else
    f+=0.5*n*log(norm2(y-pred))  //concentrated likelihood

BCBBC

ป้อนคำอธิบายรูปภาพที่นี่

สำหรับกรณีของคุณที่มีข้อมูลไม่ถูกต้องมันค่อนข้างง่ายและการประมาณการพารามิเตอร์ (ปกติ) คือ:

         estimate    std dev
A      2.0053e-01 5.8723e-02
D      1.6537e-02 4.7684e-03
E     -1.8197e-01 7.3355e-02
B      3.0609e+00 5.0197e-01
C      5.6154e+00 9.4564e-01]

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

ฉันหมายถึงแบบจำลองเช่น vonbertalanffy หรือ logistic หรือ exponential สองเท่าเป็นต้น ในทุกกรณีตัวแบบเป็นแบบเส้นตรงในพารามิเตอร์บางตัวและแบบไม่เชิงเส้นในตัวแบบอื่น โดยทั่วไปผู้คนพยายามที่จะแปลงมันให้มีความเสถียรมากขึ้นโดยการตั้งค่าพารามิเตอร์ที่ไม่ใช่เชิงเส้น อย่างไรก็ตามนี่เป็นวิธีการที่ผิด มันคือการกำหนดพารามิเตอร์เชิงเส้นซึ่งควรจะแก้ไขดังนั้นตัวอย่างเช่นสำหรับพารามิเตอร์โลจิสติก 4 ตัวแบบจำลองนั้นเป็นเส้นตรงในเส้นกำกับที่ด้านบนและด้านล่าง แต่แทนที่จะใช้พารามิเตอร์เหล่านี้ var
เดฟ fournier

@davefournier ขอบคุณที่ตอบและชี้ไปที่กระดาษของคุณ บทความของคุณดูเหมือนจะยากเล็กน้อยที่จะเข้าใจ แต่เทคนิคฟังดูน่าสนใจดังนั้นแทบรอไม่ไหวที่จะอ่าน
จุดคงที่

2

ถ้าคุณต้องทำหลาย ๆ ครั้งฉันจะแนะนำให้คุณใช้ Evolutionary Algorithm ในฟังก์ชั่น SSE เป็น front-end เพื่อให้ค่าเริ่มต้น

ในทางกลับกันคุณสามารถใช้ GEOGEBRA เพื่อสร้างฟังก์ชั่นโดยใช้แถบเลื่อนสำหรับพารามิเตอร์และเล่นกับพวกเขาเพื่อรับค่าเริ่มต้น

หรือค่าเริ่มต้นจากข้อมูลสามารถประเมินได้โดยการสังเกต

  1. D และ E มาจากความชันและการสกัดกั้นของข้อมูล (ไม่สนใจ Gaussian)
  2. A คือระยะทางแนวตั้งของค่าสูงสุดของเกาส์เซียนจากการประมาณเส้น Dx + E
  3. B คือค่า x ของจำนวนสูงสุดของเกาส์เซียน
  4. C คือครึ่งหนึ่งของความกว้างที่ชัดเจนของเกาส์เซียน

1

สำหรับค่าเริ่มต้นคุณสามารถใช้กำลังสองน้อยที่สุดได้ตามปกติ ความชันและจุดตัดของมันจะเป็นค่าเริ่มต้นสำหรับ D และ E ส่วนที่เหลือที่ใหญ่ที่สุดจะเป็นค่าเริ่มต้นสำหรับ A ตำแหน่งของส่วนที่เหลือที่ใหญ่ที่สุดจะเป็นค่าเริ่มต้นสำหรับ B. บางทีคนอื่นอาจแนะนำค่าเริ่มต้นสำหรับ sigma

อย่างไรก็ตามสี่เหลี่ยมจัตุรัสที่ไม่เป็นเส้นตรงโดยที่ไม่ได้มาจากสมการกลไกใด ๆ จากความรู้ในเรื่องที่เป็นธุรกิจที่มีความเสี่ยง มีความรู้ในเรื่องใดบ้างที่อยู่เบื้องหลังสมการที่คุณเสนอ? มีตัวแปรอิสระอื่น ๆ ที่เกี่ยวข้องกับความแตกต่างระหว่าง 100 หรือแยกกันพอดี? มันอาจช่วยถ้าคุณสามารถรวมความแตกต่างเหล่านั้นไว้ในสมการเดียวที่จะพอดีกับข้อมูลทั้งหมดในครั้งเดียว

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