私はRの新機能ですが、パネルデータで異なるIDに対していくつかの簡単な回帰を実行する必要があります。 私は4列1を持っています。ID 2.時間3. Y 4. Xと私は各IDのY〜Xを回帰する必要があります。 IDごとに120の期間を持つ100のIDがあるので、120回の観測で100回の単純回帰を実行する必要があります。パネルデータで異なるIDについてRで複数の回帰を実行する
どうすればいいですか?
ありがとうございます!
私はRの新機能ですが、パネルデータで異なるIDに対していくつかの簡単な回帰を実行する必要があります。 私は4列1を持っています。ID 2.時間3. Y 4. Xと私は各IDのY〜Xを回帰する必要があります。 IDごとに120の期間を持つ100のIDがあるので、120回の観測で100回の単純回帰を実行する必要があります。パネルデータで異なるIDについてRで複数の回帰を実行する
どうすればいいですか?
ありがとうございます!
私たちは、いずれかを使用することができdata.table
library(data.table)
setDT(df1)[, coef(lm(Y~X)), by = ID]
それとも我々は、我々は、出力
library(broom)
setDT(df1)[, glance(lm(Y~X)), Species]
broom
を使用している場合は
pvalues
setDT(df1)[, summary(lm(Y~X))$coef[,4], by = ID]
を取得します
それともbroom/dplyr
library(dplyr)
df1 %>%
group_by(ID) %>%
do(model = lm(Y~X, .)) %>%
glance(model)
再現例
data(iris)
iris %>%
group_by(Species) %>%
do(model = lm(Sepal.Width ~Petal.Width, .)) %>%
glance(model)
# Species r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance df.residual
# <fctr> <dbl> <dbl> <dbl> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <dbl> <int>
#1 setosa 0.0541735 0.03446878 0.3724741 2.749265 1.038211e-01 2 -20.546993 47.093987 52.830056 6.659375 48
#2 versicolor 0.4408943 0.42924626 0.2370691 37.851387 1.466661e-07 2 2.043799 1.912403 7.648472 2.697685 48
#3 virginica 0.2891514 0.27434209 0.2747206 19.524930 5.647610e-05 2 -5.326334 16.652669 22.388738 3.622626 48
とdata.table/broom
as.data.table(iris)[, glance(lm(Sepal.Width~Petal.Width)), by = Species]
# Species r.squared adj.r.squared sigma statistic p.value df logLik AIC BIC deviance df.residual
#1: setosa 0.0541735 0.03446878 0.3724741 2.749265 1.038211e-01 2 -20.546993 47.093987 52.830056 6.659375 48
#2: versicolor 0.4408943 0.42924626 0.2370691 37.851387 1.466661e-07 2 2.043799 1.912403 7.648472 2.697685 48
#3: virginica 0.2891514 0.27434209 0.2747206 19.524930 5.647610e-05 2 -5.326334 16.652669 22.388738 3.622626 48
ありがとうございました!唯一のことは私のRがグランズ機能を見つけることができないことです。おそらく私はインストールされていないでしょうか? – Beatrice
@Beatrice 'glance'は' library(broom) 'からインストールされています。' install.packages( "broom") 'をロードし、' library(broom) 'をロードします。 – akrun
ありがとうございます!私は今それを試してみましょう! – Beatrice