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.

Dane i ich prezentacja

Na początku należy zaimportować dane i przedstawić ich rozkład na wykresie: Przyjrzyjmy się zarobkom pracowników.

data("CPSSW9298")

wynagrodzenia<-CPSSW9298


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

Przyjrzymy się zarobkom w odniesieniu do płci pracowników.

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

Wykonana zostanie regresja kwantylowa dla tych samych danych, co KMNK, z kwantylami 0.25, 0.5 oraz 0.75.

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.52287    7.77374   0.00000
## age            0.16026   0.01743    9.19181   0.00000
## genderfemale  -1.34033   0.11998  -11.17116   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.66014    6.43314   0.00000
## age            0.27244   0.02278   11.95922   0.00000
## genderfemale  -1.71474   0.11154  -15.37352   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.13418    4.44486   0.00001
## age            0.39664   0.03775   10.50702   0.00000
## genderfemale  -2.47197   0.16154  -15.30232   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+KAnSAtIHd5bmFncm9kemVuaWEuDQoNCkRvYmllcnogaSBwcnpldGVzdHVqIHByZWR5a3RvcnksIGt3YW50eWxlIGRsYSBtb2RlbGkuIFd5a29uYWogdGVzdHkgcsOzxbxuaWMgd3Nww7PFgmN6eW5uaWtvdyBkbGEgZmluYWxueWNoIG1vZGVsaS4NCg0KVyBwcnp5cGFka3UgcHJvYmxlbcOzdyAtIG9iZWpyenlqIHZpZGVvIHR1dG9yaWFsICh3xYLEhWN6IHBvbHNraWUgbmFwaXN5KSBvcmF6IHdlamTFuiBuYSBqZWdvIHN0cm9uxJkgemUgxbpyw7NkxYJhbWkuIE1vxbxlc3ogcsOzd25pZcW8IHd5a29yenlzdGHEhyB3L3cgcHJ6eWvFgmFkeS4NCg0KDQojIyBEYW5lIGkgaWNoIHByZXplbnRhY2phDQoNCk5hIHBvY3rEhXRrdSBuYWxlxbx5IHphaW1wb3J0b3dhxIcgZGFuZSBpIHByemVkc3Rhd2nEhyBpY2ggcm96a8WCYWQgbmEgd3lrcmVzaWU6DQpQcnp5anJ6eWpteSBzacSZIHphcm9ia29tIHByYWNvd25pa8Ozdy4NCmBgYHtyfQ0KZGF0YSgiQ1BTU1c5Mjk4IikNCg0Kd3luYWdyb2R6ZW5pYTwtQ1BTU1c5Mjk4DQoNCg0KYSA8LSBnZ3Bsb3Qod3luYWdyb2R6ZW5pYSwgYWVzKHg9ZWFybmluZ3MpKSArDQogIA0KICAgICAgICAgICBnZW9tX2hpc3RvZ3JhbShiaW5zPTIwKSArDQogIA0KICAgICAgICAgICBnZ3RpdGxlKCJSb3prxYJhZCBkYW55Y2ggZWFybmluZ3MiKSArDQogIA0KICAgICAgICAgICB4bGFiKCJXeW5hZ3JvZHplbmlhIikgKyB5bGFiKCJJbG/Fm8SHIikNCmENCg0KYGBgDQoNCkRhbmUgbmllIHPEhSByw7N3bm9taWVybmllIHJvesWCb8W8b25lLCB6YXRlbSBtb8W8bmEgcHJ6eXB1c3pjemHEhywgxbxlIHdpxJljZWogd3luYWdyb2R6ZcWEIGplc3QgbW5pZWpzemEgbmnFvCDFm3JlZG5pZSB3eW5hZ3JvZHplbmllLg0KDQojIyBQxYJhY2UgdnMgcMWCZcSHDQoNClByenlqcnp5bXkgc2nEmSB6YXJvYmtvbSB3IG9kbmllc2llbml1IGRvIHDFgmNpIHByYWNvd25pa8Ozdy4NCmBgYHtyfQ0KYiA8LSBnZ3Bsb3Qod3luYWdyb2R6ZW5pYSwNCiAgICAgICAgICAgIA0KICAgICAgICAgICBhZXMoeD1nZW5kZXIsIHk9ZWFybmluZ3MpKSArIA0KICANCiAgICAgICAgICAgZ2VvbV9ib3hwbG90KCkgKw0KICANCiAgICAgICAgICAgZ2d0aXRsZSgiUMWCYWNlIHdnIHDFgmNpIikgKw0KICANCiAgICAgICAgICAgeWxhYigiV3luYWdyb2R6ZW5pYSIpICsNCiAgDQogICAgICAgICAgIGxhYnMoZmlsbD0iUMWCZcSHIikgDQpiDQpgYGANCg0KV2lkYcSHLCDFvGUga29iaWV0eSB6YXJhYmlhasSFIG1uaWVqIG5pxbwgbcSZxbxjennFum5pLCBwb25pZXdhxbwgZGFuZSBuYSB3eWtyZXNpZSB3c2thenVqxIUgd3nFvHN6ZSB3YXJ0b8WbY2kgZGxhIG3EmcW8Y3p5em4uDQoNCiMjIE1ldG9kYSBLTU5LOg0KDQpgYGB7cn0NCmttbmsgPC0gbG0oZWFybmluZ3MgfiBhZ2UgKyBnZW5kZXIgLCBkYXRhID0gQ1BTU1c5Mjk4KQ0KDQpzdW1tYXJ5KGttbmspDQpgYGANClogcHJvY2VkdXJ5IEtNTksgd2lkYcSHLCDFvGUgbmEgemFyb2JraSB3cMWCeXdhIHdpZWsgaSBwxYJlxIcuIA0KDQoNCg0KDQojIyBSZWdyZXNqYSBrd2FudHlsb3dhIHLDs3puby1wb3ppb21vd2ENCg0KV3lrb25hbmEgem9zdGFuaWUgcmVncmVzamEga3dhbnR5bG93YSBkbGEgdHljaCBzYW15Y2ggZGFueWNoLCBjbyBLTU5LLCB6IGt3YW50eWxhbWkgMC4yNSwgMC41IG9yYXogMC43NS4NCg0KYGBge3J9DQprd2FudHlsZSA8LSBjKDAuMjUsIDAuNTAsIDAuNzUpDQoNCnJlZ19rd2FudHlsb3dhIDwtIHJxKGVhcm5pbmdzIH4gYWdlICsgZ2VuZGVyLCB0YXUgPSBrd2FudHlsZSwgZGF0YSA9IHd5bmFncm9kemVuaWEpDQoNCnN1bW1hcnkocmVnX2t3YW50eWxvd2EgLCBzZSA9ICJib290IikNCmBgYA0KDQpKYWsgd2lkYcSHLCB3c3p5c3RraWUgem1pZW5uZSB3eWthenVqxIUgc3RhdHlzdHljem7EhSBpc3RvdG5vxZvEhyBkbGEga2HFvGRlZ28ga3dhbnR5bGEgKDAsMjUsIDAsNSBvcmF6IDAsNzUpLg0KDQojIyBCYWRhbmllIHN0YXR5c3R5Y3puZWogcsOzxbxuaWN5DQoNCkJhZGFuaWUgc3RhdHlzdHljem5laiByw7PFvG5pY3kgbWnEmWR6eSAyNSwgNTAgaSA3NSBrd2FudHlsZW0gd2FydW5rb3d5bSBwcm9jZWR1csSFIEFOT1ZBIChzcHJhd2R6YW15IGlzdG5pZW5pZSByw7PFvG5pYykNCg0KYGBge3J9DQphbm92YShyZWdfa3dhbnR5bG93YSwgdGVzdCA9ICJXYWxkIiwgam9pbnQ9VFJVRSkNCmBgYA0KV3N6eXN0a2llIHRyenkga3dhcnR5bGUgcsOzxbxuacSFIHNpxJksIGNvIHdpZHppbXkgcG8gb3RyenltYW55Y2ggd3luaWthY2guDQoNCmBgYHtyfQ0KYW5vdmEocmVnX2t3YW50eWxvd2EsIHRlc3QgPSAiV2FsZCIsIGpvaW50PUZBTFNFKQ0KYGBgDQpabWllbm5lIG9iamHFm25pYWrEhWNlIHPEhSBvZGR6aWVsbmllIHLDs8W8bmUgc3RhdHlzdHljem5pZS4NCg0KIyMgRG9icm/EhyBkb3Bhc293YW5pYQ0KDQpNb8W8ZW15IG9ibGljennEhyB3c3DDs8WCY3p5bm5pa2kgZG9icm9jaSBkb3Bhc293YW5pYSByZWdyZXNqaSBrd2FudHlsb3dlaiB6IHd5a29yenlzdGFuaWVtIHJlc3p0IGkgcmVzenQgYmV6d2FydW5rb3d5Y2g6DQoNCmBgYHtyfQ0KcmVzenR5MSA8LSByZXNpZChrbW5rKQ0KDQojIyBiZXp3YXJ1bmtvd3kgKHB1c3R5KSBtb2RlbCBrd2FudHlsb3d5DQptb2RlbDIgPC0gcnEoIGVhcm5pbmdzfjEsIHRhdSA9IDAuNSxkYXRhPXd5bmFncm9kemVuaWEpDQpyZXN6dHkyIDwtIHJlc2lkKG1vZGVsMikNCg0KZ29vZGZpdChyZXN6dHkxLCByZXN6dHkyLCAwLjUpDQpgYGANCmBgYHtyfQ0KIyMgYmV6d2FydW5rb3d5IChwdXN0eSkgbW9kZWwga3dhbnR5bG93eQ0KbW9kZWwzIDwtIHJxKCBlYXJuaW5nc34xLCB0YXUgPSAwLjc1LGRhdGE9d3luYWdyb2R6ZW5pYSkNCnJlc3p0eTMgPC0gcmVzaWQobW9kZWwzKQ0KDQpnb29kZml0KHJlc3p0eTEsIHJlc3p0eTMsIDAuNSkNCmBgYA0KYGBge3J9DQojIyByMiBtb2RlbHUgS01OSyBkbGEgcG9yw7N3bmFuaWENCnN1bW1hcnkoa21uaykkci5zcXVhcmVkDQpgYGANCk5hand5xbxzemEgd2FydG/Fm8SHIGplc3QgZGxhIHdzcMOzxYJjenlubmlrYSBkb2Jyb2NpIGRvcGFzb3dhbmlhIGplc3QgZGxhIG1vZGVsdSB0cnplY2llZ28sIGN6eWxpIG1vZGVsdSBrd2FudHlsb3dlZ28ga3dhbnR5bGE9MCw3NS4gTmFzdMSZcG5pZSBuYWpsZXBzenkgd3Nww7PFgmN6eW5uaWsgZGHFgmEgbWV0b2RhIEtNTkssIGEgbmFzdMSZcG5pZSByZWdyZXNqYSBrd2FudHlsb3dhIGRydWdpZWdvIGt3YW50eWxhLg==