R / mgcv: Tại sao các sản phẩm tenor te () và ti () tạo ra các bề mặt khác nhau?


11

Các mgcvgói cho Rcó hai chức năng cho phù hợp tương tác sản phẩm tensor: te()ti(). Tôi hiểu sự phân công lao động cơ bản giữa hai người (phù hợp với sự tương tác phi tuyến tính so với việc phân tách tương tác này thành các hiệu ứng chính và tương tác). Điều tôi không hiểu là tại sao te(x1, x2)ti(x1) + ti(x2) + ti(x1, x2)có thể tạo ra (một chút) kết quả khác nhau.

MWE (phỏng theo ?ti):

require(mgcv)
test1 <- function(x,z,sx=0.3,sz=0.4) { 
  x <- x*20
 (pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+
             0.8*exp(-(x-0.7)^2/sx^2-(z-0.8)^2/sz^2))
}
n <- 500

x <- runif(n)/20;z <- runif(n);
xs <- seq(0,1,length=30)/20;zs <- seq(0,1,length=30)
pr <- data.frame(x=rep(xs,30),z=rep(zs,rep(30,30)))
truth <- matrix(test1(pr$x,pr$z),30,30)
f <- test1(x,z)
y <- f + rnorm(n)*0.2

par(mfrow = c(2,2))

# Model with te()
b2 <- gam(y~te(x,z))
vis.gam(b2, plot.type = "contour", color = "terrain", main = "tensor product")

# Model with ti(a) + ti(b) + ti(a,b)
b3 <- gam(y~ ti(x) + ti(z) + ti(x,z))
vis.gam(b3, plot.type = "contour", color = "terrain", main = "tensor anova")

# Scatterplot of prediction b2/b3
plot(predict(b2), predict(b3))

Sự khác biệt không lớn lắm trong ví dụ này, nhưng tôi chỉ tự hỏi tại sao nên có sự khác biệt nào cả.

Thông tin phiên:

 > devtools::session_info("mgcv")
 Session info
 -----------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.3.1 (2016-06-21)
 system   x86_64, linux-gnu           
 ui       RStudio (0.99.491)          
 language en_US                       
 collate  en_US.UTF-8                 
 tz       <NA>                        
 date     2016-09-13                  

 Packages      ---------------------------------------------------------------------------------------
 package * version date       source        
 lattice   0.20-33 2015-07-14 CRAN (R 3.2.1)
 Matrix    1.2-6   2016-05-02 CRAN (R 3.3.0)
 mgcv    * 1.8-12  2016-03-03 CRAN (R 3.2.3)
 nlme    * 3.1-128 2016-05-10 CRAN (R 3.3.1)
r  gam  mgcv  conditional-probability  mixed-model  references  bayesian  estimation  conditional-probability  machine-learning  optimization  gradient-descent  r  hypothesis-testing  wilcoxon-mann-whitney  time-series  bayesian  inference  change-point  time-series  anova  repeated-measures  statistical-significance  bayesian  contingency-tables  regression  prediction  quantiles  classification  auc  k-means  scikit-learn  regression  spatial  circular-statistics  t-test  effect-size  cohens-d  r  cross-validation  feature-selection  caret  machine-learning  modeling  python  optimization  frequentist  correlation  sample-size  normalization  group-differences  heteroscedasticity  independence  generalized-least-squares  lme4-nlme  references  mcmc  metropolis-hastings  optimization  r  logistic  feature-selection  separation  clustering  k-means  normal-distribution  gaussian-mixture  kullback-leibler  java  spark-mllib  data-visualization  categorical-data  barplot  hypothesis-testing  statistical-significance  chi-squared  type-i-and-ii-errors  pca  scikit-learn  conditional-expectation  statistical-significance  meta-analysis  intuition  r  time-series  multivariate-analysis  garch  machine-learning  classification  data-mining  missing-data  cart  regression  cross-validation  matrix-decomposition  categorical-data  repeated-measures  chi-squared  assumptions  contingency-tables  prediction  binary-data  trend  test-for-trend  matrix-inverse  anova  categorical-data  regression-coefficients  standard-error  r  distributions  exponential  interarrival-time  copula  log-likelihood  time-series  forecasting  prediction-interval  mean  standard-error  meta-analysis  meta-regression  network-meta-analysis  systematic-review  normal-distribution  multiple-regression  generalized-linear-model  poisson-distribution  poisson-regression  r  sas  cohens-kappa 

4
Nghiêm túc nhé mọi người!? Trong khi việc triển khai rõ ràng là một điều cụ thể về mgcv (tôi không biết về bất kỳ phần mềm sẵn có nào khác dành cho GAM cho phép phân tách mịn màng giống như ANOVA này), vấn đề và câu trả lời được thống kê rõ ràng; các mô hình phù hợp không giống nhau dưới mui xe do ma trận hình phạt bổ sung phát sinh khi phân tách các điều khoản cận biên từ thành phần "tương tác". Điều này không cụ thể đối với mgcv.
Phục hồi Monica - G. Simpson

1
@GavinSimpson Tôi đã đưa ra một câu hỏi trên Meta về tính thời sự, hay nói cách khác là câu hỏi này
Silverfish

Câu trả lời:


15

Đây là những mô hình tương tự bề ngoài nhưng trong thực tế khi phù hợp có một số khác biệt tinh tế. Một sự khác biệt quan trọng là mô hình với ti()các điều khoản đang ước tính các tham số độ mịn hơn so với te()mô hình:

> b2$sp
te(x,z)1 te(x,z)2 
3.479997 5.884272 
> b3$sp
    ti(x)     ti(z)  ti(x,z)1  ti(x,z)2 
 8.168742 60.456559  2.370604  2.761823

và điều này là do có nhiều ma trận phạt hơn liên quan đến hai mô hình; trong ti()mô hình, chúng ta có một "hạn" so với chỉ hai trong te()mô hình, một cho mỗi tỷ lệ mịn.

Tôi thấy các mô hình ti()được sử dụng để quyết định xem tôi muốn hay . Tôi không thể so sánh các mô hình đó nếu tôi sử dụng thuật ngữ để tôi sử dụng . Khi tôi đã xác định nếu tôi cần tôi có thể chỉnh lại mô hình nếu tôi cần hoặc tách riêng cho từng hiệu ứng cận biên nếu tôi không cần . y =β0+s(x)+s(y)s(x,y)s(x,y)y^= =β0+S(x,y)y^= =β0+S(x)+S(y)te()ti()S(x,y)te()s()S(x,y)

Lưu ý rằng bạn có thể khiến các mô hình gần nhau hơn bằng cách sử dụng method = "ML"(hoặc "REML", nhưng bạn không nên so sánh các hiệu ứng "cố định" với "REML"trừ khi tất cả các điều khoản bị phạt hoàn toàn, theo mặc định chúng không có, nhưng sẽ nói với select = TRUE).

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.