Statistické metody v marketingu Ing. Michael Rost, Ph.D. Jihočeská univerzita v Českých Budějovicích
Úvodem Modelování vztahů mezi vysvětlující a vysvětlovanou (závisle) proměnnou patří mezi základní aktivity, se kterými se ve statistice můžete setkat. Příkladem může být prostá lineární regrese, a při použití více vysvětlujících proměnných vícenásobná regrese. Problém může nastat a často nastává, pokud závisle proměnná není spojitým statistickým znakem, ale binárním znakem. Příkladem může být predikce nákupního chování (koupí nekoupí). V takovém případě, nastávají při použití klasické metody regresní analýzy a MNČ jisté problémy.
Jeden zajímavý příklad z biologie U člověka je jeho pohlaví dáno jeho genetickou výbavou, ale jak je tomu u želv? Na to, jaké pohlaví bude mít želva, má vliv teplota během období, než se želva vyĺıhne. Na jedné univerzitě byl proveden pokus, ve kterém bylo náhodně rozděleno několik vajíček a dáno do různých inkubačních boxů s různou teplotou. Výsledky jsou uvedeny v tabulce:
Data Výsledky pozorování, při různých teplotách: Teplota Samec Samice Podíl Teplota Samec Samice Podíl C samců % C samců % 27,2 1 9 10 28,4 7 3 70 27,2 0 8 0 28,4 5 3 63 27,2 1 8 11 28,4 7 2 78 27,7 7 3 70 29,9 10 1 91 27,7 4 2 67 29,9 8 0 100 27,7 6 2 7 29,9 9 0 100 28,3 13 0 100 28,3 6 3 67 28,3 7 1 88 Existuje nějaká závislost mezi teplotou a pohlavím u sledovaného druhu želv? Sestrojme model této závislosti.
Řešení s využitím klasické regresní analýzy Nutné výpočty provedeme v prostředí R: #vstupní data t<-c(27.2,27.7,28.3,28.4,29.9) samci<-c(2,17,26,19,27) samice<-c(25,7,4,8,1) Data ale musíme,,přepsat do vhodné podoby. #naformátování dat pohsamec<-rep(1,sum(samci)) samci.t<-rep(t,samci) pohsamice<-rep(0,sum(samice)) samice.t<-rep(t,samice)
... Výsledný model získáme pomocí metody nejmenších čtverců, tj. odhad regresních koeficientů ˆ β = (X t X) 1 X t y. K tomu stačí v Rzadat příkaz lm(), přesněji: pohlavi<-c(pohsamec,pohsamice) teplota<-c(samci.t,samice.t) lm(pohlavi~teplota) a získáme Call: lm(formula = pohlavi ~ teplota) Coefficients: (Intercept) teplota -6.9455 0.2688 Výsledný model můžeme tedy zapsat jako: π i = 6.9455 + 0.2688 T eplota
... Podívejme se na výsledek Pohlavi 0.0 0.2 0.4 0.6 0.8 1.0 1.2 27.5 28.0 28.5 29.0 29.5 30.0 Teplota
... Je zde ale patrný, jeden dosti podstatný problém? Víte jaký? Podívejeme se na výsledné predikce: predikce<-predict(model) vysledky<-cbind(pohlavi,predikce,teplota) vysledky[64:70,] pohlavi predikce teplota 64 1 0.689280 28.4 65 1 1.092527 29.9 66 1 1.092527 29.9 67 1 1.092527 29.9 68 1 1.092527 29.9 69 1 1.092527 29.9 70 1 1.092527 29.9
Řešení? Logistická regrese! Statistika umí tento problém řešit. Využívá k tomu speciální metodu logistickou regresi. Pokud je závislá proměnná binární, pak je mnohem vhodnější modelovat očekávanou hodnotu závisle proměnné pomocí sigmodiální funkce. Jedna z možností spočívá ve využítí logistického modelu E(Y i X i ) = π i = e(β 0+β 1 X i ) 1 + e (β 0+β 1 X i ). Logistická funkce má několik zajímavých vlastností: Je omezená na intervalu 0 a 1. Pozitivní hodnoty koeficientu β 1 indikují vzrůstající funkci, naopak negativní hodnoty klesající funkci.
Řešení? Logistická regrese! Její vhodnou transformací lze získat lineární model závisle proměnné Vhodnou transformací, je tzv. logitová transformace, získáme lineární model g(x) = β 0 + β 1 X 1. Funkci g() nazýváme obecně linkovací, neboli vazebnou funkcí. V případě logitové transformace: ( πi ) ln 1 π i = β 0 + β 1 x i. Logaritmus podílu šancí je pak lineární funkcí proměnných. Což je důležité pro interpretaci. Zároveň si všimněme, že π i 1 π i = e (β 0+β 1 x i ).
Podstata metody maximální věrohodnosti Jde o to, že pravděpodobnost pozorovaných dat vyjádříme jako funkci parametrů. Lze říci, že věrohodnost je funkcí dat a parametrů modelu. Hodnota věrohodnosti je maximalizována, při nalezení takových hodnot parametrů modelu, při kterých s největší pravděpodobností získáme naše pozorovaná data. Hodnoty takto získaných parametrů označíme za maximálně věrohodné odhady parametrů modelu, tzv. LM odhady.
Tak například, v deseti nezávislých pokusech nastal sledovaný jev dvakrát. Jak odhadnout hodnotu pravděpodobnosti, tj. π? Je zřejmé, že Y Bi(10, π) a tedy: a tedy věrohodnost: P(Y = y) = n! y!(n y!) πy (1 π) n y L(π, y) = 10! 2!8! π2 (1 π) 8 a hledáme maximum této funkce vzhledem k π 0; 1. Řešením bychom dostali, že ML odhad parametru π, tj. ˆπ je roven hodnotě 0, 2.
Průběh věrohodnostní funkce L 0.00 0.05 0.10 0.15 0.20 0.25 0.30 ln(l) 30 25 20 15 10 5 0 0.0 0.2 0.4 0.6 0.8 1.0 π 0.0 0.2 0.4 0.6 0.8 1.0 π
Odhad parametrů modelu metodou maximální věrohodnosti Zbývá tedy odhad příslušných regresních koeficientů β 0 a β 1. K jejich odhadu použijeme metodu maximální věrohodnosti. Označme si pravděpodobnosti: P(Y i = 1) = π i P(Y i = 0) = 1 π i Je zřejmé, že Y i Bi(1, π i ). V případě nezávislosti jednotlivých pozorování můžeme věrohodnost zapsat jako součin pravděpodobností: L(β 0, β 1, x, y) = n i=1 π y i i (1 π i) 1 y i. Použijme k modelování pravděpodobnosti již výše zmiňovanou logistickou funkci, tj. π i = e(β 0+β 1 x i ) 1 + e (β 0+β 1 x i ).
Odhad parametrů modelu metodou maximální věrohodnosti pak tedy 1 π i = 1 1 + e (β 0+β 1 x i ). Po dosazení získáme tedy věrohodnostní funkci ve tvaru: L(β 0, β 1, x, y) = n i=1 což lze zjednodušit na e(β 0+β 1 x i ) 1 + e (β 0+β 1 x i ) L(β 0, β 1, x, y) = n i=1 y i ( ( e (β 0 +β 1 x i ) ) y i 1 1 + e (β 0+β 1 x i ) 1 + e (β 0+β 1 x i ). ) 1 yi, Maximalizovat funkci přímo věrohodnostní funkci L(β 0, β 1, x, y) by nebylo příliš vhodné. Je lepší, věrohodnostní funkci zlogaritmovat. Výpočet se pak rapidně usnadní.
Odhad parametrů modelu metodou maximální věrohodnosti Po logaritmování obdržíme ln L = n i=1 y i (β 0 + β 1 x i ) n i=1 ln ( 1 + e β 0+β 1 x i ). Dále hledáme parametry β 0 a β 1, při kterých nabývá takto funkce maximální hodnoty, tj. řešíme soustavu nelineárních rovnic: ln L β = 0.
Soustava V našem případě, získáme derivováním dle jednotlivých parametrů (β 0, β 1 ), následující soustavu rovnic: n i=1 y i n i=1 e β 0+β 1 x i 1 + e β 0+β 1 x i = 0 n i=1 y i x i n i=1 x i e β 0+β 1 x i 1 + e β 0+β 1 x i = 0. Řešení této soustavy rovnic se provádí iteračně. Této kalvárii zůstaneme ušetřeni a zbytek výpočtu provedeme pomocí R. Můžeme využít implementované funkce glm().
Řešení v R model2<-glm(pohlavi~teplota,family=binomial) summary(model2) Coefficients: Estimate Std. Error z value Pr(> z ) (Intercept) -61.3183 12.0214-5.101 3.38e-07 *** teplota 2.2110 0.4308 5.132 2.86e-07 *** --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 172.67 on 135 degrees of freedom Residual deviance: 123.10 on 134 degrees of freedom AIC: 127.1 Number of Fisher Scoring iterations: 5
Výsledek Výsledek můžeme zapsat ve formě logaritmu šancí, tj. prostřednictvím rovnice: ( ) ˆπi ln = 61, 3183 + 2, 2110x i. 1 ˆπ i Po několika úpravách získáme hledané pravděpodobnosti: ˆπ i = e( 61,3183+2,2110x i) 1 + e ( 61,3183+2,2110x i). Predikce je jednoduchá. Vyjde-li hodnota ˆπ i > 0, 5, pak Y = 1. Naopak, je-li hodnota ˆπ i < 0, 5, pak Y = 0.
Závěry Z výsledků plyne, že pravděpodobnost vyĺıhnutí se samce roste s teplotou. Zajímavou interpretaci má v této souvislosti hodnota regresního koeficientu ˆβ 1. Tak například, pokud by došlo ke zvětšení teploty o jeden stupeň, tj. x + 1, došlo by v průměru ke zvýšení šance vyĺıhnutí se samce e 2,2110 -krát. Podívejme se na to, jaká je pravděpodobnost vyĺıhnutí se samce při teplotě 27 C? Tato pravděpodobnost činí 0, 1651396 a šance je tedy 0.1978051. = 0, 2, nebo-li šance je zhruba 1 ku 5, že se vyĺıhne samec.
Závěry... A jak tomu je, vzroste-li teplota o jeden stupeň? Nebo-li jak je to s pohlavím při teplotě 28 C? Odpověd získáme tak, že šanci znásobíme eˆβ 1 1: 0, 2 e 2,2110 1 = 1, 82496. Šance, že se vyĺıhne samec je zde přibližně 9 ku 5. Samci se tedy při této teplotě ĺıhnou skoro dvakrát častěji než samice!
A jak to vlastně všechno vypadá? Pohlavi 0.0 0.2 0.4 0.6 0.8 1.0 27.0 27.5 28.0 28.5 29.0 29.5 30.0 Teplota
Příklad z marketingu Na základě dat uvedených s souboru chovani.csv se pokusíme odhadnout, zda bude zákazník ochoten koupit nabízené zboží. V průběhu pozorování byl u každého respondenta zaznamenán jeho věk,příjem a to zda nabízený výrobek zakoupil. Ovlivňuje věk a příjem chování zákazníků ve vztahu k nabízenému výrobku? data<-read.csv("chovani.csv",sep=";",dec=",",header=true) data attach(data) model1<-glm(zakoupi~prijem+vek,family=binomial) model1 summary(model1)
Výsledek v R Deviance Residuals: Min 1Q Median 3Q Max -1.976555-0.474385-0.007854 0.625969 1.538868 Coefficients: Estimate Std. Error z value Pr(> z ) (Intercept) -7.638e-01 2.257e+00-0.338 0.7350 prijem 1.750e-04 8.462e-05 2.069 0.0386 * vek -9.659e-02 7.350e-02-1.314 0.1888 --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 24.953 on 17 degrees of freedom Residual deviance: 13.837 on 15 degrees of freedom AIC: 19.837 Number of Fisher Scoring iterations: 6
Pokračování - tvorba grafu Prijem<-seq(min(prijem),max(prijem),length=30) Vek<-seq(min(vek),max(vek),length=30) povrch<-function(prijem,vek){ koefic<-model1$coef[1]+model1$coef[2]*prijem+model1$coef[3]*vek exp(koefic)/(1+exp(koefic)) } Probability<-outer(Prijem,Vek,povrch) persp(prijem,vek,probability,theta = 130, phi = 30, expand = 0.5, col = "lightblue") #vyneseni bodu do grafu persp(prijem,vek,probability,theta = 130, phi = 30, expand = 0.5, col = "lightblue")->res points(trans3d(prijem,vek,zakoupi,res),col="red",pch=16)
Graf Probability Vek Prijem
Srovnání modelů Pokusíme se model zjednodušit, nebot se zdá, že regresní koeficient u vysvětlující proměnné není statisticky významný. V takovém případě lze vnořené modely prostřednictvím jednoduchého testu. model2<-glm(zakoupi~prijem,family=binomial) anova(model2,model1,test="chisq") Analysis of Deviance Table Model 1: zakoupi ~ prijem Model 2: zakoupi ~ prijem + vek Resid. Df Resid. Dev Df Deviance P(> Chi ) 1 16 16.3568 2 15 13.8368 1 2.5200 0.1124 Vzhledem k nesignifikantnímu snížení celkové deviance se přikloníme k jednoduššímu modelu.
Srovnání modelů summary(model2) Coefficients: Estimate Std. Error z value Pr(> z ) (Intercept) -3.525e+00 1.646e+00-2.142 0.0322 * prijem 1.333e-04 6.189e-05 2.154 0.0312 * --- Signif. codes: 0 *** 0.001 ** 0.01 * 0.05. 0.1 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 24.953 on 17 degrees of freedom Residual deviance: 16.357 on 16 degrees of freedom AIC: 20.357 Výsledné pravděpodobnosti lze získat následovně: ˆπ i = e( 3.525+0,0001333prijem i) 1 + e ( 3.525+0,0001333prijem i).
Shrnutí Pomocí logistické regrese, je možné predikovat pravděpodobnost, zda sledovaná vlastnost nastala či nenastala. Při řešení se uplatňuje metoda maximální věrohodnosti. Samotné řešení je bez použití výpočetní techniky prakticky nemožné. Výsledné regresní koeficienty nemají tradiční interpretaci. Regresní koeficient β 1 lze interpretovat pomocí šancí.