Chúng ta có thể phát triển các gia đình tham số phong phú từ giải pháp tầm thường với copula F( x , y) = phút ( x , y), trường hợp tương quan hoàn hảo (tích cực) và đối tác của nó cho tương quan âm hoàn hảo. Thay vào đó, việc tập trung xác suất dọc theo đoạn đường nối từ đến với cung cấp cho copula( 0 , α )( 1 , β)β> α
F( x , y; α , β) = =⎧⎩⎨⎪⎪x y,βx ,α x + y- α0 ≤ y< Α hoặc β< y≤ 1x ( β- α ) ≤ y- αnếu không thì.
Một copula tương tự phát sinh khi , mà tôi cũng sẽ chỉ định .β< aF( x , y; α , β)
Hãy nghĩ về những điều này như là hỗn hợp: khi , có các thành phần đồng nhất trên các hình chữ nhật nằm ngang , , và trên hình chữ nhật trung tâm có một mối tương quan hoàn hảo (phân phối của nó là cho biến được phân phối đồng đều ). Quan niệm này về giúp dễ dàng tính toán hồi quy: đó là tổng của ba phương tiện có điều kiện,β> α[ 0 , 1 ] × [ 0 , α ][ 0 , 1 ] × [ β, 1 ][ 0 , 1 ] × [ α , β]( U, α + ( β- α ) U)BạnF
E (Y∣ X) = α (α2) +(β- α ) ( α + ( β- α ) X) + ( 1 - β) (1 + β2) .
Điều này rõ ràng là tuyến tính trong : phần chặn bằng và độ dốc là lần dấu của . Hơn nữa, nó đã được xây dựng để có biên độ thống nhất.X( 1 + ( β- α)2) / 2( β- α)2β- α
Để tạo một họ tham số, chọn bất kỳ phân phối tham số nào cho với tham số . Đặt là hàm phân phối. Nó mô tả một hỗn hợp của thông qua tích hợp:( Α , β)θG(α,β;θ)F(;α,β)
F~(x,y;θ)=∬F(x,y;α,β)dG(α,β;θ)
là hàm phân phối (copula). Bởi vì mỗi có lề đồng nhất, nên . Hơn nữa, hồi quy của nó là tuyến tính vìF(;α,β)F~(;θ)
EF~(;θ)(Y∣X)=∬EF(;α,β)(Y∣X)dG(α,β;θ)=∬((1+(β−α)2)/2+sgn(β−α)(β−α)2X)dG(α,β;θ)=∬(1+(β−α)2)/2dG(α,β;θ)+∬sgn(β−α)(β−α)2dG(α,β;θ)X=EG(;θ)((1+(β−α)2)/2)+EG(;θ)(sgn(β−α)(β−α)2)X.
Điều này cho thấy mức độ chặn và độ dốc là kỳ vọng của đánh chặn và độ dốc (đối với ), cung cấp thông tin hữu ích để chọn gia đình phù hợp .GG(;θ)
Những tài liệu đồ họa mô phỏng từ một gia đình như vậy. Ở đây, được rút ra từ bản phân phối Beta và được rút ra độc lập với bản phân phối Beta . Cột đầu tiên hiển thị biểu đồ của việc thực hiện các tham số này. Cột thứ hai hiển thị biểu đồ phân phối biên của và : chúng gần giống với thống nhất. Cột ngoài cùng bên phải hiển thị một tập hợp con ngẫu nhiên của 100.000 giá trị mô phỏng, cùng với ước tính hồi quy của nó (đường màu đỏ) và gần đúng với hồi quy lý thuyết (đường chấm đen): chúng đồng ý chặt chẽ. Hồi quy ước tính thu được bằng cách tính các phương tiện củaα(5,1)β(3,10)XYXvà trong các cửa sổ của , sau đó làm mịn dấu vết của chúng bằng Loess.YX
(Đường hồi quy "lý thuyết" chỉ là một xấp xỉ thu được bằng cách thay thế và trong các công thức kỳ vọng bằng các kỳ vọng của chúng. Các công thức chính xác rất đơn giản để thực hiện trong trường hợp này, nhưng mã dài và lộn xộn.)αβ
Các R
mã mà tạo ra con số này có thể dễ dàng được sử dụng để nghiên cứu các gia đình khác .G(;θ)
#
# Draw `n` variates from the mixture copula.
# `alpha` and `beta` are intended to be realizations of G(;theta).
#
runif.xy <- function(n, alpha=0, beta=1) {
a <- pmin(alpha, beta)
b <- pmax(alpha, beta)
xy <- matrix(runif(2*n), nrow=2) # Start with a uniform distribution
i <- xy[2,] > a & xy[2,] < b # Select the middle rectangle
xy[2, i] <- (xy[1,]*(beta - alpha) + alpha)[i]# Create perfect correlation
return(xy)
}
#
# Specify the parameters ("theta").
#
a.alpha <- 5
b.alpha <- 1
a.beta <- 3
b.beta <- 10
#
# Draw the slope `beta` and intercept `alpha` from G(;theta).
#
n.sim <- 1e5
alpha <- rbeta(n.sim, a.alpha, b.alpha)
beta <- rbeta(n.sim, a.beta, b.beta)
#
# Draw (X,Y) from the mixture.
#
sim <- runif.xy(n.sim, alpha, beta)
#
# Plot histograms of alpha, beta, X, Y.
#
par(mfcol=c(2,3))
hist(alpha); abline(v=a.alpha/(a.alpha+b.alpha), col="Red", lwd=2)
hist(beta); abline(v=a.beta/(a.beta+b.beta), col="Red", lwd=2)
hist(sim[1,], main="X Marginal", xlab="X")
hist(sim[2,], main="Y Marginal", xlab="Y")
#
# Plot the simulation and its regression curve.
#
i <- sample.int(n.sim, min(5e3, n.sim)) # Limit how many points are shown
plot(t(sim[, i]), asp=1, pch=19, col="#00000002", main="Simulation",
xlab="X", ylab="Y")
library(zoo)
i <- order(sim[1,])
x <- as.vector(rollapply(ts(sim[1, i]), ceiling(n.sim/100), mean))
y <- as.vector(rollapply(ts(sim[2, i]), ceiling(n.sim/100), mean))
lines(lowess(y ~ x), col="Red", lwd=2)
#
# Overplot the theoretical regression curve.
#
a <- a.alpha / (a.alpha + b.alpha) # Expectation of `alpha`
b <- a.beta / (a.beta + b.beta) # Expectation of `beta`
intercept <- (1 + (b-a)^2)/2
slope <- (b - a)^2 * sign(b-a)
abline(c(intercept, slope), lty=3, lwd=3)