R / mgcv: เพราะเหตุใดผลิตภัณฑ์ te () และ ti () เทนเซอร์จึงให้พื้นผิวที่แตกต่างกัน


11

mgcvแพคเกจสำหรับการRมีสองฟังก์ชั่นสำหรับการปฏิสัมพันธ์กระชับเมตริกซ์ผลิตภัณฑ์: และte() ti()ฉันเข้าใจการแบ่งขั้นพื้นฐานของการใช้แรงงานระหว่างคนทั้งสอง (ปรับให้เหมาะสมกับการทำงานแบบไม่เป็นเชิงเส้นเปรียบเทียบกับการย่อยสลายการโต้ตอบนี้เป็นผลกระทบหลักและการโต้ตอบ) สิ่งที่ฉันไม่เข้าใจคือสาเหตุte(x1, x2)และti(x1) + ti(x2) + ti(x1, x2)อาจให้ผลลัพธ์ที่แตกต่าง (เล็กน้อย)

MWE (ดัดแปลงมาจาก?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))

ความแตกต่างไม่ใหญ่มากในตัวอย่างนี้ แต่ฉันแค่สงสัยว่าทำไมต้องมีความแตกต่างเลย

ข้อมูลเซสชั่น:

 > 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
ผู้คนอย่างจริงจัง! ในขณะที่การนำไปใช้อย่างชัดเจนเป็นสิ่งเฉพาะ mgcv (ฉันไม่ทราบว่ามีซอฟต์แวร์นอกระบบอื่น ๆ สำหรับเกมที่อนุญาตให้การสลายตัวเช่นเดียวกับ ANOVA ของ bivariate ราบรื่น) ปัญหาและคำตอบนั้นชัดเจนทางสถิติ แบบจำลองที่เหมาะสมไม่เหมือนกันภายใต้ประทุนเนื่องจากเมทริกซ์บทลงโทษพิเศษที่เกิดขึ้นเมื่อย่อยสลายข้อกำหนดส่วนเพิ่มจากองค์ประกอบ "การโต้ตอบ" นี่ไม่ใช่เฉพาะ mgcv
Gavin Simpson

1
@GavinSimpson ฉันได้ยกคำถามเกี่ยวกับเมตาเกี่ยวกับความทันสมัยในแบบหรือมิฉะนั้นของคำถามนี้
สีเงิน

คำตอบ:


15

เหล่านี้เป็นเพียงผิวเผินแบบเดียวกัน แต่ในทางปฏิบัติเมื่อทำการประกอบมีความแตกต่างเล็กน้อย ความแตกต่างที่สำคัญอย่างหนึ่งคือโมเดลที่มีti()เงื่อนไขคือการประมาณค่าพารามิเตอร์ความนุ่มนวลมากขึ้นเมื่อเทียบกับte()โมเดล:

> 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

และนี่เป็นเพราะมีการฝึกอบรมการลงโทษที่เกี่ยวข้องกับทั้งสองรุ่นมากขึ้น ในti()แบบจำลองเรามีหนึ่งคำว่า "คำศัพท์" เมื่อเทียบกับเพียงสองte()แบบเท่านั้นหนึ่งคำต่อหนึ่งขอบเรียบ

ti()Y^=β0+s(x,Y)Y^=β0+s(x)+s(Y)te()ti()s(x,Y)te()s()s(x,Y)

โปรดทราบว่าคุณสามารถรับแบบจำลองที่ค่อนข้างใกล้ชิดกันได้โดยการใช้method = "ML"(หรือ"REML"แต่คุณไม่ควรเปรียบเทียบเอฟเฟกต์ "คงที่" ด้วย) "REML"เว้นแต่ว่าข้อกำหนดทั้งหมดจะถูกลงโทษอย่างสมบูรณ์ซึ่งโดยค่าเริ่มต้นจะไม่ถูกกล่าวถึง ด้วยselect = TRUE)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.