Cách chọn giá trị ban đầu cho bình phương tối thiểu phù hợp


12

Câu hỏi trên đã nói lên tất cả. Về cơ bản câu hỏi của tôi là về một hàm khớp chung (có thể phức tạp tùy ý) sẽ không tuyến tính trong các tham số tôi đang cố ước tính, làm thế nào để chọn giá trị ban đầu để khởi tạo sự phù hợp? Tôi đang cố gắng để làm bình phương tối thiểu phi tuyến. Có chiến lược hay phương pháp nào không? Điều này đã được nghiên cứu? Bất kỳ tài liệu tham khảo? Bất cứ điều gì ngoài ad hoc đoán? Cụ thể, ngay bây giờ một trong những hình thức phù hợp mà tôi đang làm việc là một dạng tuyến tính Gaussian cộng với năm tham số tôi đang cố gắng ước tính, như

y=Ae(xBC)2+Dx+E

trong đó x=log10 (dữ liệu abscissa) và y=log10 (dữ liệu thứ tự) có nghĩa là trong không gian log-log, dữ liệu của tôi trông giống như một đường thẳng cộng với một vết sưng mà tôi đang xấp xỉ bởi một Gaussian. Tôi không có lý thuyết, không có gì để hướng dẫn tôi về cách khởi tạo sự phù hợp phi tuyến trừ việc có thể vẽ đồ thị và nhãn cầu như độ dốc của đường và tâm / chiều rộng của vết sưng là gì. Nhưng tôi có hơn trăm cách phù hợp để làm như vậy thay vì vẽ đồ thị và đoán, tôi thích một số cách tiếp cận có thể được tự động hóa.

Tôi không thể tìm thấy bất kỳ tài liệu tham khảo, trong thư viện hoặc trực tuyến. Điều duy nhất tôi có thể nghĩ là chỉ chọn ngẫu nhiên các giá trị ban đầu. MATLAB cung cấp để chọn ngẫu nhiên các giá trị từ [0,1] được phân phối đồng đều. Vì vậy, với mỗi bộ dữ liệu, tôi chạy ngẫu nhiên khởi tạo phù hợp một nghìn lần và sau đó chọn dữ liệu có cao nhất ? Bất kỳ ý tưởng (tốt hơn) khác?r2


Phụ lục số 1

Đầu tiên, đây là một số biểu diễn trực quan của các tập dữ liệu chỉ để cho các bạn thấy tôi đang nói về loại dữ liệu nào. Tôi đang đăng cả dữ liệu ở dạng ban đầu mà không có bất kỳ loại chuyển đổi nào và sau đó biểu thị trực quan của nó trong không gian log-log vì nó làm rõ một số tính năng của dữ liệu trong khi làm biến dạng các dữ liệu khác. Tôi đang đăng một mẫu của cả dữ liệu tốt và xấu.

dữ liệu tốt log-log dữ liệu tốt dữ liệu xấu log-log dữ liệu xấu

Mỗi trong sáu bảng trong mỗi hình hiển thị bốn bộ dữ liệu được vẽ cùng nhau màu đỏ, xanh lá cây, xanh lam và lục lam và mỗi bộ dữ liệu có chính xác 20 điểm dữ liệu. Tôi đang cố gắng để phù hợp với từng người trong số họ bằng một đường thẳng cộng với một gaussian vì những va chạm được nhìn thấy trong dữ liệu.

Hình đầu tiên là một số dữ liệu tốt. Hình thứ hai là biểu đồ log-log của cùng một dữ liệu tốt từ hình một. Hình thứ ba là một số dữ liệu xấu. Hình thứ tư là biểu đồ log-log của hình ba. Có nhiều dữ liệu hơn, đây chỉ là hai tập con. Hầu hết các dữ liệu (khoảng 3/4) là tốt, tương tự như dữ liệu tốt tôi đã trình bày ở đây.

Bây giờ một số ý kiến, xin vui lòng chịu đựng với tôi vì điều này có thể lâu dài nhưng tôi nghĩ tất cả các chi tiết này là cần thiết. Tôi sẽ cố gắng ngắn gọn nhất có thể.

Ban đầu tôi đã mong đợi một luật công suất đơn giản (có nghĩa là đường thẳng trong không gian log-log). Khi tôi vẽ mọi thứ trong không gian log-log, tôi thấy vết sưng bất ngờ ở khoảng 4,8 mHz. Các vết sưng đã được điều tra kỹ lưỡng và được phát hiện trong những người khác cũng hoạt động để nó không làm chúng tôi rối tung lên. Nó là vật lý ở đó và các tác phẩm được xuất bản khác cũng đề cập đến điều này. Vì vậy, sau đó tôi chỉ cần thêm một thuật ngữ gaussian vào dạng tuyến tính của tôi. Lưu ý rằng sự phù hợp này đã được thực hiện trong không gian log-log (do đó hai câu hỏi của tôi bao gồm câu hỏi này).

Bây giờ, sau khi đọc câu trả lời của Stumpy Joe Pete cho một câu hỏi khác của tôi (hoàn toàn không liên quan đến những dữ liệu này) và đọc cái nàycái này và các tài liệu tham khảo trong đó (thứ của Clauset), tôi nhận ra rằng tôi không nên phù hợp với log-log không gian. Vì vậy, bây giờ tôi muốn làm mọi thứ trong không gian được chuyển đổi trước.

Câu hỏi 1: Nhìn vào dữ liệu tốt, tôi vẫn nghĩ rằng một tuyến tính cộng với một gaussian trong không gian được chuyển đổi trước vẫn là một hình thức tốt. Tôi rất thích nghe từ những người khác có nhiều dữ liệu hơn những gì họ nghĩ. Là gaussian + tuyến tính hợp lý? Tôi chỉ nên làm một Gaussian? Hoặc một hình thức hoàn toàn khác nhau?

Câu hỏi 2: Dù câu trả lời cho câu hỏi 1 là gì, tôi vẫn sẽ cần (rất có thể) bình phương tối thiểu phi tuyến tính phù hợp vì vậy vẫn cần trợ giúp với việc khởi tạo.

Dữ liệu mà chúng tôi thấy hai bộ, chúng tôi rất thích chụp lại vết sưng đầu tiên ở khoảng 4-5 mHz. Vì vậy, tôi không muốn thêm nhiều thuật ngữ gaussian và thuật ngữ gaussian của chúng ta nên tập trung vào vết sưng đầu tiên gần như luôn luôn là vết sưng lớn hơn. Chúng tôi muốn "chính xác hơn" giữa 0,8mHz và khoảng 5mHz. Chúng tôi không quan tâm quá nhiều đến các tần số cao hơn nhưng cũng không muốn bỏ qua chúng hoàn toàn. Vì vậy, có thể một số loại cân? Hoặc B có thể được khởi tạo khoảng 4,8mHz luôn?

Dữ liệu abscissa là tần số tính theo đơn vị millihertz, biểu thị nó bằng . Các dữ liệu phối là một hệ số chúng ta đang tính toán, biểu thị nó bằng L . Vì vậy, không có chuyển đổi nhật ký, và hình thức làfL

L=Ae(fBC)2+Df+E.
  • là tần số, luôn dương.f
  • là một hệ số dương. Vì vậy, chúng tôi đang làm việc trong góc phần tư đầu tiên.L
  • , biên độ phải luôn luôn tích cực, tôi nghĩ bởi vì chúng ta chỉ đang đối phó với những va chạm. Khi tôi nhìn vào dữ liệu tôi luôn thấy các đỉnh và không có thung lũng. Dường như trong tất cả các dữ liệu có nhiều lần va chạm ở tần số cao hơn. Các vết sưng đầu tiên luôn lớn hơn nhiều so với những người khác. Trong dữ liệu tốt, các va chạm thứ cấp rất yếu nhưng trong dữ liệu xấu (ví dụ bảng 2 và 5), các va chạm thứ cấp rất mạnh. Vì vậy, chúng tôi thực sựkhôngcó một thung lũng, mà là hai gập ghềnh. Có nghĩa là biên độ A > 0 . Và vì chúng tôi quan tâm chủ yếu về đỉnh đầu tiên, tất cả lý do nhiều hơn để A tích cực.AA>0A
  • là trung tâm của vết sưng và chúng tôi luôn muốn nó ở vết sưng lớn đó khoảng 4-5mHz. Trong dải tần số được giải quyết của chúng tôi, nó hầu như luôn xuất hiện ở mức 4,8mHz.B
  • là chiều rộng của vết sưng. Tôi tưởng tượng nó đối xứng quanh 0 có nghĩa là C sẽ có tác dụng tương tự - C vì nó bình phương. Vì vậy, chúng tôi không quan tâm giá trị của nó là gì. Hãy nói rằng chúng tôi thích nó tích cực.CCC
  • là độ dốc của đường, có vẻ như nó có thể hơi âm nên không thực thi bất kỳ hạn chế nào trên nó. Độ dốc là thú vị theo cách riêng của nó vì vậy thay vì thực thi bất kỳ hạn chế nào đối với nó, chúng tôi chỉ muốn xem nó sẽ là gì. Là nó tích cực hay tiêu cực? Làm thế nào lớn / nhỏ là nó khôn ngoan? và như thế.D
  • L- intercept(gần như). Điều tinh tế ở đây là do thuật ngữ gaussian, E không hoàn toàn là L -intercept. Chặn thực tế (nếu chúng ta ngoại suy thành f = 0 ) sẽ làELELf=0

Ae(B/C)2+E.

Vì vậy, hạn chế duy nhất ở đây là đánh chặn cũng phải tích cực. Việc chặn là 0, tôi không biết điều đó có nghĩa là gì. Nhưng chắc chắn tiêu cực sẽ vô nghĩa. Tôi đoán ở đây chúng ta có thể cho phép hơi âm với cường độ nhỏ nếu cần thiết. Lý do E và đánh chặn là quan trọng ở đây nhưng một số đồng nghiệp của chúng tôi thực sự quan tâm đến phép ngoại suy là tốt. Tần số tối thiểu chúng ta có là 0,8mHz và họ muốn ngoại suy trong khoảng từ 0 đến 0,8mHz. Ý tưởng ngây thơ của tôi là chỉ sử dụng sự phù hợp để đi xuống đến f = 0 .EEf=0

L

Câu hỏi 3: Các bạn nghĩ gì khi ngoại suy theo cách này trong trường hợp này? Bất kỳ ưu / nhược điểm? Bất kỳ ý tưởng khác cho ngoại suy? Một lần nữa, chúng tôi chỉ quan tâm đến các tần số thấp hơn nên ngoại suy giữa 0 và 1mHz ... đôi khi các tần số rất rất nhỏ, gần bằng không. Tôi biết bài này đã được đóng gói. Tôi đã hỏi câu hỏi này ở đây vì các câu trả lời có thể liên quan nhưng nếu các bạn thích tôi có thể tách câu hỏi này và hỏi một câu hỏi khác sau.

Cuối cùng, đây là hai bộ dữ liệu mẫu theo yêu cầu.

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

Cột đầu tiên là tần số tính bằng mHz, giống hệt nhau trong mỗi bộ dữ liệu. Cột thứ hai là một tập dữ liệu tốt (dữ liệu tốt hình một và hai, bảng 5, điểm đánh dấu màu đỏ) và cột thứ ba là tập dữ liệu xấu (dữ liệu xấu hình ba và bốn, bảng 5, đánh dấu màu đỏ).

Hy vọng điều này là đủ để kích thích một số cuộc thảo luận giác ngộ hơn. Cảm ơn mọi người.


+1 để biết thêm thông tin, nhưng bây giờ điều này trông giống như một câu hỏi mới. Ngẫu nhiên, nếu bạn muốn xóa cái trước đó bây giờ tôi nghĩ rằng nó sẽ ổn, có vẻ như bạn đã bao gồm các thông tin bổ sung mà nó có.
Glen_b -Reinstate Monica

@Glen_b Tại sao lại như vậy? Tại sao nó trông giống như một câu hỏi mới? Đối với câu hỏi cũ, tất cả chúng ta đều có điểm ;-D và câu hỏi cũ có hai điểm nâng cao, có cách nào hợp nhất nó với điều này để tôi cũng có thể giữ hai phiếu đó không?
Điểm cố định

Tốt cho người mới bắt đầu, bây giờ bạn đang hỏi về những gì bạn nên phù hợp, thay vì chỉ định những gì phù hợp, như trước đây. Có một số khác biệt khác, một số trong đó tôi nghĩ là khá quan trọng. Tôi sẽ xem xét việc thay đổi câu trả lời của mình, nhưng tôi nghĩ câu hỏi này có thể là câu hỏi và câu trả lời ban đầu và những phần mới của bạn nơi bạn đang hỏi những điều khác có thể là một câu hỏi mới. Tôi sẽ để điều đó cho sự phán xét của bạn cho hiện tại.
Glen_b -Reinstate Monica

@Glen_b Đủ công bằng, tôi đưa ra các câu hỏi thêm. Vì vậy, các câu hỏi vẫn còn, tôi có một số dữ liệu tôi muốn phù hợp bằng cách sử dụng dạng tuyến tính + gaussian, tôi có thể làm tốt hơn khởi tạo ngẫu nhiên không?
Điểm cố định

Tôi nghĩ rằng câu trả lời hiện tại của tôi cho thấy rằng - trong ít nhất một số trường hợp - bạn có thể làm tốt hơn và @whuber gợi ý điều gì đó thậm chí còn đơn giản hơn quy trình của tôi. Tôi có thể quay lại và xem những gì tôi đã thực hiện trên dữ liệu của bạn, nhưng ngay cả khi hiện tại nó vẫn đưa ra một số ý tưởng làm thế nào để thiết lập các điểm bắt đầu như vậy.
Glen_b -Reinstate Monica

Câu trả lời:


10

Nếu có một chiến lược vừa tốt vừa chung - một chiến lược luôn hiệu quả - thì nó sẽ được thực hiện trong mọi chương trình bình phương nhỏ nhất phi tuyến và các giá trị bắt đầu sẽ không thành vấn đề.

Đối với nhiều vấn đề cụ thể hoặc gia đình có vấn đề, một số cách tiếp cận khá tốt để bắt đầu các giá trị; một số gói đi kèm với tính toán giá trị bắt đầu tốt cho các mô hình phi tuyến cụ thể hoặc với các cách tiếp cận chung hơn thường hoạt động nhưng có thể phải được trợ giúp với các hàm cụ thể hơn hoặc đầu vào trực tiếp của giá trị bắt đầu.

Khám phá không gian là cần thiết trong một số tình huống nhưng tôi nghĩ rằng tình huống của bạn có thể là như vậy mà các chiến lược cụ thể hơn sẽ có giá trị - nhưng để thiết kế một chiến lược tốt khá nhiều đòi hỏi nhiều kiến ​​thức về miền mà chúng ta không thể có.

x

yx

Một ví dụ - thực hiện phần Gaussian A

Một số dữ liệu mẫu sẽ có ích - trường hợp điển hình và trường hợp khó, nếu bạn có thể.


Chỉnh sửa: Đây là một ví dụ về cách bạn có thể làm khá tốt nếu vấn đề không quá ồn ào:

Đây là một số dữ liệu được tạo từ mô hình của bạn (giá trị dân số là A = 1.9947, B = 10, C = 2.828, D = 0.09, E = 5):

dữ liệu nls

Các giá trị bắt đầu tôi có thể ước tính là
(As = 1.658, Bs = 10,001, Cs = 3.053, Ds = 0,0881, Es = 5.026)

Sự phù hợp của mô hình bắt đầu đó trông như thế này:

bắt đầu

Các bước là:

  1. Điều chỉnh hồi quy Theil để có ước tính sơ bộ về D và E
  2. Trừ đi sự phù hợp của hồi quy Theil
  3. Sử dụng LOESS để phù hợp với một đường cong mượt mà
  4. Tìm đỉnh để có ước tính sơ bộ của A và giá trị x tương ứng với đỉnh để có ước tính sơ bộ của B
  5. Lấy LOESS phù hợp với giá trị y của nó> 60% ước tính của A làm quan sát và phù hợp với một bậc hai
  6. Sử dụng phương trình bậc hai để cập nhật ước tính của B và để ước tính C
  7. Từ dữ liệu gốc, trừ đi ước tính của Gaussian
  8. Điều chỉnh hồi quy Theil khác với dữ liệu đã điều chỉnh đó để cập nhật ước tính của D và E

Trong trường hợp này, các giá trị rất phù hợp để bắt đầu một sự phù hợp phi tuyến.

Tôi đã viết Rmã này dưới dạng mã nhưng điều tương tự có thể được thực hiện trong MATLAB.

Tôi nghĩ những điều tốt hơn thế này là có thể.

Nếu dữ liệu rất ồn, điều này sẽ không hoạt động tốt.


Edit2: Đây là mã tôi đã sử dụng trong R, nếu có ai quan tâm:

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. Lặp đi lặp lại sự phù hợp hàng ngàn lần và chọn cách tốt nhất (nếu tôi hiểu chính xác) nghe có vẻ là một ý tưởng kỳ lạ: bình phương tối thiểu phi tuyến sẽ hội tụ nếu mô hình hợp lý cho dữ liệu và có giá trị ban đầu tốt. Đương nhiên, thứ hai là những gì bạn đang hỏi về. Nhưng có vẻ bi quan khi ngụ ý rằng bạn có thể cần phải chọn các giá trị bắt đầu khác nhau cho mỗi phù hợp.
Nick Cox

1
@NickCox Nó liên quan đến một loạt các vấn đề gặp phải - nếu tôi nhớ lại ngay từ các bài đăng trước đó, OP nhận được rất nhiều vấn đề này, nhưng tôi đã không nhớ đã thấy đủ chi tiết để đưa ra đề xuất tốt trước đây, mặc dù tôi đã đầu tư một chút thời gian chơi xung quanh với các phương pháp tiềm năng (mà không mang lại bất cứ điều gì đủ dứt khoát để đăng). OP có khả năng có loại kiến ​​thức miền có thể mang lại giá trị khởi đầu tốt để giải quyết vấn đề của mình hầu như luôn luôn.
Glen_b -Reinstate Monica

1
Khá là vậy. Tôi đã bỏ lỡ bài viết trước đó tại stats.stackexchange.com/questions/61724/ Kẻ
Nick Cox

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

2
BB

6

Có một cách tiếp cận chung để phù hợp với các loại mô hình phi tuyến này. Nó liên quan đến việc xác định lại các tham số tuyến tính với các giá trị của biến phụ thuộc tại giá trị tần số đầu tiên, cuối cùng và một điểm tốt ở giữa nói điểm thứ 6. sau đó bạn có thể giữ các tham số này cố định và giải quyết tham số phi tuyến trong giai đoạn đầu tiên của tối thiểu hóa và sau đó thu nhỏ tổng thể 5 tham số.

Schnute và tôi đã tìm ra điều này vào khoảng năm 1982 khi điều chỉnh mô hình tăng trưởng cho cá.

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

Tuy nhiên không cần thiết phải đọc bài báo này. Do thực tế là các tham số là tuyến tính, chỉ cần thiết lập và giải hệ phương trình tuyến tính 3x3 để sử dụng tham số hóa ổn định của mô hình.

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

nhập mô tả hình ảnh ở đây

Đối với trường hợp của bạn với dữ liệu xấu, nó phù hợp khá dễ dàng và ước tính tham số (thông thường) là:

         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]

Dave, điều này thật thú vị, nhưng nó đặt ra một số câu hỏi. Chính xác thì ý của bạn là "những kiểu mẫu phi tuyến" này là gì? Câu hỏi bắt đầu bằng cách đề cập đến "chức năng phù hợp chung", nhưng mô tả của bạn chỉ đề cập đến "tổng thể 5 tham số".
whuber

Tôi có nghĩa là các mô hình như vonbertalanffy, hoặc logistic hoặc gấp đôi số mũ chẳng hạn. Trong mọi trường hợp, mô hình là tuyến tính trong một số tham số và phi tuyến trong các tham số khác. Mọi người thường cố gắng biến đổi chúng để có được các tham số hóa ổn định hơn bằng cách tập trung vào các tham số phi tuyến tính. Tuy nhiên đây là cách tiếp cận sai. Đó là tham số hóa tuyến tính cần được sửa đổi. Ví dụ, đối với logistic tham số 4, mô hình là tuyến tính ở tiệm cận trên và dưới, nhưng thay vì sử dụng các tham số này, ta nên sử dụng các giá trị dự đoán cho giá trị nhỏ nhất và lớn nhất. var.
dave Fournier

@davefournier Cảm ơn bạn đã trả lời và chỉ vào bài viết của bạn. Bài viết của bạn có vẻ hơi khó hiểu nhưng kỹ thuật này có vẻ thú vị nên không thể chờ để đọc nó.
Điểm cố định

2

Nếu bạn phải làm điều này nhiều lần thì tôi khuyên bạn nên sử dụng Thuật toán tiến hóa trên hàm SSE làm giao diện người dùng để cung cấp các giá trị bắt đầu.

Mặt khác, bạn có thể sử dụng GEOGEBRA để tạo hàm bằng cách sử dụng thanh trượt cho các tham số và chơi với chúng để lấy giá trị bắt đầu.

HOẶC giá trị bắt đầu từ dữ liệu có thể được ước tính bằng quan sát.

  1. D và E đến từ độ dốc và chặn dữ liệu (bỏ qua Gaussian)
  2. A là khoảng cách dọc của mức tối đa của Gaussian từ ước tính dòng Dx + E.
  3. B là giá trị x của giá trị cực đại của Gaussian
  4. C là một nửa chiều rộng biểu kiến ​​của Gaussian

1

Để bắt đầu các giá trị, bạn có thể thực hiện một hình vuông nhỏ nhất bình thường phù hợp. Độ dốc và đánh chặn của nó sẽ là giá trị bắt đầu cho D và E. Phần dư lớn nhất sẽ là giá trị bắt đầu cho A. Vị trí của phần dư lớn nhất sẽ là giá trị bắt đầu cho B. Có thể người khác có thể đề xuất giá trị bắt đầu cho sigma.

Tuy nhiên, bình phương tối thiểu phi tuyến tính mà không thu được bất kỳ loại phương trình cơ học nào từ kiến thức chủ đề là kinh doanh rủi ro, và thực hiện nhiều điều phù hợp riêng biệt khiến mọi thứ trở nên nghi ngờ hơn. Có bất kỳ kiến ​​thức chủ đề đằng sau phương trình đề xuất của bạn? Có các biến độc lập khác liên quan đến sự khác biệt giữa 100 hoặc phù hợp riêng biệt không? Nó có thể hữu ích nếu bạn có thể kết hợp những khác biệt đó vào một phương trình duy nhất phù hợp với tất cả dữ liệu cùng một lúc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.