quantile regression
TRANSCRIPT
Regresja kwartylowa
2
Do czego służy statystyka?
Problem na dziś:Czy niebieskoocy zarabiają więcej niż
zielonoocy?
Czy kontakt z reklamą produktu wpływa na znajomość marki?
3
Do czego służy statystyka?
Próba versus populacja
PopulacjaPróba
Losowanie reprezentatywne
W jaki sposób badamy
Obserwacje dla próbyWnioski dla
populacji
4
Ale co z tym wynagrodzeniem?
5
Ale co z tym wynagrodzeniem?
6
Średnia, mediana, kwartyle, decyle i percentyle
kolor oczuilość obserwacji średnia mediana kwartyl 1 (25%) kwartyl 3 (75%)
kwartyl 4 (100%) - wartość maksymalna
niebieskie 120 110,10 108,00 80,00 140,00 220,00
zielone 125 102,30 104,00 72,00 128,00 208,00
kolor oczu percentyl 5% percentyl 95%
niebieskie 40,00 184,20
zielone 32,00 176,00
kolor oczu decyl 10% decyl 20% decyl 80% decyl 90%
niebieskie 52,00 72,00 152,80 168,00
zielone 45,60 68,00 136,00 150,40
7
Typy rozkładów• Normalny• Prawoskośny• Lewoskośny
8
Ale co z tym wynagrodzeniem?
kolor oczuilość obserwacji średnia
niebieskie 120 110,10
zielone 125 102,30
O co tak naprawdę pytamy?Gdyby kolor oczu nie wpływał na wysokość wynagrodzenia,
to…?
Średnie wynagrodzenie w obu grupach by było równe To będzie nasza hipoteza zerowa.
9
I ?
Poziom istotności p – im niższy tym lepiej :)
1. prawdopodobieństwo uzyskania takiego wyniku pod warunkiem, że hipoteza zerowa jest prawdziwa
2. prawdopodobieństwo popełnienia błędu pierwszego rodzaju, czyli: odrzucenia prawdziwej hipotezy zerowej
Za dobrą wartość graniczną zazwyczaj uznaje się 0,05 (p<0,05)
t = -1,4114, p-value = 0,1594
kolor oczuilość obserwacji średnia
niebieskie 120 110,10
zielone 125 102,30
10
I ?
Nie mamy podstaw do odrzucenia naszej hipotezy zerowej.
Świat statystyka nie jest symetryczny: p < 0,05 – odrzucamy hipotezę zerowąp >= 0,05 – nie mamy podstaw do odrzucenia hipotezy zerowej
t = -1,4114, p-value = 0,1594
kolor oczuilość obserwacji średnia
niebieskie 120 110,10
zielone 125 102,30
11
Na ile sposobów możemy coś popsuć?
nie odrzucamy hipotezy zerowej
odrzucamy hipotezę zerową
hipoteza zerowa prawdziwa OK
błąd pierwszego rodzaju
hipoteza zerowa fałszywa błąd drugiego rodzaju OK
Czy oba rodzaje błędów zawsze jednakowo bolą?• decyzja o przyznaniu kredytu• decyzja o dopuszczeniu na rynek nowego leku
12
To co z tą regresją?
13
To co z tą regresją?
sposób dopasowania modelu:
metoda najmniejszych kwadratów
14
Jeden predyktor
model=lm(reg$wynagrodzenie ~ reg$staz)summary(model)
plot(reg$wynagrodzenie ~ reg$staz, main="Wynagrodzenie vs staż pracy", ylab="wynagrodzenie", xlab="staż pracy")abline(lm(reg$wynagrodzenie ~ reg$staz), col="blue")
15
Jeden predyktor
Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 73.5684 6.3993 11.496 < 2e-16 ***reg$staz 3.0500 0.5475 5.571 6.7e-08 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 40.84 on 243 degrees of freedomMultiple R-squared: 0.1133, Adjusted R-squared: 0.1096 F-statistic: 31.04 on 1 and 243 DF, p-value: 6.697e-08
Szukamy równania o postaci:Y= β0 + β1*X1
Czyli mamy: wynagrodzenie = 73,5684 + 3,05*stazA gdy staz = 0?
16
Nazewnictwo
Szukamy równania o postaci:Y= β0 + β1*X1+ β2*X2 + … + βn*Xn
Y – zmienna zależna, modelowanaX1 … Xn – zmienne niezależne, predyktory
Najważniejszy dla nas współczynnik, to:R-kwadrat
przyjmuje wartości z zakresu 0-1jaki procent zmienności zmiennej zależnej wyjaśniają predyktory
17
Spróbujmy inaczej
18
Jeden predyktor
model=lm(reg$wynagrodzenie ~ reg$staz -1)summary(model)
plot(reg$wynagrodzenie ~ reg$staz, main="Wynagrodzenie vs staż pracy", ylab="wynagrodzenie", xlab="staż pracy")abline(lm(reg$wynagrodzenie ~ reg$staz), col="blue")abline(lm(reg$wynagrodzenie ~ reg$staz -1), col="red")
19
Jeden predyktor
Coefficients: Estimate Std. Error t value Pr(>|t|) reg$staz 8.7970 0.2768 31.79 <2e-16 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 50.64 on 244 degrees of freedomMultiple R-squared: 0.8055, Adjusted R-squared: 0.8047 F-statistic: 1010 on 1 and 244 DF, p-value: < 2.2e-16
Szukamy równania o postaci:Y= β0 + β1*X1
Czyli mamy: wynagrodzenie = 8,797*staz
20
Dwa predyktory
> model=lm(reg$wynagrodzenie ~ reg$wiek + reg$staz -1)> summary(model)
Coefficients: Estimate Std. Error t value Pr(>|t|) reg$wiek 1.0729 0.1472 7.290 4.35e-12 ***reg$staz 4.5681 0.6322 7.226 6.41e-12 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 45.96 on 243 degrees of freedomMultiple R-squared: 0.8404, Adjusted R-squared: 0.8391 F-statistic: 639.7 on 2 and 243 DF, p-value: < 2.2e-16
Czyli ostatecznie: wynagrodzenie = 1,0729*wiek + 4,5681*staz
21
Dwa predyktory – tak dla porządku
> model=lm(reg$wynagrodzenie ~ reg$wiek + reg$staz)> summary(model)
Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 117.5809 12.8216 9.171 < 2e-16 ***reg$wiek -1.0284 0.2620 -3.925 0.000113 ***reg$staz 3.6652 0.5545 6.610 2.44e-10 ***---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 39.68 on 242 degrees of freedomMultiple R-squared: 0.1663, Adjusted R-squared: 0.1594 F-statistic: 24.14 on 2 and 242 DF, p-value: 2.754e-10
22
Nasz model
wynagrodzenie = 1,0729*wiek + 4,5681*stazp = 0,8391
Kogo opisuje nasz model?
R2
gdzie y – średnia z wartości obserwowanych
23
Regresja kwartylowa
W zwykłej regresji:Y= β0 + β1*X1+ β2*X2 + … + βn*Xn
A gdyby tak to samo, ale dla poszczególnych kwartyli/decyli/percentyli?
24
Regresja kwartylowa
library(quantreg)
taus <- c(0.05, 0.1, 0.25, 0.75, 0.9, 0.95)
plot(reg$wynagrodzenie ~ reg$staz, main="Wynagrodzenie vs staz", ylab="wynagrodzenie", xlab="staż pracy")
for (i in 1:length(taus)) { abline(rq(reg$wynagrodzenie ~ reg$staz -1, tau = taus[i]), col = "gray")}
25
Regresja kwartylowa
26
Regresja kwartylowatau: [1] 0.05 Value Std. Error t value Pr(>|t|)reg$wiek -0.19556 0.11202 -1.74571 0.08212reg$staz 4.37333 0.79955 5.46974 0.00000
tau: [1] 0.25 Value Std. Error t value Pr(>|t|)reg$wiek 0.28571 0.17995 1.58770 0.11365 reg$staz 5.42857 0.70625 7.68651 0.00000
tau: [1] 0.5 Value Std. Error t value Pr(>|t|)reg$wiek 0.90040 0.20075 4.48509 0.00001 reg$staz 5.43426 0.76791 7.07673 0.00000
tau: [1] 0.75 Value Std. Error t value Pr(>|t|)reg$wiek 1.79420 0.19908 9.01253 0.00000 reg$staz 4.32190 0.74202 5.82452 0.00000
tau: [1] 0.95 Value Std. Error t value Pr(>|t|)reg$wiek 3.13835 0.78113 4.01773 0.00008 reg$staz 2.92820 3.15226 0.92892 0.35385
27
Warto przeczytać
Roger Koenker. Quantile Regression (Econometric Society Monographs). 2005.
http://www.econ.uiuc.edu/~roger/research/rq/vig.pdf
http://cran.r-project.org/web/packages/quantreg/quantreg.pdf