Có một công thức cho một đường cong hình chữ s với miền và phạm vi [0,1]


10

Về cơ bản tôi muốn chuyển đổi các biện pháp tương tự thành các trọng số được sử dụng làm công cụ dự đoán. Điểm tương đồng sẽ là trên [0,1] và tôi sẽ hạn chế các trọng số cũng ở trên [0,1]. Tôi muốn một hàm paramteric thực hiện ánh xạ này mà tôi có khả năng tối ưu hóa bằng cách sử dụng độ dốc. Các yêu cầu là 0 ánh xạ thành 0, 1 ánh xạ thành 1 và nó đang tăng nghiêm ngặt. Một đạo hàm đơn giản cũng được đánh giá cao. Cảm ơn trước

Chỉnh sửa: Cảm ơn các phản hồi cho đến nay, những điều này rất hữu ích. Để làm cho mục đích của tôi rõ ràng hơn, nhiệm vụ là dự đoán. Quan sát của tôi là các vectơ cực kỳ thưa thớt với một chiều duy nhất để dự đoán. Kích thước đầu vào của tôi được sử dụng để tính toán độ tương tự. Dự đoán của tôi sau đó là tổng trọng số của các giá trị quan sát khác cho người dự đoán trong đó trọng số là một hàm tương tự. Tôi giới hạn trọng lượng của mình trên [0,1] cho đơn giản. Bây giờ rõ ràng là tại sao tôi yêu cầu 0 để ánh xạ thành 0, 1 để ánh xạ thành 1 và để nó được tăng lên một cách nghiêm ngặt. Như whuber đã chỉ ra sử dụng f (x) = x đáp ứng các yêu cầu này và thực sự hoạt động khá tốt. Tuy nhiên nó không có thông số để tối ưu hóa. Tôi có rất nhiều quan sát để tôi có thể chịu đựng được rất nhiều thông số. Tôi sẽ tự tay mã hóa độ dốc gốc, do đó tôi thích một đạo hàm đơn giản.

Ví dụ, phần lớn các câu trả lời được đưa ra là đối xứng về 0,5. Sẽ rất hữu ích khi có tham số để dịch chuyển sang trái / phải (chẳng hạn như với bản phân phối beta)


4
f(x)=x thỏa mãn mọi yêu cầu của bạn.
whuber

Tôi đã thêm một chút để đáp ứng với chỉnh sửa của bạn về việc kiểm soát sự thay đổi bên trái. Tất cả ba gia đình mẫu trong ảnh của tôi có một cách trực tiếp để kiểm soát điều đó.
Glen_b -Reinstate Monica

Câu trả lời:


8

Đây là một:

y=11+(x1x)β

trong đó là> 0β>0

[! [] [1]] 2


Đây có phải là một chức năng tiêu chuẩn như của ? Tôi quan tâm đến việc xác định nó trong wed nhưng tôi không thể. Bạn có thể vui lòng cho một tài liệu tham khảo? s i ntanhsin
Darkmoor

Xin chào Darkmoor, tôi đã có được sự cân bằng này bằng cách chơi xung quanh với "hàm logit nghịch đảo". Bạn có thể thấy rằng nó tương tự y = nghịch đảo logit (x) = 1 / (1 + e ^ -x) Vì logit ánh xạ tới (0,1) imgur.com/a/H0kGF
Ismam Huda

2
Bạn có thể thêm một mức điều chỉnh bổ sung để bạn có thể điều chỉnh vị trí tại đó hàm bằng 0,5 bằng cách sử dụng y = 1 / (1+ (x ^ r / (1-x ^ r)) ^ - b) . Sau đó, để đạt được y = .5 tại x0, đặt r = -log (2) / log (x0). Hoặc, nếu bạn muốn đảm bảo rằng y = k với một số k trong khoảng từ 0 đến 1 tại x = x0 thì đặt r = -log ((1 / k - 1) ^ (1 / b) +1) / log (x0)
wmsmith

7

Như đã được nhận xét bởi @whuber, hàm thỏa mãn ba yêu cầu bạn đã đề cập (tức là 0 ánh xạ thành 0, 1 ánh xạ thành 1 và hàm đang tăng nghiêm ngặt). Trong tiêu đề câu hỏi của bạn, bạn dường như chỉ ra rằng bạn cũng quan tâm đến chức năng có hình chữ S, như trong đường cong Sigmoid / Logistic. Điều này có đúng không? Trong trường hợp đó, bạn chắc chắn nên thử hàm logistic sau đây sẽ đáp ứng xấp xỉ tất cả 4 tiêu chí bạn đã chỉ định: .1f(x)=x

11+ek(x0.5)

Chữ trong phương trình này sẽ kiểm soát độ dốc của đường cong của bạn. Thay đổi k cũng sẽ cho phép bạn kiểm soát mức độ đóng của f ( 0 )f ( 1 ) tương ứng với 0 và 1. Ví dụ: k = 20 , f ( 0 ) = 4.539487 e - 05f ( 1 ) = 0.9999546 .kkf(0)f(1)k=20f(0)=4.539787e05f(1)=0.9999546

Đạo hàm của hàm này dễ dàng được tính là: Thông tin thêm về chức năng này có thể được tìm thấy tạihttps://en.wikipedia.org/wiki/Logistic_feft

kek(x0.5)(1+ek(x0.5))2

Hàm này không ánh xạ 1 -> 1. Trên thực tế, f -> 1 là x ->. Tùy thuộc vào k, giá trị của f tại x = 1 có thể khá nhỏ, nhưng nó sẽ không bao giờ chính xác bằng 0. Trên thực tế, đó là lý do chính để sử dụng e ^ ... trong mẫu số, nghĩa là tên miền có liên quan là [0, ∞) thay vì [0,1].
wmsmith

7

Hãy để tôi cung cấp giải pháp chung nhất phù hợp với các yêu cầu: điều đó sẽ cho bạn sự linh hoạt nhất để lựa chọn và tối ưu hóa.

Chúng ta có thể hiểu "hình chữ S" là một đường cong tăng đơn điệu (bởi vì phép biến đổi phải là một thành một) bao gồm một phần được lõm lên trên và một phần khác lõm xuống. Chúng ta có thể tập trung vào làm cho nửa bên trái lõm xuống, bởi vì loại khác (với nửa bên trái lõm lên) có được thông qua việc đảo ngược các biến đổi như vậy.

Kể từ khi chuyển đổi được coi là khả vi, do đó nó phải có một dẫn xuất giảm f ' trong nửa trái và một phái sinh ngày càng tăng ở nửa bên phải. Bất kể, đạo hàm phải là không âm và chỉ có thể bằng 0 tại một điểm cô lập (nếu có: giá trị tối thiểu của đạo hàm cho độ dốc nhỏ nhất của phép biến đổi.)ff

f

Đạo hàm thứ hai này thực tế có thể làm bất cứ điều gì : tất cả những chúng tôi yêu cầu là

  • nó có thể tích hợp,

  • [0,k)

  • (k,1]

f

f

f'(x)= =0xf''(t)dt

f(x)= =0xf'(t)dt.

f''ff(0)f(1)= =CfC


f

Nhân vật

f''[0,k)(k,1]R

f'f''f'f

ff''f''

f(x)= =xf''(x)= =0f'f10f'f(x)= =1-x

n <- 51                      # Number of interpolation points
k.1 <- floor(n * 2/3)        # Width of the left-hand interval
k.2 <- n - k.1               # ............ right-hand interval
x <- seq(0, 1, length.out=n) # x coordinates
set.seed(17)

# Generate random values of the second derivative that are first negative,
# then positive.  Modify to suit.
y.2 <- (c(runif(k.1, -1, 0), 0.5*runif(k.2, 0, 1))) * abs(cos(3*pi * x)) + 
  c(rep(-.1, k.1), rep(.5,k.2))

# Recover the first derivative and then the transformation.  Control the 
# minimum slope of the transformation.
y.1 <- cumsum(y.2)
y.1 <- y.1 - min(y.1) + 0.005 * diff(range(y.1))
y <- cumsum(y.1)
y <- (y - y[1]) / (y[n] - y[1]) # Normalize the transformation

#
# Plot the graphs.
par(mfrow=c(1,3))
plot(x, y.2, type="l", bty="n", main="Second derivative")
points(x, y.2, pch=20, cex=0.5)
abline(h=0, col="Red", lty=3)
plot(x, y.1, type="l", bty="n", lwd=2, main="First derivative")
abline(h=0, col="Red", lty=3)
plot(x, y, type="l", lwd=2, main="Transformation")

7

Những gì bạn đang cố gắng sử dụng cho mục đích này không đặc biệt rõ ràng đối với tôi vì vậy tôi không thể nói liệu điều đó có hợp lý hay không nhưng việc thực hiện tất cả các tiêu chí của bạn dường như khá tầm thường.

  • đường cong hình chữ s

  • chức năng tham số

  • 0 bản đồ thành 0, 1 bản đồ thành 1, tăng nghiêm ngặt

  • đạo hàm đơn giản

Vậy tại sao không lấy bất kỳ họ phân phối cụ thể liên tục * thuận tiện cụ thể nào trên [0,1] có pdf là "đơn giản"? Điều đó dường như đáp ứng mọi phần của những gì bạn liệt kê ở đó.

* (có chế độ được giới hạn khỏi các điểm cuối)

  • đường cong hình chữ s - được đảm bảo bởi tính không đồng nhất (với chế độ không ở điểm cuối)

  • tham số - bằng cách đưa ra bất kỳ gia đình cụ thể nào có tham số

  • 0 bản đồ thành 0, 1 bản đồ thành 1 tăng nghiêm ngặt - đó là những gì chức năng phân phối trên [0,1] làm; bạn chỉ cần mật độ là> 0 in (0,1)

  • đạo hàm đơn giản - đó là pdf, vì vậy nếu pdf "đơn giản" theo bất kỳ tiêu chí nào phù hợp với bạn, bạn đã hoàn thành.

Có (như Alex R đã nêu) một số lượng vô hạn trong số này. Bản beta mà anh ấy đề cập là một bản rõ ràng, nhưng cdf là hàm beta chưa hoàn chỉnh, vì vậy bạn cần một cái gì đó để đánh giá rằng --- đó là một chức năng tiêu chuẩn trong nhiều gói (bao gồm hầu hết tất cả các gói thống kê phong nha) vì vậy tôi nghi ngờ điều đó sẽ khó khăn. Tuy nhiên, xin lưu ý rằng không phải tất cả các betas đều không đồng nhất (với chế độ không ở cuối), vì vậy gia đình cũng bao gồm các cdf không có hình dạng "s".

Dưới đây là hình ảnh của ba gia đình đơn giản hợp lý:

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

Có nhiều sự lựa chọn khác và những cái mới có thể dễ dàng được xây dựng.

-

Đáp lại việc chỉnh sửa câu hỏi:

c= =12μα-βαα+β-12

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.