Zadanie

Teraz Wasza kolej ;-)

Waszym zadaniem dzisiaj jest zamodelowanie - porównanie KMNK oraz regresji kwantylowej (różno-poziomowej) dla zmiennej “earnings” - wynagrodzenia.

Dobierz i przetestuj predyktory, kwantyle dla modeli. Wykonaj testy różnic współczynnikow dla finalnych modeli.

W przypadku problemów - obejrzyj video tutorial (włącz polskie napisy) oraz wejdź na jego stronę ze źródłami. Możesz również wykorzystać w/w przykłady.

Na początku należy zaimportować dane i przedstawić ich rozkład na wykresie:

data("CPSSW9298")

wynagrodzenia<-CPSSW9298


a <- ggplot(wynagrodzenia, aes(x=earnings)) +
  
           geom_histogram(bins=20) +
  
           ggtitle("Rozkład danych earnings") +
  
           xlab("Wynagrodzenia") + ylab("Ilość")
plot(a)

Dane nie są równomiernie rozłożone, zatem można przypuszczać, że więcej wynagrodzeń jest mniejsza niż średnie wynagrodzenie.

Płace vs płeć

b <- ggplot(wynagrodzenia,
            
           aes(x=gender, y=earnings)) + 
  
           geom_boxplot() +
  
           ggtitle("Płace wg płci") +
  
           ylab("Wynagrodzenia") +
  
           labs(fill="Płeć") 
plot(b)

Widać, że kobiety zarabiają mniej niż mężczyźni, ponieważ dane na wykresie wskazują wyższe wartości dla mężczyzn.

Metoda KMNK:

kmnk <- lm(earnings ~ age + gender , data = CPSSW9298)

summary(kmnk)
## 
## Call:
## lm(formula = earnings ~ age + gender, data = CPSSW9298)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -12.446  -4.347  -1.020   3.072  36.507 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    4.5092     0.5664   7.961 1.85e-15 ***
## age            0.3012     0.0189  15.941  < 2e-16 ***
## genderfemale  -1.8909     0.1073 -17.619  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 6.156 on 13498 degrees of freedom
## Multiple R-squared:  0.04077,    Adjusted R-squared:  0.04062 
## F-statistic: 286.8 on 2 and 13498 DF,  p-value: < 2.2e-16

Z procedury KMNK widać, że na zarobki wpływa wiek i płeć.

Regresja kwantylowa rózno-poziomowa

kwantyle <- c(0.25, 0.50, 0.75)

reg_kwantylowa <- rq(earnings ~ age + gender, tau = kwantyle, data = wynagrodzenia)
## Warning in rq.fit.br(x, y, tau = tau, ...): Solution may be nonunique
summary(reg_kwantylowa , se = "boot")
## 
## Call: rq(formula = earnings ~ age + gender, tau = kwantyle, data = wynagrodzenia)
## 
## tau: [1] 0.25
## 
## Coefficients:
##              Value     Std. Error t value   Pr(>|t|) 
## (Intercept)    4.06469   0.57355    7.08686   0.00000
## age            0.16026   0.01939    8.26381   0.00000
## genderfemale  -1.34033   0.10620  -12.62107   0.00000
## 
## Call: rq(formula = earnings ~ age + gender, tau = kwantyle, data = wynagrodzenia)
## 
## tau: [1] 0.5
## 
## Coefficients:
##              Value     Std. Error t value   Pr(>|t|) 
## (Intercept)    4.24680   0.64262    6.60862   0.00000
## age            0.27244   0.02155   12.64074   0.00000
## genderfemale  -1.71474   0.11942  -14.35953   0.00000
## 
## Call: rq(formula = earnings ~ age + gender, tau = kwantyle, data = wynagrodzenia)
## 
## tau: [1] 0.75
## 
## Coefficients:
##              Value     Std. Error t value   Pr(>|t|) 
## (Intercept)    5.04127   1.15553    4.36273   0.00001
## age            0.39664   0.03834   10.34513   0.00000
## genderfemale  -2.47197   0.15027  -16.45043   0.00000

Jak widać, wszystkie zmienne wykazują statystyczną istotność dla każdego kwantyla (0,25, 0,5 oraz 0,75).

Badanie statystycznej różnicy

Badanie statystycznej różnicy między 25, 50 i 75 kwantylem warunkowym procedurą ANOVA (sprawdzamy istnienie różnic)

anova(reg_kwantylowa, test = "Wald", joint=TRUE)
## Quantile Regression Analysis of Deviance Table
## 
## Model: earnings ~ age + gender
## Joint Test of Equality of Slopes: tau in {  0.25 0.5 0.75  }
## 
##   Df Resid Df F value    Pr(>F)    
## 1  4    40499  32.505 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Wszystkie trzy kwartyle różnią się, co widzimy po otrzymanych wynikach.

anova(reg_kwantylowa, test = "Wald", joint=FALSE)
## Quantile Regression Analysis of Deviance Table
## 
## Model: earnings ~ age + gender
## Tests of Equality of Distinct Slopes: tau in {  0.25 0.5 0.75  }
## 
##              Df Resid Df F value    Pr(>F)    
## age           2    40501  37.892 < 2.2e-16 ***
## genderfemale  2    40501  25.561  8.05e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Zmienne objaśniające są oddzielnie różne statystycznie.

Dobroć dopasowania

Możemy obliczyć współczynniki dobroci dopasowania regresji kwantylowej z wykorzystaniem reszt i reszt bezwarunkowych:

reszty1 <- resid(kmnk)

## bezwarunkowy (pusty) model kwantylowy
model2 <- rq( earnings~1, tau = 0.5,data=wynagrodzenia)
reszty2 <- resid(model2)

goodfit(reszty1, reszty2, 0.5)
## [1] 0.002287609
## bezwarunkowy (pusty) model kwantylowy
model3 <- rq( earnings~1, tau = 0.75,data=wynagrodzenia)
reszty3 <- resid(model3)

goodfit(reszty1, reszty3, 0.5)
## [1] 0.207917
## r2 modelu KMNK dla porównania
summary(kmnk)$r.squared
## [1] 0.04076514

Najwyższa wartość jest dla współczynnika dobroci dopasowania jest dla modelu trzeciego, czyli modelu kwantylowego kwantyla=0,75. Następnie najlepszy współczynnik dała metoda KMNK, a następnie regresja kwantylowa drugiego kwantyla.

LS0tDQp0aXRsZTogIlJhcG9ydCA0LiINCmF1dGhvcjogIkthdGFyenluYSBMZXdjenVrLCBKdWxpdXN6IEFsZnV0aCwgUGlvdHIgV2ljaG93c2tpIg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRoZW1lOiBjZXJ1bGVhbg0KICAgIGhpZ2hsaWdodDogdGV4dG1hdGUNCiAgICBmb250c2l6ZTogMTBwdA0KICAgIHRvYzogeWVzDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgdG9jX2Zsb2F0Og0KICAgICAgY29sbGFwc2VkOiBubw0KICAgIGRmX3ByaW50OiBkZWZhdWx0DQogICAgdG9jX2RlcHRoOiA1DQogIHBkZl9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICAgIHRvY19kZXB0aDogJzUnDQpzdWJ0aXRsZTogUmVncmVzamEga3dhbnR5bG93YQ0KZWRpdG9yX29wdGlvbnM6DQogIG1hcmtkb3duOg0KICAgIHdyYXA6IDcyDQotLS0NCg0KYGBge3IgcHJlcmVxcywgbWVzc2FnZSA9IEZBTFNFLCBlY2hvID0gRkFMU0V9DQpsaWJyYXJ5KENWWFIpDQpsaWJyYXJ5KEFFUikNCmxpYnJhcnkoc3RhcmdhemVyKQ0KbGlicmFyeShXUlREU3RpZGFsKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHF1YW50cmVnKQ0KbGlicmFyeShQb2dyb21jeURhbnljaCkNCmxpYnJhcnkoZ2dwbG90MikNCmBgYA0KDQojIyBaYWRhbmllDQpUZXJheiBXYXN6YSBrb2xlaiA7LSkNCg0KV2FzenltIHphZGFuaWVtIGR6aXNpYWogamVzdCB6YW1vZGVsb3dhbmllIC0gcG9yw7N3bmFuaWUgS01OSyBvcmF6IHJlZ3Jlc2ppIGt3YW50eWxvd2VqIChyw7PFvG5vLXBvemlvbW93ZWopIGRsYSB6bWllbm5laiDigJxlYXJuaW5nc+KAnSAtIHd5bmFncm9kemVuaWEuDQoNCkRvYmllcnogaSBwcnpldGVzdHVqIHByZWR5a3RvcnksIGt3YW50eWxlIGRsYSBtb2RlbGkuIFd5a29uYWogdGVzdHkgcsOzxbxuaWMgd3Nww7PFgmN6eW5uaWtvdyBkbGEgZmluYWxueWNoIG1vZGVsaS4NCg0KVyBwcnp5cGFka3UgcHJvYmxlbcOzdyAtIG9iZWpyenlqIHZpZGVvIHR1dG9yaWFsICh3xYLEhWN6IHBvbHNraWUgbmFwaXN5KSBvcmF6IHdlamTFuiBuYSBqZWdvIHN0cm9uxJkgemUgxbpyw7NkxYJhbWkuIE1vxbxlc3ogcsOzd25pZcW8IHd5a29yenlzdGHEhyB3L3cgcHJ6eWvFgmFkeS4NCg0KDQojIyBOYSBwb2N6xIV0a3UgbmFsZcW8eSB6YWltcG9ydG93YcSHIGRhbmUgaSBwcnplZHN0YXdpxIcgaWNoIHJvemvFgmFkIG5hIHd5a3Jlc2llOg0KDQpgYGB7cn0NCmRhdGEoIkNQU1NXOTI5OCIpDQoNCnd5bmFncm9kemVuaWE8LUNQU1NXOTI5OA0KDQoNCmEgPC0gZ2dwbG90KHd5bmFncm9kemVuaWEsIGFlcyh4PWVhcm5pbmdzKSkgKw0KICANCiAgICAgICAgICAgZ2VvbV9oaXN0b2dyYW0oYmlucz0yMCkgKw0KICANCiAgICAgICAgICAgZ2d0aXRsZSgiUm96a8WCYWQgZGFueWNoIGVhcm5pbmdzIikgKw0KICANCiAgICAgICAgICAgeGxhYigiV3luYWdyb2R6ZW5pYSIpICsgeWxhYigiSWxvxZvEhyIpDQpwbG90KGEpDQoNCmBgYA0KDQpEYW5lIG5pZSBzxIUgcsOzd25vbWllcm5pZSByb3rFgm/FvG9uZSwgemF0ZW0gbW/FvG5hIHByenlwdXN6Y3phxIcsIMW8ZSB3acSZY2VqIHd5bmFncm9kemXFhCBqZXN0IG1uaWVqc3phIG5pxbwgxZtyZWRuaWUgd3luYWdyb2R6ZW5pZS4NCg0KIyMgUMWCYWNlIHZzIHDFgmXEhw0KYGBge3J9DQpiIDwtIGdncGxvdCh3eW5hZ3JvZHplbmlhLA0KICAgICAgICAgICAgDQogICAgICAgICAgIGFlcyh4PWdlbmRlciwgeT1lYXJuaW5ncykpICsgDQogIA0KICAgICAgICAgICBnZW9tX2JveHBsb3QoKSArDQogIA0KICAgICAgICAgICBnZ3RpdGxlKCJQxYJhY2Ugd2cgcMWCY2kiKSArDQogIA0KICAgICAgICAgICB5bGFiKCJXeW5hZ3JvZHplbmlhIikgKw0KICANCiAgICAgICAgICAgbGFicyhmaWxsPSJQxYJlxIciKSANCnBsb3QoYikNCmBgYA0KDQpXaWRhxIcsIMW8ZSBrb2JpZXR5IHphcmFiaWFqxIUgbW5pZWogbmnFvCBtxJnFvGN6ecW6bmksIHBvbmlld2HFvCBkYW5lIG5hIHd5a3Jlc2llIHdza2F6dWrEhSB3ecW8c3plIHdhcnRvxZtjaSBkbGEgbcSZxbxjenl6bi4NCg0KIyMgTWV0b2RhIEtNTks6DQoNCmBgYHtyfQ0Ka21uayA8LSBsbShlYXJuaW5ncyB+IGFnZSArIGdlbmRlciAsIGRhdGEgPSBDUFNTVzkyOTgpDQoNCnN1bW1hcnkoa21uaykNCmBgYA0KWiBwcm9jZWR1cnkgS01OSyB3aWRhxIcsIMW8ZSBuYSB6YXJvYmtpIHdwxYJ5d2Egd2llayBpIHDFgmXEhy4gDQoNCg0KDQoNCiMjIFJlZ3Jlc2phIGt3YW50eWxvd2EgcsOzem5vLXBvemlvbW93YQ0KDQoNCmBgYHtyfQ0Ka3dhbnR5bGUgPC0gYygwLjI1LCAwLjUwLCAwLjc1KQ0KDQpyZWdfa3dhbnR5bG93YSA8LSBycShlYXJuaW5ncyB+IGFnZSArIGdlbmRlciwgdGF1ID0ga3dhbnR5bGUsIGRhdGEgPSB3eW5hZ3JvZHplbmlhKQ0KDQpzdW1tYXJ5KHJlZ19rd2FudHlsb3dhICwgc2UgPSAiYm9vdCIpDQpgYGANCg0KSmFrIHdpZGHEhywgd3N6eXN0a2llIHptaWVubmUgd3lrYXp1asSFIHN0YXR5c3R5Y3puxIUgaXN0b3Rub8WbxIcgZGxhIGthxbxkZWdvIGt3YW50eWxhICgwLDI1LCAwLDUgb3JheiAwLDc1KS4NCg0KIyMgQmFkYW5pZSBzdGF0eXN0eWN6bmVqIHLDs8W8bmljeQ0KDQpCYWRhbmllIHN0YXR5c3R5Y3puZWogcsOzxbxuaWN5IG1pxJlkenkgMjUsIDUwIGkgNzUga3dhbnR5bGVtIHdhcnVua293eW0gcHJvY2VkdXLEhSBBTk9WQSAoc3ByYXdkemFteSBpc3RuaWVuaWUgcsOzxbxuaWMpDQoNCmBgYHtyfQ0KYW5vdmEocmVnX2t3YW50eWxvd2EsIHRlc3QgPSAiV2FsZCIsIGpvaW50PVRSVUUpDQpgYGANCldzenlzdGtpZSB0cnp5IGt3YXJ0eWxlIHLDs8W8bmnEhSBzacSZLCBjbyB3aWR6aW15IHBvIG90cnp5bWFueWNoIHd5bmlrYWNoLg0KDQpgYGB7cn0NCmFub3ZhKHJlZ19rd2FudHlsb3dhLCB0ZXN0ID0gIldhbGQiLCBqb2ludD1GQUxTRSkNCmBgYA0KWm1pZW5uZSBvYmphxZtuaWFqxIVjZSBzxIUgb2RkemllbG5pZSByw7PFvG5lIHN0YXR5c3R5Y3puaWUuDQoNCiMjIERvYnJvxIcgZG9wYXNvd2FuaWENCg0KTW/FvGVteSBvYmxpY3p5xIcgd3Nww7PFgmN6eW5uaWtpIGRvYnJvY2kgZG9wYXNvd2FuaWEgcmVncmVzamkga3dhbnR5bG93ZWogeiB3eWtvcnp5c3RhbmllbSByZXN6dCBpIHJlc3p0IGJlendhcnVua293eWNoOg0KDQpgYGB7cn0NCnJlc3p0eTEgPC0gcmVzaWQoa21uaykNCg0KIyMgYmV6d2FydW5rb3d5IChwdXN0eSkgbW9kZWwga3dhbnR5bG93eQ0KbW9kZWwyIDwtIHJxKCBlYXJuaW5nc34xLCB0YXUgPSAwLjUsZGF0YT13eW5hZ3JvZHplbmlhKQ0KcmVzenR5MiA8LSByZXNpZChtb2RlbDIpDQoNCmdvb2RmaXQocmVzenR5MSwgcmVzenR5MiwgMC41KQ0KYGBgDQpgYGB7cn0NCiMjIGJlendhcnVua293eSAocHVzdHkpIG1vZGVsIGt3YW50eWxvd3kNCm1vZGVsMyA8LSBycSggZWFybmluZ3N+MSwgdGF1ID0gMC43NSxkYXRhPXd5bmFncm9kemVuaWEpDQpyZXN6dHkzIDwtIHJlc2lkKG1vZGVsMykNCg0KZ29vZGZpdChyZXN6dHkxLCByZXN6dHkzLCAwLjUpDQpgYGANCmBgYHtyfQ0KIyMgcjIgbW9kZWx1IEtNTksgZGxhIHBvcsOzd25hbmlhDQpzdW1tYXJ5KGttbmspJHIuc3F1YXJlZA0KYGBgDQpOYWp3ecW8c3phIHdhcnRvxZvEhyBqZXN0IGRsYSB3c3DDs8WCY3p5bm5pa2EgZG9icm9jaSBkb3Bhc293YW5pYSBqZXN0IGRsYSBtb2RlbHUgdHJ6ZWNpZWdvLCBjenlsaSBtb2RlbHUga3dhbnR5bG93ZWdvIGt3YW50eWxhPTAsNzUuIE5hc3TEmXBuaWUgbmFqbGVwc3p5IHdzcMOzxYJjenlubmlrIGRhxYJhIG1ldG9kYSBLTU5LLCBhIG5hc3TEmXBuaWUgcmVncmVzamEga3dhbnR5bG93YSBkcnVnaWVnbyBrd2FudHlsYS4=