आर

2011-02-25 11 views
6

में ओक्सका अपघटन आर में मैं ओक्सका अपघटन करना चाहता हूं। इसका उपयोग उदाहरण में किया जाता है। श्रम अर्थशास्त्र ने समझाया भिन्नता बनाम अस्पष्ट भिन्नता को अलग करने के लिए, मेरा मानना ​​है। मैं आर में एक उपयुक्त समाधान नहीं ढूंढ पा रहा हूं, और मैं खुद को बनाने के लिए अनिच्छुक हूं (मैं शायद इसे गड़बड़ कर दूंगा)।आर

वैसे भी, प्रक्रिया संक्षेप में यहां समझाया गया है:

http://en.wikipedia.org/wiki/Ronald_Oaxaca

Stata इस के लिए एक नहीं बल्कि अच्छा पैकेज के साथ ही धन्य है, लेकिन Stata आसानी से मेरे पास उपलब्ध नहीं है।

www.stata.com/meeting/5german/SINNING_stata_presentation.pdf

कृपया ध्यान दें: मैं भी आर-मदद पर एक संदेश पोस्ट किया है, लेकिन यह कोई जवाब नहीं हो गया है। मुझे आशा है कि इस सूची में भी पोस्ट करना ठीक है।

अग्रिम धन्यवाद, Rasmus

संपादित करें: मैं निम्नलिखित समारोह है, जो गलत जवाब (urgh) उत्पन्न करने लगता है बना दिया है। मैं ऊपर Stata कड़ी का अनुसरण करने की कोशिश की, लेकिन यह ऐसा नहीं हो पाया के रूप में मैं आशा व्यक्त की :)

oaxaca <- function (fsex,frace1,frace2) { 
    ## First we make regresions 
    data1 <- subset(l2,sex==fsex & race==frace1) 
    data2 <- subset(l2,sex==fsex & race==frace2) 

    mindata1 <- subset(cbind(grade,exp,I(exp^2)),sex==fsex & race==frace1) 
    mindata2 <- subset(cbind(grade,exp,I(exp^2)),sex==fsex & race==frace2) 

    reg1 <- lm(log(wage)~grade+exp+I(exp^2), data=data1) 
    reg2 <- lm(log(wage)~grade+exp+I(exp^2), data=data2) 

    ## DECOMPOSITION 
    ################ 

    ## Variables 
    gap <- mean(log(wage[race==frace1 & sex==fsex]))-mean(log(wage[race==frace2 & sex==fsex])) 

    mean1 <- colMeans(mindata1) 
    mean2 <- colMeans(mindata2) 

    beta1 <- summary(reg1)$coefficients[,1] 
    beta2 <- summary(reg2)$coefficients[,1] 
    beta1incep <- summary(reg1)$coefficients[1,1] 
    beta2incep <- summary(reg2)$coefficients[1,1] 
    beta1coef <- summary(reg1)$coefficients[c(2,3,4),1] 
    beta2coef <- summary(reg2)$coefficients[c(2,3,4),1] 
    betastar <- .5*(beta1coef+beta2coef) 
    betastar2 <- (beta1+beta2)/2 

    expl <- sum((mean1-mean2)*beta1coef) 
    uexpl <- sum(mean2*(beta2coef-beta1coef)) 

    pct=expl/gap 
    pct2=uexpl/gap 

    ## output 
    out <- data.frame(Gap=gap, 
     Explained=expl, 
     Unexplained=uexpl, 
     Pct=pct*100) 

    return(out) 
} 
+0

एह, क्रॉस-पोस्ट (मेलिंगलिस्ट) को उसी व्यक्ति को न पढ़ें। –

+1

इसका एक सप्ताह के बाद उत्तर नहीं दिया गया था, इसलिए निश्चित रूप से उस समय के बाद वह कहीं और पूछने का हकदार था। –

+0

ठीक है, मैंने -1 वापस रख दिया था यह संबंधित था। इसे बाहर करने के लिए जल्दी होने के लिए क्षमा चाहते हैं। अब कोड के साथ सवाल यह है कि सवाल वैसे भी बेहतर दिखता है ... –

उत्तर

7

मैं ओक्साका प्रकार decompositions इस्तेमाल किया है। आर के लिए कभी भी कोई पैकेज नहीं मिला, इसलिए मैंने कुछ कार्यों को लिखा जो इसे करते हैं। यह स्टाटा में इसी पैकेज के समान है। आप में इसकी एक प्रति प्राप्त कर सकते हैं: https://github.com/eyjo/Oaxaca

नोट उस समय मैं निश्चित प्रभाव (पैनल डेटा) मॉडल है, जो इन decompositions के साथ सीधे संगत नहीं हैं का उपयोग करने में दिलचस्पी थी। एफई प्रकार के मॉडल के लिए एक अधूरा हैंडलर है, लेकिन इसका उपयोग नहीं किया जाना चाहिए। मेरा मतलब है कि इसमें से एक पैकेज बनाना है, लेकिन इसके आसपास कभी नहीं मिला।

+1

ओह अद्भुत। मेरा कार्य निश्चित रूप से सही परिणाम देता/नहीं/देता है! संपादित करें: मुझे लगता है कि आप सही हैं, एफई पर। मैंने कारकों का उपयोग करके एक मॉडल की कोशिश की, और यह वापस लौटा 'बी 1 में त्रुटि [1, 1] <- एम 1 $ अवरोध: प्रतिस्थापित करने के लिए वस्तुओं की संख्या प्रतिस्थापन लंबाई के एकाधिक नहीं है। उम्मीद है कि कोई इस पैकेज को उठाएगा। यह एक अच्छी शुरुआत है :) – Rasmus

+0

बहुत बहुत अच्छा है। यह कार्य आधिकारिक आर प्रतिनिधि में एक वास्तविक पैकेज बनना चाहिए। :) – S12000

4

क्रैन पर oaxaca पैकेज, रैखिक मॉडलों के लिए अँधेरी-ओक्साका decompositions अनुमान कर सकते हैं और साथ ही बार चार्ट कि परिणाम बताते हैं उत्पादन के रूप में: http://cran.r-project.org/web/packages/oaxaca/index.html

यह भी मानक त्रुटियों को चलाया गणना कर सकते हैं कि कितना आकलन की भावना प्रदान करने के लिए अनिश्चितता है।

विग्नेट पैकेज की क्षमताओं का एक विस्तृत विवरण देता है, साथ ही इसके उपयोग के कुछ उदाहरण भी प्रदान करता है। यहां देखें: "oaxaca: Blinder-Oaxaca Decomposition in R"