Kysymys:
Kuinka minun pitäisi muuntaa ei-negatiiviset tiedot, nollat ​​mukaan lukien?
Rob Hyndman
2010-08-09 18:57:52 UTC
view on stackexchange narkive permalink

Jos minulla on erittäin vinoja positiivisia tietoja, otan usein lokeja. Mutta mitä minun pitäisi tehdä hyvin vinojen ei-negatiivisten tietojen kanssa, jotka sisältävät nollia? Olen nähnyt kaksi käytettyä muunnosta:

  • $ \ log (x + 1) $, jolla on siisti ominaisuus, jonka 0 yhdistää 0: een.
  • $ \ log (x + c) $ jossa c on joko arvioitu tai asetettu erittäin pieneksi positiiviseksi arvoksi.

Onko muita lähestymistapoja? Onko olemassa hyviä syitä suosia yhtä lähestymistapaa muiden sijaan?

Olen tiivistänyt joitain vastauksia ja muuta materiaalia osoitteessa http://robjhyndman.com/researchtips/transformations/
erinomainen tapa muuttaa ja edistää stat.stackoverflow!
Kyllä, olen samaa mieltä @robingirard: stä (tulin juuri tänne Robin blogikirjoituksen takia)!
Katso myös vasemmalta sensuroituun tietoon perustuvan sovelluksen (joka voi sijainnin muutokseen saakka, täsmälleen kuten tässä kysymyksessä).
Tämä Q on myös tärkeä tässä keskustelussa: [Kuinka pieni määrä tulisi lisätä x: ään, jotta vältetään nollan lokin ottaminen] (http://stats.stackexchange.com/questions/30728/).
Vaikuttaa oudolta kysyä muutoksesta ilmoittamatta ensin muutoksen tarkoitusta.Mikä on tilanne?Miksi on tarpeen muuttaa?Jos emme tiedä, mitä yrität saavuttaa, miten voimme kohtuudella ehdottaa * mitään *?(Normaaliksi muuntamista ei selvästikään voida toivoa, koska (nollasta poikkeavan) tarkkojen nollien todennäköisyys tarkoittaa nollan jakauman piikkiä, jota mikään muunnos ei poista - se voi vain siirtää sitä ympäri.)
Olen pelannut log (x + d) -c: n kanssa, missä c = floor (log (pienin-ei-nolla-arvo)) ja d = exp (c).Tällä on myös ominaisuus, jonka 0 kartoittaa nollaan. Olen kuitenkin yrittänyt tulkita tämän mallin mukaisia kertoimia, ja minulla on ollut vaikeuksia - Erityisesti log-lineaarisen mallin ominaisuus jatkuvalla ennustimella X, jossa 1 yksikön muutos X: ssäsama prosenttimuutos Y: ssä riippumatta X: n ja X + 1: n valinnasta - tämä ei näytä enää pitävän kiinni pienestä säätöstä.Tästä syystä olen alkanut epäillä, että alla olevat vaihtoehtoiset muunnokset ovat parempia.
Kaksitoista vastused:
#1
+88
Rob Hyndman
2010-08-13 09:27:16 UTC
view on stackexchange narkive permalink

Kukaan ei maininnut käänteistä hyperbolista sinimuutosta. Joten täydellisyyden vuoksi lisäämään sen tähän.

Tämä on vaihtoehto Box-Cox-muunnoksille ja sen määrittelee \ begin {equation} f (y, \ theta) = \ text {sinh} ^ {-1} (\ theta y) / \ theta = \ log [\ theta y + (\ theta ^ 2y ^ 2 + 1) ^ {1/2}] / \ theta, \ end {yhtälö} missä $ \ theta > 0 $. Millä tahansa $ \ theta $ -arvolla nolla merkitsee nollan. Siellä on myös kahden parametrin versio, joka sallii muutoksen, aivan kuten kahden parametrin BC-muunnoksen yhteydessä. Burbidge, Magee ja Robb (1988) käsittelevät IHS-muunnosta, mukaan lukien $ \ theta $: n estimointi.

IHS-muunnos toimii koko reaalilinjalla määriteltyjen tietojen kanssa, mukaan lukien negatiiviset arvot nollat. Suurille $ y $ -arvoille se toimii kuin lokimuunnos riippumatta $ \ theta $ -arvosta (paitsi 0). Rajoitettu tapaus muodossa $ \ theta \ rightarrow0 $ antaa $ f (y, \ theta) \ rightarrow y $.

Minusta näyttää siltä, ​​että IHS-muunnoksen pitäisi olla paljon paremmin tiedossa kuin se on.

Näyttää hyvältä vaihtoehdolta $ tanh $ / logistiset muunnokset
Jotkut näyttävät olevan eri mieltä IHS: stä: http://onlinelibrary.wiley.com/doi/10.1890/10-0340.1/abstract
Tuo paperi koskee käänteistä sinimuutosta, ei käänteistä hyperbolista siniä.
#2
+59
user28
2010-08-09 19:22:11 UTC
view on stackexchange narkive permalink

Minusta näyttää siltä, ​​että sopivin muunnoksen valinta riippuu mallista ja asiayhteydestä.

0-piste voi johtua useista eri syistä, joita kaikkia on ehkä käsiteltävä eri tavalla:

  • Katkaisu (kuten Robinin esimerkissä): Käytä sopivia malleja ( esim. seokset, selviytymismallit jne.)
  • Puuttuvat tiedot: Vaikutustiedot / pudotushavainnat tarvittaessa.
  • Luonnollinen nollapiste (esim. tulotaso; työttömällä ei ole tuloja): Muunna tarpeen mukaan
  • Mittalaitteen herkkyys: Ehkä lisäät pienen määrän tietoihin?

En todellakaan tarjoa vastausta, koska epäilen, ettei universaalia ole, 'oikea' muunnos, kun sinulla on nollia.

Jokainen vastaus kysymykseeni on antanut hyödyllistä tietoa, ja olen äänestänyt ne kaikki. Mutta voin valita vain yhden vastauksen, ja Srikant's tarjoaa parhaan yleiskuvan IMO: sta.
Huomaa myös, että on olemassa nolla-paisutettuja malleja (ylimääräiset nollat ja välität joistakin nollista: sekamalli) ja este-malleja (nollat ja välität nollista: kaksivaiheinen malli, jossa alkuperäinen sensuroitu malli).
#3
+44
whuber
2010-08-17 23:48:40 UTC
view on stackexchange narkive permalink

Hyödyllinen lähestymistapa, kun muuttujaa käytetään itsenäisenä tekijänä regressiossa, on korvata se kahdella muuttujalla: yksi on binäärinen indikaattori siitä, onko se nolla, ja toinen on alkuperäisen muuttujan tai uudelleenilmaisuuden arvo kuten sen logaritmi. Tätä tekniikkaa käsitellään Hosmer & Lemeshow'n kirjassa logistisesta regressiosta (ja muissa paikoissa, olen varma). Alkuperäisen muuttujan positiivisen osan katkaistut todennäköisyyskaaviot ovat hyödyllisiä sopivan uudelleenilmentämisen tunnistamiseksi. (Katso esimerkkejä analyysistä osoitteessa https://stats.stackexchange.com/a/30749/919.)

Kun muuttuja on riippuvainen lineaarisessa mallissa sensuroitu regressio (kuten Tobit) voi olla hyödyllinen, mikä taas välttää tarpeen luoda aloituslogaritmi. Tämä tekniikka on yleistä ekonometristien keskuudessa.

Onko tietojen mallintaminen nolla-paisutettuna Poissonina tämän lähestymistavan erityistapaus?
@David,, vaikka se näyttää samankaltaiselta, se ei ole, koska ZIP on * riippuvan * muuttujan malli, ei itsenäinen muuttuja.
@whuber * Tätä tekniikkaa käsitellään Hosmer & Lemeshow'n kirjassa logistisesta regressiosta. * Sattuisitko sattumalta tietämään, missä luvussa he keskustelevat tästä tekniikasta?Katson heidän kirjaansa, mutta en näytä löytävän oikeaa sivua ...
@landroni H&L oli tuolloin tuore mielessäni, joten uskon olevani varma, että tässä kirjassa on * jotain *.(Olin kuullut sitä kehittääksesi joitain erittäin suuria regressiomalleja, ja monia riippumattomia muuttujia jouduttiin käsittelemään tällä tavalla.) En kuitenkaan myöskään löydä viitteitä tässä vaiheessa.Olen kirjoittanut tästä tekniikasta seuraavissa viesteissä, jos etsit yksityiskohtia.Kaksi, joka näkyy sivustohaussa, ovat osoitteissa http://stats.stackexchange.com/questions/6563 ja http://stats.stackexchange.com/questions/4831.
@whuber * kaksi muuttujaa: yksi on binaarinen indikaattori siitä, onko se nolla, ja toinen on alkuperäisen muuttujan arvo * Olen hieman hämmentynyt tämän tekniikan oikeasta parametrisoinnista.Tässä (samoin kuin [tässä vastauksessa] (http://stats.stackexchange.com/a/4833/36515)) ehdotat, että nuken pitäisi olla "yhtä kuin 1, kun $ x = 0 $ ja 0 muuten".Vaikka [tässä muussa vastauksessa] (http://stats.stackexchange.com/a/6565/36515) nukke kestää 1, kun $ x> 0 $ ja 0, kun $ x = 0 $.Ovatko nämä kaksi formulaatiota vastaavia?
@landroni Kyllä, ne ovat samanarvoisia samalla tavalla kuin minkä tahansa binäärimuuttujan kaikki numeeriset koodaukset ovat vastaavia.Valitse kumpi mielestäsi on helpoin tulkita.
#4
+39
ars
2010-08-09 21:43:49 UTC
view on stackexchange narkive permalink

Lokimuunnokset siirtymillä ovat Box-Cox-muunnosten erikoistapauksia:

$ y (\ lambda_ {1}, \ lambda_ {2}) = \ begin {tapauksissa} \ frac {(y + \ lambda_ {2}) ^ {\ lambda_1} - 1} {\ lambda_ {1}} & \ mbox {kun} \ lambda_ {1} \ neq 0 \\ \ log (y + \ lambda_ {2}) & \ mbox {when} \ lambda_ {1} = 0 \ end {cases} $

Nämä ovat laajennettu negatiivisten arvojen muoto, mutta ne koskevat myös nollia sisältäviä tietoja. Box ja Cox (1964) esittävät algoritmin sopivien arvojen löytämiseksi dollareille $ \ lambda $ käyttäen suurinta todennäköisyyttä. Tämä antaa sinulle lopullisen muutoksen.

Syynä Box-Cox-muunnosten suosimiseen on se, että ne on kehitetty lineaarisen mallin oletusten varmistamiseksi. Tehdään jonkin verran työtä osoittaaksemme, että vaikka tietojasi ei voida muuttaa normaaliksi, arvioitu $ \ lambda $ johtaa silti symmetriseen jakaumaan.

En ole varma, kuinka hyvin tämä käsittelee tietojasi, koska voi olla, että $ \ lambda = (0, 1) $ on vain mainitsemasi lokimuunnos, mutta voi olla syytä arvioida vaaditut $ \ lambda $: t nähdäksesi onko jokin muu muunnos sopiva.

R: ssä paketin geoR funktio boxcox.fit laskee parametrit puolestasi.

@ars. Luulen, että MASS: n `boxcox`-funktio arvioi vain $ \ lambda_1 $ ja olettaa $ \ lambda_2 = 0 $.
@Rob: Voi anteeksi. Digglen maantieteellinen sijainti on oikea tapa edetä - mutta määritä argumenteihin "boxcox.fit" "lambda2 = TOSI". (Päivitti myös vastauksen.)
Jokaiselle, joka lukee tämän ihmettelen, mitä tälle toiminnolle tapahtui, sitä kutsutaan nyt `` boxcoxfitiksi ''.
#5
+19
csgillespie
2010-08-10 14:29:15 UTC
view on stackexchange narkive permalink

Oletan, että nolla! = puuttuu tietoja, koska se on täysin erilainen kysymys.

Kun ajattelen nollien käsittelyä useissa lineaarisissa regressioissa, harkitsen yleensä kuinka monta nollaa me todella Onko sinulla?

Vain muutama nolla

Jos minulla on yksi nolla kohtuullisen suuressa tietojoukossa, olen taipuvainen:

  • Poista piste, ota lokit ja sovita malli.
  • Lisää pisteeseen pieni $ c $ , ota lokit ja sovita malli
  • Muuttuuko malli sopivaksi? Entä parametriarvot? Jos malli on melko vankka pisteen poistamiseen, käytän nopeaa ja likaista lähestymistapaa lisäämällä $ c $ .

    Sinä voisi tehdä tästä menettelystä hieman vähemmän karkean ja käyttää boxcox-menetelmää muutosten kanssa, jotka on kuvattu ars: n vastauksessa.

    Suuri määrä nollia

    Jos tietojoukko sisältää suuren määrän nollia, tämä viittaa siihen, että yksinkertainen lineaarinen regressio ei ole paras työkalu työhön. Sen sijaan käytän jotain seosmallinnusta (kuten Srikant ja Robin ehdottavat).

    #6
    +16
    user856
    2010-08-11 01:48:12 UTC
    view on stackexchange narkive permalink

    Jos haluat jotain nopeaa ja likaa, miksi et käytä neliöjuuria?

    Ja usein kuutiojuuren muunnos toimii hyvin ja sallii nollat ​​ja negatiiviset. Olen havainnut, että kuutiojuuri toimii erityisen hyvin, kun esimerkiksi mittaus on tilavuus tai hiukkasten määrä tilavuusyksikköä kohti. Kuutiojuuri muuntaa sen lineaariseksi ulottuvuudeksi. Joustavampi lähestymistapa on sovittaa rajoitettu kuutiomainen spline (luonnollinen spline) kuution juurelle tai neliöjuurelle, mikä mahdollistaa pienen poikkeaman oletetusta muodosta.
    +1. Pieni artikkeli kuutiojuurista on osoitteessa http://www.stata-journal.com/article.html?article=st0223 (Tämä on ilmainen .pdf vuoden 2014 ensimmäiseltä vuosineljännekseltä.)
    Nollan neliöjuuri on nolla, joten vain nollasta poikkeavat arvot muunnetaan.Tämä ei tee mitään piikin käsittelemiseksi, jos nolla on paisunut, ja voi aiheuttaa vakavia ongelmia, jos ryhmissä kullakin on erilainen määrä nollia.Toisin sanoen, jos joillakin ryhmillä on paljon nollia ja toisilla on vähän, tämä muutos voi vaikuttaa moniin asioihin negatiivisesti.Suurimman varianssin omaavalle ryhmälle (jolla oli myös pienimmät nollat) melkein kaikki arvot muunnetaan.Sitä vastoin niillä, joilla on eniten nollia, paljon arvoja ei muuteta.Tämä voi muuttaa sitä ryhmää, jolla on suurin varianssi.
    Mikään muunnos ei säilytä varianssia @D_Williams: n kuvaamassa tapauksessa.Seosmallit (mainitut muualla tässä säikeessä) olisivat todennäköisesti hyvä tapa siinä tapauksessa.
    #7
    +11
    Firebug
    2016-07-05 18:57:32 UTC
    view on stackexchange narkive permalink

    Vertaamalla @RobHyndmanin antamaa vastausta log-plus-one-muunnokseen, joka on laajennettu negatiivisiin arvoihin, muodossa:

    $$ T (x) = \ text {sign} (x) \ cdot \ log {\ left (| x | +1 \ right)} $$

      r = -1000: 1000l = merkki (r) * log1p (abs (r)) l = l / max (l) käyrä (r, l, type = "l", xlab = "Original", ylab = "Transformed", col = adjustcolor ("punainen", alfa = 0.5), lwd = 3) # skaalamme molemmat sopimaan (-1,1) (i: lle exp (seq (-10, 100, 10))) {s = asinh (i * r) s = s / max (s) linjoille (r, s, col = adjustcolor ("sininen", alfa = 0.2), lwd = 3)} selite ("topleft", c ("asinh (x)", "sign (x) log (abs (x) +1)"), col = c ("sininen", "punainen"), lty = 1)  

    Kuten näette, koska $ \ theta $ kasvaa enemmän, muunnos näyttää vaihefunktiolta. Kun $ \ theta \ noin 1 $, se näyttää paljon log-plus-one-muunnokselta. Ja kun $ \ theta \ rightarrow 0 $, se lähestyy linjaa.

    enter image description here


    MUOKKAA: Muista, että lokimuunnos voi muutetaan samalla tavalla mielivaltaiseen mittakaavaan, samankaltaisilla tuloksilla. Halusin vain näyttää, mitä $ \ theta $ antaa samanlaisia ​​tuloksia edellisen vastauksen perusteella. Suurin ero kummankin lähestymistavan välillä on alue lähellä $ x = 0 $, kuten näemme niiden johdannaisilla.

    #8
    +10
    robin girard
    2010-08-09 19:05:50 UTC
    view on stackexchange narkive permalink

    Oletan, että sinulla on jatkuvaa tietoa.

    Jos tietoihin sisältyy nollia , tämä tarkoittaa, että sinulla on nolla, joka voi johtua tietyistä tietojesi näkökohdista. Vaikuttaa siltä, ​​että esimerkiksi tuulienergiassa alle 2 m / s: n tuuli tuottaa nolla tehoa (sitä kutsutaan sisääntuloksi) ja yli tuuli (jotain ympärillä) 25 m / s tuottaa myös nollaa (turvallisuussyistä sitä kutsutaan katkaisuksi) . Vaikka tuotetun tuulienergian jakautuminen näyttää jatkuvalta, piikki on nolla.

    Minun ratkaisuni: Tässä tapauksessa ehdotan, että nollia käsitellään erikseen työskentelemällä nollan piikin ja mallin kanssa, jota aiot käyttää jakelu, joka on jatkuva (kirjoitettu Lebesgue).

    #9
    +9
    Max Ghenis
    2013-05-29 01:50:14 UTC
    view on stackexchange narkive permalink

    Koska kahden parametrin mukaista Box-Cox-sovitusta on ehdotettu, tässä on joitain R-syötetietoja, suoritetaan mielivaltainen toiminto (esim. aikasarjojen ennustaminen) ja palautetaan sitten käännetty lähtö:

      # Kahden parametrin Box-Cox functionboxcox.f <- funktio (x, lambda1, lambda2) {if (lambda1! = 0) {return ((((x + lambda2) ) ^ lambda1 - 1) / lambda1)} else {return (log (x + lambda2))}}} # Kahden parametrin käänteinen Box-Cox-toiminto boxbox.inv <- funktio (x, lambda1, lambda2) {if (lambda1! = 0) {return ((lambda1 * x + 1) ^ (1 / lambda1) - lambda2)} else {return (exp (x) - lambda2)}} # Funktio Box-Cox-muunnokseen x, käytä funktiota g, # ja palauta käänteinen Box-Cox-lähtö yboxcox.fit.apply <- toiminto (x, g) {vaatia (geoR) vaatia (plyr) # Fit lambdas t <- try (lambda.pair <- boxcoxfit (x, lambda2 = T) $ lambda) # Molempien lambdojen arviointi joskus epäonnistuu; jos on, arvioi lambda1 vain, jos (perii (t, "try-error")) {lambda1 <- boxcoxfit (x) $ lambda lambda2 <- 0} else {lambda1 <- lambda.pair [1] lambda2 <- lambda. pari [2]} x.boxcox <- boxcox.f (x, lambda1, lambda2) # Käytä funktiota g x.boxcoxiin. Tämän pitäisi palauttaa samanlaiset tiedot kuin x (esim. Ts) y <- aaply (x.boxcox, 1, g) return (boxcox.inv (y, lambda1, lambda2))}  
    #10
    +6
    Matt Dancho
    2018-02-18 22:48:16 UTC
    view on stackexchange narkive permalink

    Yeo-Johnsonin voimanmuunnoksella, josta keskustellaan täällä, on erinomaiset ominaisuudet, jotka on suunniteltu nollien ja negatiivien käsittelemiseen samalla kun hyödynnetään Box Coxin voimanmuunnoksen vahvuuksia. Tähän menen yleensä, kun käsittelen nollia tai negatiivisia tietoja.

    Tässä on yhteenveto muunnoksista, joissa on hyviä / huonoja puolia, jotta kuvataan miksi Yeo-Johnson on parempi.

    Log

    Plussat: Menee hyvin positiivisten tietojen kanssa.

    Miinukset: Ei käsittele nollia.

      >-loki (0)
    [1] -Tiedot
     

    Log Plus 1

    Plussat: Plus 1 -siirtymä lisää mahdollisuuden käsitellä nollia positiivisten tietojen lisäksi.

    Miinukset: Negatiiviset tiedot epäonnistuvat

      > log1p (-1)
    [1] -Tiedot
    > log1p (-2)
    [1] NaN
    Varoitusviesti:
    Log1p: ssä (-2): NaN-yhdisteitä tuotettu
     

    Square Root

    Plussat: Käyttää tehomuutosta, joka pystyy käsittelemään nollia ja positiivisia tietoja.

    Miinukset: Negatiiviset tiedot epäonnistuvat

      > sqrt (-1)
    [1] NaN
    Varoitusviesti:
    Sqrt (-1): NaN-yhdisteitä tuotettu
     

    Box Cox

    R-koodi:

      box_cox <- funktio (x, lambda) {
    
        eps <- 0,00001
        jos (abs (lambda) < eps)
            loki (x)
        muu
            (x ^ lambda - 1) / lambda
    
    }
     

    Plussat: Mahdollistaa skaalatut tehomuutokset

    Miinukset: Nollat ​​ja negatiiviset ongelmat kärsivät (eli pystyvät käsittelemään vain positiivisia tietoja.

      > box_cox (0, lambda = 0)
    [1] -Tiedot
    > box_cox (0, lambda = -0,5)
    [1] -Tiedot
    > box_cox (-1, lambda = 0,5)
    [1] NaN
     

    Yeo Johnson

    R-koodi:

      yeo_johnson <- funktio (x, lambda) {
    
        eps <- .000001
        not_neg <- mikä (x > = 0)
        is_neg <- mikä (x < 0)
    
        not_neg_trans <- funktio (x, lambda) {
            if (abs (lambda) < eps) log (x + 1)
    else ((x + 1) ^ lambda - 1) / lambda
        }
    
        neg_trans <- funktio (x, lambda) {
            jos (abs (lambda - 2) < eps) - log (-x + 1)
            muu - ((-x + 1) ^ (2 - lambda) - 1) / (2 - lambda)
        }
    
        x [not_neg] <- not_neg_trans (x [not_neg], lambda)
    
        x [is_neg] <- neg_trans (x [is_neg], lambda)
    
        paluu (x)
    
    }
     

    Plussat: pystyy käsittelemään positiivisia, nolla- ja negatiivisia tietoja.

    Miinukset: Ei mitään, mitä voin ajatella.Ominaisuudet ovat hyvin samanlaisia kuin Box-Cox, mutta voivat käsitellä nolla- ja negatiivisia tietoja.

      > yeo_johnson (0, lambda = 0)
    [1] 0
    > yeo_johnson (0, lambda = -0,5)
    [1] 0
    > yeo_johnson (-1, lambda = 0,5)
    [1] -1,218951
     
    Miinukset Yeo – Johnsonille: monimutkainen, erillinen muunnos positiivisille ja negatiivisille sekä lambdan molemmin puolin oleville arvoille, maaginen viritysarvo (epsilon; ja mikä lambda on?).Ei selkeää etua verrattuna yksinkertaisempaan negatiivisen laajennetun lokimuunnokseen, joka näkyy Firebugin vastauksessa, ellet tarvitse skaalattua tehomuutosta (kuten Box – Coxissa).
    #11
    +5
    rolando2
    2014-02-01 08:37:06 UTC
    view on stackexchange narkive permalink

    Oletetaan, että Y on rahamäärä, jonka jokainen amerikkalainen kuluttaa uuteen autoon tiettynä vuonna (kokonaishinta). Y piikki 0: ssa; sillä ei ole lainkaan arvoja välillä 0 ja noin 12 000; ja ottaa muut arvot enimmäkseen teini-ikäisillä, kaksikymmentäluvulla ja kolmekymmentätuhannella. Ennustajat olisivat tarpeiden ja / tai kiinnostuksen tasoa tällaisen ostoksen suhteen. Tarpeiden tai kiinnostuksen tuskin voidaan sanoa olevan nolla niille henkilöille, jotka eivät tehneet ostoksia; näissä mittakaavoissa muut kuin ostajat olisivat paljon lähempänä ostajia kuin Y tai edes Y: n loki ehdottaa. Paljon samanlaisessa tapauksessa, mutta terveydenhuollossa, havaitsin, että tarkimmat ennusteet testisarjan / harjoittelusarjan ristivalidoinnilla arvioituna saatiin kasvavassa järjestyksessä

    1. logistinen regressio Y: n binaariversiossa,
    2. OLS Y: ssä,
    3. Y: n tavanomainen regressio (PLUM) yhdistettiin viiteen luokkaan (jotta ostajat jaettaisiin 4 yhtä suurikokoiseen ryhmään),
    4. Y: n moninominen logistinen regressio taivutettiin 5 luokkaan,
    5. OLS Y: n lokissa (10) (en ajatellut kokeilla kuutiojuuria) ja
    6. YS: n OLS liitettiin viiteen luokkaan.

    Jotkut vetäytyvät tällä jatkuvan riippuvan muuttujan luokittelulla. Mutta vaikka se uhraa jonkin verran tietoa, luokittelu näyttää auttavan palauttamalla tilanteen tärkeän taustan - jälleen, että "nollat" ovat paljon samanlaisia ​​kuin muut kuin Y osoittaisi.

    Voit myös jakaa sen kahteen malliin: todennäköisyys ostaa auto (binaarivaste) ja ostetun auton arvo. Tämä on vakiokäytäntö monilla aloilla, kuten vakuutus, luottoriski jne.
    @HongOoi - voitko ehdottaa lukemia siitä, milloin tämä lähestymistapa on ja mitä ei voida soveltaa?
    #12
    +1
    Christophe Bellégo
    2019-10-04 17:51:15 UTC
    view on stackexchange narkive permalink

    Selventääkseen, miten nollalokia käsitellään regressiomalleissa, olemme kirjoittaneet pedagogisen artikkelin, jossa selitetään paras ratkaisu ja yleiset virheet, joita ihmiset tekevät käytännössä. Olemme myös esittäneet uuden ratkaisun tämän ongelman ratkaisemiseksi.

    Löydät paperin napsauttamalla tätä: https://ssrn.com/abstract=3444996

    Ensinnäkin mielestämme heidän tulisi miettiä, miksi käyttää lokimuunnosta. Regressiomalleissa log-log-suhde johtaa elastisuuden tunnistamiseen. Jos $ \ log (y) = \ beta \ log (x) + \ varepsilon $ , niin $ \ beta $ vastaa $ y $ -joustavuutta $ x $ . Loki voi myös linearisoida teoreettisen mallin. Sitä voidaan käyttää myös heteroskedastisuuden vähentämiseen. Käytännössä kuitenkin usein tapahtuu, että lokiin otettu muuttuja sisältää ei-positiivisia arvoja.

    Usein ehdotettu ratkaisu on positiivisen vakion c lisääminen kaikkiin havaintoihin $ Y $ niin, että $ Y + c > 0 $ . Toisin kuin lineaariset regressiot, log-lineaarinen regressiot eivät ole vakaita riippuvan muuttujan lineaariselle muunnokselle. Tämä johtuu lokitoiminnon epälineaarisesta luonteesta. Lokimuunnos laajenee matalaksi arvoja ja puristaa korkeita arvoja. Siksi vakion lisääminen vääristää (lineaarista) nollien ja muiden tietojen havaintojen välinen suhde. Suuruus vakion tuottama bias riippuu todellisuudessa havainnointialueesta tiedot. Tästä syystä pienimmän mahdollisen vakion lisääminen ei välttämättä ole paras pahin ratkaisu.

    Artikkelissamme annamme oikeastaan ​​esimerkin, jossa hyvin pienten vakioiden lisääminen tosiasiallisesti tuottaa suurimman puolueellisuuden. Annamme johdattaa ilmaisu puolueellisuudesta.

    Poisson Pseudon suurinta todennäköisyyttä (PPML) voidaan itse asiassa pitää hyvänä ratkaisuna tähän ongelmaan. On otettava huomioon seuraava prosessi:

    $ y_i = a_i \ exp (\ alpha + x_i '\ beta) $ ja $ E (a_i | x_i ) = 1 $

    Tämän prosessin taustalla on useita ominaisuuksia. Ensinnäkin se tarjoaa saman tulkinnan $ \ beta $ puolilokimallina. Toiseksi tämä tiedonkehitysprosessi tarjoaa loogisen nollan arvojen järkeistäminen riippuvassa muuttujassa. Tämä tilanne voi syntyä, kun kerrannaisvirhetermi $ a_i $ on yhtä suuri kuin nolla. Kolmanneksi tämän mallin arvioiminen PPML: llä ei kohdistu laskennallisiin vaikeuksiin, kun $ y_i = 0 $ . Jos oletetaan, että $ E (a_i | x_i) = 1 $ , meillä on $ E (y_i - \ exp (\ alfa + x_i '\ beta) | x_i) = 0 $ . Haluamme minimoida tämän hetken neliövirheen, mikä johtaa seuraaviin ensimmäisen asteen olosuhteisiin:

    $ \ sum_ {i = 1} ^ N (y_i - \ exp (\ alpha + x_i '\ beta)) x_i' = 0 $

    Nämä ehdot määritetään, vaikka $ y_i = 0 $ . Nämä ensimmäisen kertaluvun ehdot vastaavat numeerisesti Poisson-mallin ehtoja, joten ne voidaan arvioida millä tahansa vakio-tilasto-ohjelmistolla.

    Lopuksi ehdotamme uutta ratkaisua, joka on myös helppo toteuttaa ja joka tarjoaa puolueettoman arvion $ \ beta $ . Sinun tarvitsee vain arvioida:

    $ \ log (y_i + \ exp (\ alpha + x_i '\ beta)) = x_i' \ beta + \ eta_i $

    Osoitamme, että tämä estimaattori on puolueeton ja että se voidaan yksinkertaisesti arvioida GMM: llä millä tahansa tavanomaisella tilasto-ohjelmistolla. Se voidaan esimerkiksi arvioida suorittamalla vain yksi koodirivi Statalla.

    Toivomme, että tämä artikkeli voi auttaa, ja haluaisimme saada palautetta sinulta.

    Christophe Bellégo ja Louis-Daniel Pape CREST - Ecole Polytechnique - ENSAE



    Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 2.0-lisenssistä, jolla sitä jaetaan.
    Loading...