Saya memperkirakan beberapa tindakan berulang model Fixed Effects, dengan komponen kesalahan bersarang, berdasarkan pada variabel pengelompokan, yaitu model non-bersarang, menggunakan plm. Saya sekarang tertarik
- uji apakah model lengkap berbeda secara signifikan, yaitu mana adalah model lengkap untuk dan adalah model lengkap untuk dan
Females
Males
- selanjutnya menguji koefisien regresi yang dipilih antara dua kelompok, yaitu mana adalah koefisien regresi untuk wanita at , dan adalah koefisien regresi untuk pria di .
year1.5
year1.5
Saya akan menggambarkan situasi menggunakan contoh kerja di bawah ini,
Pertama, beberapa paket dibutuhkan,
# install.packages(c("plm","texreg","tidyverse","lmtest"), dependencies = TRUE)
library(plm); library(lmtest); require(tidyverse)
Kedua, beberapa persiapan data,
data(egsingle, package = "mlmRev")
dta <- egsingle %>% mutate(Female = recode(female,.default = 0L,`Female` = 1L))
Ketiga, saya memperkirakan satu set model untuk setiap gender dalam data
MoSpc <- as.formula(math ~ Female + size + year)
dfMo = dta %>% group_by(female) %>%
do(fitMo = plm(update(MoSpc, . ~ . -Female),
data = ., index = c("childid", "year", "schoolid"), model="within") )
Keempat, mari kita lihat dua model yang diperkirakan,
texreg::screenreg(dfMo[[2]], custom.model.names = paste0('FE: ', dfMo[[1]]))
#> ===================================
#> FE: Female FE: Male
#> -----------------------------------
#> year-1.5 0.79 *** 0.88 ***
#> (0.07) (0.10)
#> year-0.5 1.80 *** 1.88 ***
#> (0.07) (0.10)
#> year0.5 2.51 *** 2.56 ***
#> (0.08) (0.10)
#> year1.5 3.04 *** 3.17 ***
#> (0.08) (0.10)
#> year2.5 3.84 *** 3.98 ***
#> (0.08) (0.10)
#> -----------------------------------
#> R^2 0.77 0.79
#> Adj. R^2 0.70 0.72
#> Num. obs. 3545 3685
#> ===================================
#> *** p < 0.001, ** p < 0.01, * p < 0.05 #>
Sekarang, saya ingin menguji apakah kedua model (OLS linear) ini berbeda secara signifikan, lih. point1 di atas. Saya melihat - lihat SO dan internet dan beberapa menyarankan bahwa saya perlu menggunakan plm::pFtest()
, juga menyarankan di sini , yang telah saya coba, tetapi saya tidak yakin. Saya akan membayangkan beberapa tes untuk model non-bersarang, tes Cox mungkin lmtest::coxtest
,, tapi saya tidak yakin sama sekali. Jika seseorang di sini mungkin bisa membantu saya.
Saya mencoba,
plm::pFtest(dfMo[[1,2]], dfMo[[2,2]])
# >
# > F test for individual effects
# >
# >data: update(MoSpc, . ~ . - Female)
# >F = -0.30494, df1 = 113, df2 = 2693, p-value = 1
# >alternative hypothesis: significant effects
dan,
lmtest::coxtest(dfMo[[1,2]], dfMo[[2,2]])
# > Cox test
# >
# > Model 1: math ~ size + year
# > Model 2: math ~ size + year
# > Estimate Std. Error z value Pr(>|z|)
# > fitted(M1) ~ M2 0.32 1.66695 0.1898 0.8494
# > fitted(M2) ~ M1 -1222.87 0.13616 -8981.1963 <2e-16 ***
# > ---
# > Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# > Warning messages:
# > 1: In lmtest::coxtest(dfMo[[1, 2]], dfMo[[2, 2]]) :
# > models fitted on different subsets
# > 2: In lmtest::coxtest(dfMo[[1, 2]], dfMo[[2, 2]]) :
# > different dependent variables specified
Kedua, saya tertarik untuk membandingkan koefisien regresi antara dua kelompok. Katakanlah, apakah estimasi untuk year1.5
3.04 berbeda secara signifikan dari 3.17? Lih poin 2 di atas.
Silakan tanyakan apakah ada di atas yang tidak jelas dan saya akan dengan senang hati menjelaskan. Bantuan apa pun akan sangat dihargai!
Saya menyadari pertanyaan ini agak seperti pemrograman, tetapi saya awalnya mempostingnya di SO. Namun, DWin cukup baik untuk menunjukkan bahwa pertanyaan itu milik CrossValidated dan memigrasikannya di sini.
model efek-tetap r plm bersarang-data pengujian hipotesis tindakan berulang data panel model campuran regresi data panel model non-bersarang model bersarang
sumber
plm
paketnya, di stackoverflow.com. Saya akan lebih berhati-hati di masa depan untuk mengirim pertanyaan saya di tempat yang tepat. Terima kasih.plm(math ~ Female * (x1 + x2))
. Untuk menguji hipotesis nol pertama, Anda hanya menjalankan uji F untuk semua koefisien yang berhubungan denganFemale:x1
,Female:x2
. Untuk menguji null kedua, Anda hanya perlu menguji parameter yang terkaitFemale:year1.5
.suest
untuk melihat apakah dua model berbeda secara signifikan. Adasuest()
fungsi di dalam sebuah paket untuk R tapi saya ragu itu sama. Dalam Statasuest
terkait dengan "Perkiraan yang tampaknya tidak terkait". Catatan, itusureg
agak berbeda. Saya juga tertarik dengan solusi R. Semoga itu bisa membantu.Jawaban:
Kode berikut menerapkan praktik menempatkan interaksi antaraβFe m a l e=βM.a l e . Statistik-t dari βFe m a l e : ye a r = 1,5=βM.a l e : ye a r = 1,5 . Khususnya, untuk
Female
boneka dan tahun. Tes F di bagian bawah menguji nol Andaplm
output menguji null Andayear=1.5
, nilai-p adalah 0,32.sumber
-c(1:5)
blok dengan cara yang membuat kode lebih umum? Saya memiliki vektor ukuran bergeser masuk dan keluar dan jawaban yang lebih umum mungkin juga bermanfaat bagi orang lain.-c(1:5)
dengan ekspresi reguler. Sekarang lebih umum. Secara umum, Anda ingin menggunakangrepl
untuk mencocokkan pola di hadapan banyak variabel.