Một trong những giải pháp đơn giản nhất nhận ra rằng những thay đổi giữa các xác suất nhỏ (như 0,1) hoặc có phần bổ sung nhỏ (như 0,9) thường có ý nghĩa hơn và đáng được cân nhắc hơn so với thay đổi giữa các xác suất trung bình (như 0,5).
Chẳng hạn, thay đổi từ 0,1 đến 0,2 (a) nhân đôi xác suất trong khi (b) thay đổi xác suất bổ sung chỉ bằng 1/9 (giảm từ 1,1,1 = 0,9 xuống 0,2 đến 0,8), trong khi đó thay đổi từ 0,5 đến 0,6 (a) tăng xác suất chỉ 20% trong khi (b) giảm xác suất bổ sung chỉ 20%. Trong nhiều ứng dụng, sự thay đổi đầu tiên là, hoặc ít nhất là phải được coi là lớn gấp đôi so với lần thứ hai.
Trong bất kỳ tình huống nào sẽ có ý nghĩa như nhau khi sử dụng xác suất (của một cái gì đó xảy ra) hoặc bổ sung của nó (nghĩa là xác suất của một cái gì đó không xảy ra), chúng ta nên tôn trọng sự đối xứng này.
Hai ý tưởng này - về việc tôn trọng sự đối xứng giữa xác suất và phần bổ sung của chúng và biểu thị các thay đổi tương đối chứ không phải hoàn toàn - đề nghị rằng khi so sánh hai xác suất và chúng ta nên theo dõi cả hai tỷ lệ và các tỷ lệ bổ sung của chúng . Khi theo dõi tỷ lệ, đơn giản hơn là sử dụng logarit, giúp chuyển đổi tỷ lệ thành khác biệt. Ergo, một cách hay để thể hiện xác suất cho mục đích này là sử dụng được gọi là tỷ lệ cược log hoặc logit1 - p p p ′ p ′ / p ( 1 - p ) / ( 1 - p ′ ) p z = log p - log ( 1 - p ) , p z p = exp ( z ) / ( 1 + exp ( z ) ) .p1 - ppp′p′/p(1−p)/(1−p′)p
z=logp−log(1−p),
của . Tỷ lệ cược log được trang bị luôn có thể được chuyển đổi thành xác suất bằng cách đảo ngược logit; Dòng cuối cùng của mã dưới đây cho thấy cách thức này được thực hiện.
pzp=exp(z)/(1+exp(z)).
Lý do này khá chung chung: nó dẫn đến một quy trình ban đầu mặc định tốt để khám phá bất kỳ tập hợp dữ liệu nào liên quan đến xác suất. (Có nhiều phương pháp tốt hơn, chẳng hạn như hồi quy Poisson, khi xác suất dựa trên việc quan sát tỷ lệ "thành công" với số lượng "thử nghiệm", bởi vì xác suất dựa trên nhiều thử nghiệm đã được đo lường đáng tin cậy hơn. Điều đó dường như không phải là trường hợp ở đây, nơi xác suất dựa trên thông tin được gợi ra. Người ta có thể tính gần đúng phương pháp hồi quy Poisson bằng cách sử dụng bình phương tối thiểu có trọng số trong ví dụ dưới đây để cho phép dữ liệu có độ tin cậy cao hơn hoặc ít hơn.)
Hãy xem xét một ví dụ.
Scatterplot bên trái hiển thị một tập dữ liệu (tương tự như trong câu hỏi) được vẽ theo tỷ lệ cược log. Đường màu đỏ là bình phương nhỏ nhất bình thường phù hợp. Nó có thấp , biểu thị rất nhiều sự phân tán và "hồi quy trung bình" mạnh: đường hồi quy có độ dốc nhỏ hơn trục chính của đám mây điểm elip này. Đây là một thiết lập quen thuộc; nó rất dễ dàng để giải thích và phân tích sử dụng của chức năng hoặc tương đương.R2R
lm
Scatterplot bên phải thể hiện dữ liệu theo xác suất, như ban đầu chúng được ghi lại. Sự phù hợp tương tự được vẽ: bây giờ nó trông cong do cách phi tuyến trong đó tỷ lệ cược log được chuyển đổi thành xác suất.
Theo nghĩa của lỗi bình phương gốc về tỷ lệ cược log, đường cong này là phù hợp nhất .
Ngẫu nhiên, hình dạng gần như hình elip của đám mây ở bên trái và cách nó theo dõi đường bình phương nhỏ nhất cho thấy mô hình hồi quy bình phương nhỏ nhất là hợp lý: dữ liệu có thể được mô tả đầy đủ bằng mối quan hệ tuyến tính-- sử dụng tỷ lệ cược log được cung cấp-- và biến thể dọc xung quanh đường thẳng có kích thước gần như nhau bất kể vị trí ngang (homoscedasticity). (Có một số giá trị thấp bất thường ở giữa có thể đáng được xem xét kỹ hơn.) Đánh giá điều này chi tiết hơn bằng cách làm theo mã dưới đây với lệnh plot(fit)
để xem một số chẩn đoán chuẩn. Điều này một mình là một lý do mạnh mẽ để sử dụng tỷ lệ cược đăng nhập để phân tích các dữ liệu này thay vì xác suất.
#
# Read the data from a table of (X,Y) = (X, probability) pairs.
#
x <- read.table("F:/temp/data.csv", sep=",", col.names=c("X", "Y"))
#
# Define functions to convert between probabilities `p` and log odds `z`.
# (When some probabilities actually equal 0 or 1, a tiny adjustment--given by a positive
# value of `e`--needs to be applied to avoid infinite log odds.)
#
logit <- function(p, e=0) {x <- (p-1/2)*(1-e) + 1/2; log(x) - log(1-x)}
logistic <- function(z, e=0) {y <- exp(z)/(1 + exp(z)); (y-1/2)/(1-e) + 1/2}
#
# Fit the log odds using least squares.
#
b <- coef(fit <- lm(logit(x$Y) ~ x$X))
#
# Plot the results in two ways.
#
par(mfrow=c(1,2))
plot(x$X, logit(x$Y), cex=0.5, col="Gray",
main="Least Squares Fit", xlab="X", ylab="Log odds")
abline(b, col="Red", lwd=2)
plot(x$X, x$Y, cex=0.5, col="Gray",
main="LS Fit Re-expressed", xlab="X", ylab="Probability")
curve(logistic(b[1] + b[2]*x), col="Red", lwd=2, add=TRUE)