2016-12-08 6 views
2

したがって、2ウェイエフェクトを使用して時間とストア用にパネルデータを回帰したいと思います。パネルが完全にバランスされていればうまく動作しますが、なんらかの理由でそうでなければコードが固まってしまいます。 (https://stat.ethz.ch/pipermail/r-help/2010-May/239272.html参照)。データにNAがある場合のplmパッケージとtwoways効果を使用した回帰

私のデータは本質的に不均衡ではありませんが、いくつかのNAsを持っていますので、plm関数がNAを持つ行を削除すると不均衡になっていると思います。 私は持っているデータを例示するためのサンプルコードを書いた。

私はこれを実行した場合:

set.seed(123) 
library(plm) 
number.of.days <- 1100 
number.of.stores <- 1000 
days <- sort(rep(c(1:number.of.days),number.of.stores)) 
stores <- rep(c(1:number.of.stores),number.of.days) 

data <- cbind.data.frame(stores,days,matrix(rnorm(number.of.days*number.of.stores*7),nrow=number.of.days*number.of.stores,ncol=7)) 
colnames(data)[3:9] <- c('y',paste0('x',1:6)) 

data <- plm.data(data,c("stores","days")) 
fit <- plm(y ~ x1 + x2 + x3 + x4 + x5 + x6, data = data, index=c("stores","days"), effect="twoway", model="within") 

をパネルでバランスが取れているので、それは正しく動作します。私はいくつかのNA値作成する場合は、:

data$y[sample(1:number.of.days*number.of.stores,150)] <- NA 
data$x1[sample(1:number.of.days*number.of.stores,150)] <- NA 
data$x2[sample(1:number.of.days*number.of.stores,150)] <- NA 
data$x3[sample(1:number.of.days*number.of.stores,150)] <- NA 
data$x4[sample(1:number.of.days*number.of.stores,150)] <- NA 
data$x5[sample(1:number.of.days*number.of.stores,150)] <- NA 
data$x6[sample(1:number.of.days*number.of.stores,150)] <- NA 

をそして再び回帰を実行しよう:

fit <- plm(y ~ x1 + x2 + x3 + x4 + x5 + x6, data = data, index=c("stores","days"), effect="twoway", model="within") 

それは動作しません。

私は店舗に「個」の効果を使い、時間のためにダミーを追加してみましたが、1100日が経過しているのでゆっくりとなります。

これはまれな問題ではないと思います。既知の解決策はありますか?

は(あまりにも、効率的かつ)

+0

あなたのコードを実行しています私はメモリエラーがありませんでした: '8139Mbの総割り当て:help(memory.size)'を参照してください。ただし、サンプルサイズを小さくすると、エラーは消えます。それはあなたの実際のデータを取得するのと同じエラーですか? –

+0

私が通常行うことであるLinuxサーバ上で実行すると、決して終了しません。しかし、ローカルのRStudioを試してみると、これは起こります。サイズについては正しいですが、私の実際のデータはまさに大きなものです – Thiagogpsm

+0

"それは動作しません"という意味を明記してください。何らかのエラーメッセージが表示されるのですか、または信号が「機能しません」という動作が観察されますか? – Helix123

答えて

2

lfeパッケージからfelm機能は、これを処理することができ、ありがとうございました。 NAsとデータの

fit2 <- felm(y ~ x1 + x2 + x3 + x4 + x5 + x6 | stores + days | 0 | stores , data = data) 

を実行

は結果が得られます。

投射される要因(固定効果)を指定する数式仕様に注意してください。式の最後のstoresは、標準エラーをクラスタリングするための変数を指定します。詳細については、優れたfelmヘルプファイルとlfeパッケージのドキュメントをご覧ください。

関連する問題