0

重回帰のいくつかの基礎を調査している間、私は自分の手動の努力をジョン・フォックスによる「効果」パッケージの努力と比較することにしました。いくつかの関係を持つ変数を生成しましたが、連続変数の影響を制御するときに、因子の調整された平均を取得したいと思います。

しかし、エフェクトパッケージのエフェクト関数が「変数'c'の無効な型(組み込み)」というエラーを返すため、行き詰まりました。

を使用して変数'c'の型を確認するとtypeof(c)、構成されているため、double型であると言われます。

  • このエラーの原因は何でしょうか?
  • 変数「c」は、何らかの理由で「builtin」と入力するように強制されていますか?

これが私のコードです:

set.seed(1986)
y <- rnorm(100)
f <- sapply(y, function(x) if(x < 0) 1 else 2)
f.f <- as.factor(f)
set.seed(1987)
c <- rnorm(100, 0, .1) + y + f

an3 <- lm(y ~ f.f + c); summary(an3)

ef <- effect("f.f", an3)
4

2 に答える 2

3

c変数名には適していません。これは、Rで非常に一般的に使用される組み込み関数です。

私のために働くように変更cする:d

set.seed(1986)
y <- rnorm(100)
f <- sapply(y, function(x) if(x < 0) 1 else 2)
f.f <- as.factor(f)
set.seed(1987)
d <- rnorm(100, 0, .1) + y + f

an3 <- lm(y ~ f.f + d); summary(an3)

library(effects)
ef <- effect("f.f", an3)
 ef

 f.f effect
f.f
         1          2 
 0.5504214 -0.3231941 
于 2012-10-24T12:21:03.300 に答える
0

data.frameもう1つのオプションは、データを;に格納することです。これには他の利点もあります。特に、複数のデータセットを使用している場合はそうです。

set.seed(1986)
d <- data.frame(y=rnorm(100))
d <- within(d, {
  f <- sapply(y, function(x) if(x < 0) 1 else 2)
  f.f <- as.factor(f)
  set.seed(1987)
  c <- rnorm(100, 0, .1) + y + f
})

library(effects)

an3 <- lm(y ~ f.f + c, data=d); summary(an3)
ef <- effect("f.f", an3)
ef

# f.f effect
# f.f
#          1          2 
#  0.5504214 -0.3231941 
于 2012-10-24T14:40:25.733 に答える