3

私の現在の問題は、R を使用した一般加法的モデル (GAM) のさまざまな変数によって説明される分散を計算することです。

ここでウッドが提供した説明に従いました: https://stat.ethz.ch/pipermail/r-help/2007-October/142743.html

しかし、私は3つの変数でそれをやりたいと思っています。私はこれを試しました:

library(mgcv)

set.seed(0)
n<-400
x1 <- runif(n, 0, 1)
x2 <- runif(n, 0, 1) 
x3 <- runif(n, 0, 1) 

f1 <- function(x) exp(2 * x) - 3.75887
f2 <- function(x) 0.2*x^11*(10*(1-x))^6+10*(10*x)^3*(1-x)^10
f3 <- function(x) 0.008*x^2 - 1.8*x + 874
f <- f1(x1) + f2(x2) + f3(x3)
e <- rnorm(n, 0, 2)
y <- f + e

b <- gam(y ~ s(x1, k = 3)+s(x2, k = 3)+ s(x3, k = 3))
b3 <- gam(y ~ s(x1) + s(x2), sp = c(b$sp[1], b$sp[2]))
b2 <- gam(y ~ s(x1) + s(x3), sp = c(b$sp[1], b$sp[3]))
b1 <- gam(y ~ s(x2) + s(x3), sp = c(b$sp[2], b$sp[3]))

b0 <- gam(y~1)

(deviance(b1)-deviance(b))/deviance(b0)
(deviance(b2)-deviance(b))/deviance(b0)
(deviance(b3)-deviance(b))/deviance(b0)

しかし、結果がわかりません。たとえば、x1 と x2 のみのモデルは、3 つの説明変数を使用した場合の逸脱度よりも逸脱度が小さくなります。

3 つの変数を持つ変数によって説明される分散を抽出するために使用した方法は正しいですか?

グローバルモデルに交絡効果があるということですか?それとも別の説明がありますか?

どうもありがとう。

4

1 に答える 1

5

あなたはここで何か間違ったことをしました:

b <- gam(y ~ s(x1, k = 3) + s(x2, k = 3) + s(x3, k = 3))
b3 <- gam(y ~ s(x1) + s(x2), sp = c(b$sp[1], b$sp[2]))
b2 <- gam(y ~ s(x1) + s(x3), sp = c(b$sp[1], b$sp[3]))
b1 <- gam(y ~ s(x2) + s(x3), sp = c(b$sp[2], b$sp[3]))

残りのk = 3行を設定せずに、最初の行を設定したのはなぜですか? k = 3指定しない場合はデフォルト値になりkます。ここで問題が発生します: 、、が にネストされていません。s()k = 10b1b2b3b

サイモン ウッドの元の例では、彼はk特定されていないためk=10、すべてのs(). 実際、k値を変えることはできますが、同じ共変量に対して常に同じであることを保証する必要がありますk(ネストを確実にするため)。たとえば、次のことができます。

b <- gam(y ~ s(x1, k = 4) + s(x2, k = 6) + s(x3, k = 3))
b3 <- gam(y ~ s(x1, k = 4) + s(x2, k = 6), sp = c(b$sp[1], b$sp[2]))  ## droping s(x3) from b
b2 <- gam(y ~ s(x1, k = 4) + s(x3, k = 3), sp = c(b$sp[1], b$sp[3]))  ## droping s(x2) from b
b1 <- gam(y ~ s(x2, k = 6) + s(x3, k = 3), sp = c(b$sp[2], b$sp[3]))  ## droping s(x1) from b

それではやってみましょう:

(deviance(b1)-deviance(b))/deviance(b0)
# [1] 0.2073421
(deviance(b2)-deviance(b))/deviance(b0)
# [1] 0.4323154
(deviance(b3)-deviance(b))/deviance(b0)
# [1] 0.02094997

正の値は、モデル項を削除すると逸脱度が増大することを意味します。これは、実際のモデルには 3 つの項すべてがあるため、妥当です。

于 2016-07-22T01:16:22.057 に答える