मेरी समस्या यह है: मुझे NA
मिलता है जहां मुझे मजबूत मानक त्रुटियों की गणना में कुछ मूल्य प्राप्त करना चाहिए।पैनल डेटा रिग्रेशन: मजबूत मानक त्रुटियां
मैं क्लस्टर-मजबूत मानक त्रुटियों के साथ एक निश्चित प्रभाव पैनल प्रतिगमन करने की कोशिश कर रहा हूं। इसके लिए, मैं Arai (2011) का पालन करता हूं जो पी पर है। 3 Stock/ Watson (2006) का अनुसरण करता है (बाद में Econometrica में प्रकाशित, जिनके पास पहुंच है)। मैं नीचे की पूर्वाग्रह के खिलाफ (M/(M-1)*(N-1)/(N-K)
द्वारा स्वतंत्रता की डिग्री को सही करना चाहता हूं क्योंकि क्लस्टर की संख्या सीमित है और मेरे पास असंतुलित डेटा है।
इसी तरह की समस्याएं स्टैक ओवरव्लो और [3] पर क्रॉसविलिडेटेड पर [1, 2] से पहले पोस्ट की गई हैं।
अराइ (और 1 कड़ी में जवाब) कार्यों के लिए निम्न कोड (मैं कुछ आगे टिप्पणी साथ नीचे मेरी डेटा उपलब्ध कराने) का उपयोग करता है:
gcenter <- function(df1,group) {
variables <- paste(
rep("C", ncol(df1)), colnames(df1), sep=".")
copydf <- df1
for (i in 1:ncol(df1)) {
copydf[,i] <- df1[,i] - ave(df1[,i], group,FUN=mean)}
colnames(copydf) <- variables
return(cbind(df1,copydf))}
# 1-way adjusting for clusters
clx <- function(fm, dfcw, cluster){
# R-codes (www.r-project.org) for computing
# clustered-standard errors. Mahmood Arai, Jan 26, 2008.
# The arguments of the function are:
# fitted model, cluster1 and cluster2
# You need to install libraries `sandwich' and `lmtest'
# reweighting the var-cov matrix for the within model
library(sandwich);library(lmtest)
M <- length(unique(cluster))
N <- length(cluster)
K <- fm$rank
dfc <- (M/(M-1))*((N-1)/(N-K))
uj <- apply(estfun(fm),2, function(x) tapply(x, cluster, sum));
vcovCL <- dfc*sandwich(fm, meat=crossprod(uj)/N)*dfcw
coeftest(fm, vcovCL) }
, जहां gcenter
मतलब से विचलन की गणना करता है (निश्चित प्रभाव)। मैं फिर अपने क्लस्टर वैरिएबल (मैंने अपना डेटा 'डेटा' नाम दिया है) DS_CODE
के साथ प्रतिक्रिया जारी रखी है।
centerdata <- gcenter(data, data$DS_CODE)
datalm <- lm(C.L1.retE1M ~ C.MCAP_SEC + C.Impact_change + C.Mom + C.BM + C.PD + C.CashGen + C.NITA + C.PE + C.PEdummy + factor(DS_CODE), data=centerdata)
M <- length(unique(data$DS_CODE))
dfcw <- datalm$df/(datalm$df - (M-1))
और मैं अपने regressors के लिए कुछ मान केवल शुरुआत में मिलता है,
clx(datalm, dfcw, data$DS_CODE)
हालांकि गणना करना चाहते हैं जब मैं uj गणना करने के लिए (उपरोक्त सूत्र clx
देखें) विचरण के लिए चाहते हैं, तो, फिर शून्य के बहुत सारे। यदि यह इनपुट uj भिन्नता के लिए उपयोग किया जाता है, केवल NAs
परिणाम।
मेरे डेटा
अपने डेटा विशेष संरचना का हो सकता है और मैं इस समस्या को समझ नहीं सकता के बाद से, मैं एक link हॉटमेल से के रूप में पूरे बात पोस्ट। इसका कारण यह है कि अन्य डेटा (अरि (2011) से लिया गया) के साथ मेरी समस्या नहीं होती है। गड़बड़ी के लिए अग्रिम में खेद है, लेकिन अगर आप इसे फिर से देख सकते हैं तो मैं बहुत आभारी हूं। फ़ाइल एक 5 एमबी .txt फ़ाइल है जिसमें पूरी तरह से डेटा है।
अराइ के कागज अब आपके लिंक के नीचे मौजूद हैं। क्या आप वास्तविक लिंक प्रदान कर सकते हैं? – MERose