Küsimus:
Kuidas ma peaksin teisendama mitte-negatiivseid andmeid, sealhulgas nulle?
Rob Hyndman
2010-08-09 18:57:52 UTC
view on stackexchange narkive permalink

Kui mul on väga viltu positiivseid andmeid, võtan sageli logisid. Aga mida peaksin tegema väga kallutatud mitte-negatiivsete andmetega, mis sisaldavad nulle? Olen näinud kahte kasutatavat teisendust:

  • $ \ log (x + 1) $, millel on puhas funktsioon, mille 0 kaardistab 0-ga.
  • $ \ log (x + c) $, kus c on kas hinnanguliselt või seatud mõneks väga väikeseks positiivseks väärtuseks.

Kas on ka muid lähenemisviise? Kas on mingeid häid põhjuseid, miks ühte lähenemist eelistada teistele?

Olen kokku võtnud mõned vastused ja muu materjali aadressil http://robjhyndman.com/researchtips/transformations/
suurepärane võimalus stat.stackoverflow muutmiseks ja reklaamimiseks!
Jah, olen nõus @robingirard-ga (ma jõudsin just siia Robi blogipostituse tõttu)!
Vasakult tsenseeritud andmetele mõeldud rakenduse kohta (mida saab kasutada ka kuni asukoha muutumiseni, täpselt nagu käesolevas küsimuses).
See Q on oluline ka selle arutelu jaoks: [Kui väike kogus tuleks x-ile lisada, et vältida logi nullist võtmist] (http://stats.stackexchange.com/questions/30728/).
Tundub kummaline küsida, kuidas transformeeruda, ilma et oleksite teisendamise eesmärki esitanud.Milline on olukord?Miks on vaja ümber kujundada?Kui me ei tea, mida te üritate saavutada, kuidas saab mõistlikult soovitada midagi?(Ilmselgelt ei saa loota normaalsuseks muutumist, sest täpsete nullide (nullist erineva) tõenäosuse olemasolu tähendab nulli jaotuse tippu, mida ükski teisendus ei eemalda - see saab seda ainult ümber liigutada.)
Olen mänginud log (x + d) -c-ga, kus c = põrand (log (väikseim-nullist erinev väärtus)) ja d = exp (c).Sellel on ka funktsioon, mida 0 kaardistab 0-ga. Siiski olen püüdnud tõlgendada sellest mudelist tulenevaid koefitsiente ja mul on olnud probleeme - Eelkõige log-lineaarse mudeli funktsioon pidevas ennustaja X-s, kussama protsentuaalne muutus Y-s, olenemata valikust X ja X + 1 - see ei näi enam kehtivat väikese kohanduse tõttu.Sel põhjusel hakkan kahtlustama, et allpool toodud alternatiivsed teisendused on paremad.
Kaksteist vastused:
#1
+88
Rob Hyndman
2010-08-13 09:27:16 UTC
view on stackexchange narkive permalink

Keegi ei maininud hüperboolse siinuse pöördteisendust. Nii et terviklikkuse huvides lisan selle siia.

See on alternatiiv Box-Coxi teisendustele ja on määratletud \ begin {equation} f (y, \ theta) = \ text {sinh} ^ {-1} (\ theta y) / \ theta = \ log [\ theta y + (\ theta ^ 2y ^ 2 + 1) ^ {1/2}] / \ teeta, \ end {võrrand} kus $ \ theta > 0 $. Mis tahes väärtuse $ \ theta $ korral kaardistab null nulli. On ka kahe parameetriga versioon, mis võimaldab nihetamist, nagu ka kahe parameetriga BC teisenduse korral. Burbidge, Magee ja Robb (1988) arutavad IHS-i teisendamist, sealhulgas $ \ theta $ hinnangut. nullid. Suurte väärtuste $ y $ korral käitub see nagu logi teisendus, olenemata $ \ theta $ väärtusest (v.a 0). Piirav juhtum kui $ \ theta \ rightarrow0 $ annab $ f (y, \ theta) \ rightarrow y $.

Mulle tundub, et IHS-i teisendus peaks olema palju paremini tuntud kui see on.

Tundub hea alternatiiv $ tanh $ / logistilistele teisendustele
IHSi kohta näivad mõned nõustuvad: http://onlinelibrary.wiley.com/doi/10.1890/10-0340.1/abstract
See artikkel räägib pöördsiinuse muundumisest, mitte pöördhüperboolsest siinusest.
#2
+59
user28
2010-08-09 19:22:11 UTC
view on stackexchange narkive permalink

Mulle tundub, et kõige sobivam transformatsiooni valik sõltub mudelist ja kontekstist.

Punkt "0" võib tuleneda mitmest erinevast põhjusest, mida võib-olla tuleb käsitleda erinevalt:

  • Kärbimine (nagu Robini näites): kasutage sobivaid mudeleid ( nt segud, ellujäämismudelid jne)
  • Puuduvad andmed: impute andmed / vajaduse korral languse vaatlused.
  • Loomulik nullpunkt (nt sissetuleku tase; töötul on null sissetulekut): Muuda vastavalt vajadusele
  • Mõõtevahendi tundlikkus: lisage ehk andmetele väike kogus?

Ma ei paku tegelikult vastust, kuna kahtlustan, et universaalset pole, „õige” teisendus, kui teil on nullid.

Iga vastus minu küsimusele on andnud kasulikku teavet ja ma olen need kõik üles hääletanud. Kuid ma saan valida ainult ühe vastuse ja Srikanti vastused annavad IMO-le parima ülevaate.
Pange tähele ka seda, et on olemas täispuhutud mudeleid (lisanullid ja mõned nullid hoolivad teile: segamudel) ja tõkkejooksu mudeleid (nullid ja hoolite nullist: kaheastmeline mudel koos esialgse tsenseeritud mudeliga).
#3
+44
whuber
2010-08-17 23:48:40 UTC
view on stackexchange narkive permalink

Kasulik lähenemisviis, kui muutujat kasutatakse regressioonis sõltumatu tegurina, on selle asendamine kahe muutujaga: üks on binaarne näitaja selle kohta, kas see on null, ja teine ​​on algse muutuja või uuesti avaldise väärtus. sellest, näiteks logaritm. Seda tehnikat käsitletakse Hosmer & Lemeshow raamatus logistilise regressiooni kohta (ja teistes kohtades, olen kindel). Algse muutuja positiivse osa kärbitud tõenäosusgraafikud on kasulikud sobiva uuesti väljendamise tuvastamiseks. (Näiteid leiate analüüsist aadressil https://stats.stackexchange.com/a/30749/919.)

Kui muutuja on lineaarses mudelis sõltuv, tsenseeritud regressioon (nagu Tobit) võib olla kasulik, välistades jällegi vajaduse koostada alustatud logaritmi. See tehnika on ökonomeetrikute seas tavaline.

Kas andmete modelleerimine nullpumbatud Poissoni näol on selle lähenemise erijuht?
@David,, kuigi see tundub sarnane, pole see siiski nii, sest ZIP on muutuja * sõltuv * mudel, mitte sõltumatu muutuja.
@whuber * Seda tehnikat käsitletakse Hosmeri ja Lemeshowi logistilise regressiooni raamatus * Kas te juhuslikult teaksite, millises peatükis nad seda tehnikat arutavad?Vaatan nende raamatut, kuid ei leia õiget lehte ...
@landroni H&L oli tollal minu meelest värske, nii et olen kindel, et selles raamatus on selles teemas midagi *.(Ma olin temaga nõu pidanud mõne väga suure regressioonimudeli väljatöötamiseks ja paljusid sõltumatuid muutujaid tuli selliselt käsitleda.) Siiski ei leia ka siinkohal viidet.Olen sellest tehnikast kirjutanud järgmistes postitustes, juhul kui otsite üksikasju.Kaks saidiotsingus kuvatavat veebisaiti on http://stats.stackexchange.com/questions/6563 ja http://stats.stackexchange.com/questions/4831.
@whuber * kaks muutujat: üks on binaarne näitaja selle kohta, kas see on null, ja teine on algse muutuja väärtus.Siin (nagu ka [selles vastuses] (http://stats.stackexchange.com/a/4833/36515)) soovitate, et mannekeen peaks olema "võrdne 1, kui $ x = 0 $ ja muul juhul 0".[Selles teises vastuses] (http://stats.stackexchange.com/a/6565/36515) olles võtab mannekeen 1, kui $ x> 0 $ ja 0, kui $ x = 0 $.Kas need kaks ravimvormi on samaväärsed?
@landroni Jah, need on samaväärsed, samamoodi nagu kõigi kahendmuutujate kõik numbrilised kodeeringud on samaväärsed.Valige kumb tõlgendamiseks kõige mugavam.
#4
+39
ars
2010-08-09 21:43:49 UTC
view on stackexchange narkive permalink

Nihetega logi teisendused on Box-Coxi teisenduste erijuhud:

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

Need on negatiivsete väärtuste laiendatud vormid, kuid rakendatavad ka nullidega andmetele. Box ja Cox (1964) esitab algoritmi, et leida $ \ lambda $ jaoks sobivad väärtused, kasutades maksimaalset tõenäosust. See annab teile ülima transformatsiooni.

Box-Coxi teisenduste eelistamise põhjus on see, et need on välja töötatud lineaarse mudeli eelduste tagamiseks. On tehtud mõningane töö, mis näitab, et isegi kui teie andmeid ei saa normaalseks muuta, viib hinnanguline $ \ lambda $ ikkagi sümmeetrilisele jaotusele.

Ma pole kindel, kui hästi see teie andmeid adresseerib, kuna võib juhtuda, et $ \ lambda = (0, 1) $ on lihtsalt teie mainitud logimuundus, kuid võib-olla tasub hinnata nõutavaid $ \ lambda $ 'sid, et näha, kas mõni muu teisendus on sobiv.

R-is arvutab paketi geoR funktsioon boxcox.fit teie jaoks parameetrid.

@ars. Ma arvan, et MASSi funktsioon "boxcox" hindab ainult dollarit $ \ lambda_1 $ ja eeldab, et $ \ lambda_2 = 0 $.
@Rob: Oh, vabandust. Diggle'i geoR on õige tee, kuid määrake argumentides "boxcox.fit" väärtus "lambda2 = TRUE". (Värskendas ka vastust.)
Kõigile, kes seda loevad, imestades, mis selle funktsiooniga juhtus, nimetatakse seda nüüd "boxcoxfitiks".
#5
+19
csgillespie
2010-08-10 14:29:15 UTC
view on stackexchange narkive permalink

Eeldan, et null! = puuduvad andmed, kuna see on täiesti erinev küsimus.

Mõeldes sellele, kuidas käsitleda nulle mitme lineaarse regressiooniga, kipun kaaluma, mitu nulli me tegelikult teeme on?

Ainult paar nulli

Kui mul on mõistlikult suures andmekogumis üks null, kipun:

  • Eemaldage punkt, võtke logid ja sobitage mudel
  • Lisage punkti väike $ c $ , võtke logisid ja sobitage mudel
  • Kas mudel sobib? Aga parameetri väärtused? Kui mudel on punkti eemaldamiseks üsna kindel, lähenen $ c $ lisamise kiirele ja räpasele lähenemisele.

    Teie võiks selle protseduuri natuke vähem tooreks muuta ja kasutada boxcoxi meetodit nihkega, mida on kirjeldatud arsi vastuses.

    Suur arv nulle

    Kui minu andmekogum sisaldab suurt hulka nulle, siis viitab see sellele, et lihtne lineaarne regressioon pole töö jaoks parim tööriist. Selle asemel kasutaksin midagi sellist nagu segu modelleerimine (nagu soovitasid Srikant ja Robin).

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

    Kui soovite midagi kiiret ja määrdunud, siis miks mitte kasutada ruutjuurt?

    Ja sageli toimib kuubikujuure transformatsioon hästi ning võimaldab nulle ja negatiivi. Olen leidnud, et kuubikujuur töötab eriti hästi, kui näiteks mõõtmiseks on maht või osakeste arv mahuühikus. Kuubikujuur muudaks selle lineaarseks mõõtmeks. Paindlikum lähenemisviis on kuubikujuurele või ruutjuurele piiratud kuupsplaani (loodusliku splaini) mahutamine, võimaldades eeldatavast vormist veidi kõrvale kalduda.
    +1. Väikest kuupjuurte artiklit leiate aadressilt http://www.stata-journal.com/article.html?article=st0223 (see on 2014. aasta esimesest kvartalist tasuta .pdf).
    Nullruutjuur on null, seega teisendatakse ainult nullist erinevad väärtused.See ei tee spikri lahendamiseks midagi, kui null on täis pumbatud, ja võib põhjustada tõsiseid probleeme, kui rühmades on nullide arv erinev.Teisisõnu, kui mõnel rühmal on palju nulli ja teistel vähe, võib see muundumine paljusid asju negatiivselt mõjutada.Suurima dispersiooniga rühma puhul (millel oli ka kõige vähem nulli) on peaaegu kõik väärtused teisendamisel.Seevastu need, kellel on kõige rohkem nulli, ei muudeta suurt osa väärtustest.See võib muuta, millises rühmas on suurim dispersioon.
    Ükski teisendus ei säilita dispersiooni @D_Williams kirjeldatud juhul.Segumudelid (mida selles lõimes mainitakse mujal) oleks ilmselt sellisel juhul hea lähenemine.
    #7
    +11
    Firebug
    2016-07-05 18:57:32 UTC
    view on stackexchange narkive permalink

    Võimaluse @RobHyndman vastuse võrdlemine log-pluss-üks teisendusega, mis on laiendatud negatiivsetele väärtustele, vormiga:

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

      r = -1000: 1000l = märk (r) * log1p (abs (r)) l = l / max (l) joonis (r, l, type = "l", xlab = "Original", ylab = "Transformed", col = adjustcolor ("punane", alfa = 0.5), lwd = 3) #Mõõtame mõlemad sobivad (-1,1) (i-le exp (järgnevad (-10, 100, 10))) {s = asinh (i * r) s = s / max (s) read (r, s, col = kohandusvärv ("sinine", alfa = 0,2), lwd = 3)} legend ("topleft", c ("asinh (x)", "märk (x) log (abs (x) +1)"), col = c ("sinine", "punane"), lty = 1)  

    Nagu näete, kui $ \ theta $ suureneb, näeb teisendus välja sammufunktsioonina. Funktsiooniga $ \ theta \ umbes 1 $ sarnaneb see log-plus-one teisendusega. Ja kui $ \ theta \ rightarrow 0 $ läheneb joonele.

    enter image description here


    MUUDA: pidage meeles, et logi teisendamine võib muuta sarnaselt meelevaldse skaalaga, mille tulemused on sarnased. Tahtsin lihtsalt näidata, mida $ \ theta $ annab eelmise vastuse põhjal sarnaseid tulemusi. Suurim erinevus mõlema lähenemise vahel on $ x = 0 $ lähedal asuv piirkond, nagu näeme nende tuletiste järgi.

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

    Eeldan, et teil on pidevaid andmeid.

    Kui andmed sisaldavad nulli , tähendab see, et teil on nullilind, mis võib olla tingitud teie andmete konkreetsest aspektist. See ilmneb näiteks tuuleenergias: tuul alla 2 m / s annab nullvõimsuse (seda nimetatakse sisselülitamiseks) ja tuul (miski ümber) 25 m / s annab ka nullvõimsuse (turvalisuse huvides nimetatakse seda ära) . Ehkki toodetud tuuleenergia jaotus tundub pidev, on nulli tipp.

    Minu lahendus: soovitan sel juhul nulle eraldi käsitleda, töötades nulli piigi ja mudeli osas, mida kavatsesite kasutada jaotus, mis on pidev (kirjutatud Lebesgue).

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

    Kuna pakuti välja kahe parameetriga sobiv Box-Cox, on siin mõned R, mis sobivad sisendandmetega, käivitavad sellel suvalise funktsiooni (nt aegridade prognoosimine) ja tagastavad seejärel ümberpööratud väljundi: class = "lang-r prettyprint-override"> # Kahe parameetriga Box-Cox functionboxcox.f <- funktsioon (x, lambda1, lambda2) {if (lambda1! = 0) {return ((((x + lambda2) ) ^ lambda1 - 1) / lambda1)} else {return (log (x + lambda2))}}} # Kahe parameetriga pöördfunktsioon Box-Cox functionboxcox.inv <- function (x, lambda1, lambda2) {if (lambda1! = 0) {return ((lambda1 * x + 1) ^ (1 / lambda1) - lambda2)} else {return (exp (x) - lambda2)}} # Funktsioon Box-Coxi teisendusele x, rakendage funktsioon g, # ja tagastage tagurpidi Box-Coxi väljund yboxcox.fit.apply <- funktsioon (x, g) {nõuda (geoR) nõuda (plyr) # Fit lambdas t <- try (lambda.pair <- boxcoxfit (x, lambda2 = T) $ lambda) # Mõlema lambda hindamine ebaõnnestub mõnikord; kui jah, siis hinnake lambda1 ainult juhul, kui (pärib (t, "prooviviga")) {lambda1 <- boxcoxfit (x) $ lambda lambda2 <- 0} else {lambda1 <- lambda.pair [1] lambda2 <- lambda. paar [2]} x.boxcox <- boxcox.f (x, lambda1, lambda2) # Rakenda funktsioon g x.boxcoxile. See peaks tagastama andmed, mis on sarnased x-ga (nt 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

    siin käsitletud Yeo-Johnsoni võimsuse muundamisel on suurepärased omadused, mis on ette nähtud nullide ja negatiivide käsitsemiseks, tuginedes Box Coxi võimsuse muundamise tugevatele külgedele. Sellele lähen tavaliselt siis, kui tegelen nullide või negatiivsete andmetega.

    Siin on kokkuvõte plusside / miinustega tehtud teisendustest, et illustreerida Yeo-Johnsoni eelistamist.

    Log

    Plussid: saab positiivsete andmetega hästi hakkama.

    Miinused: ei tegele nullidega.

      > log (0)
    [1] -Inf
     

    Log Plus 1

    Plussid: Pluss 1 nihe lisab lisaks positiivsetele andmetele ka võimaluse nullidega hakkama saada.

    Miinused: ei toimi negatiivsete andmetega

      > log1p (-1)
    [1] -Inf
    > log1p (-2)
    [1] NaN
    Hoiatusteade:
    Log1p (-2): toodetud NaN-d
     

    Square Root

    Plussid: kasutab võimsuse teisendamist, mis suudab käsitleda nulle ja positiivseid andmeid.

    Miinused: ei toimi negatiivsete andmetega

      > sqrt (-1)
    [1] NaN
    Hoiatusteade:
    Ruutides (-1): toodetud NaN-id
     

    Box Cox

    R-kood:

      box_cox <- funktsioon (x, lambda) {
    
        eps <- 0,00001
        kui (abs (lambda) < eps)
            log (x)
        muud
            (x ^ lambda - 1) / lambda
    
    }
     

    Plussid: võimaldab skaleeritud võimsuse teisendamist

    Miinused: kannatab nullide ja negatiividega seotud probleemide all (st saab hakkama ainult positiivsete andmetega.

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

    Yeo Johnson

    R-kood:

      yeo_johnson <- funktsioon (x, lambda) {
    
        eps <- .000001
        not_neg <- mis (x > = 0)
        is_neg <- mis (x < 0)
    
        not_neg_trans <- funktsioon (x, lambda) {
            if (abs (lambda) < eps) log (x + 1)
    else ((x + 1) ^ lambda - 1) / lambda
        }
    
        neg_trans <- funktsioon (x, lambda) {
            kui (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)
    
        tagasitulek (x)
    
    }
     

    Plussid: saab hakkama positiivsete, null- ja negatiivsete andmetega.

    Miinused: pole ühtegi, mida ma välja suudaksin mõelda.Atribuudid on Box-Coxiga väga sarnased, kuid saavad hakkama null- ja negatiivsete andmetega.

      > yeo_johnson (0, lambda = 0)
    [1] 0
    > yeo_johnson (0, lambda = -0,5)
    [1] 0
    > yeo_johnson (-1, lambda = 0,5)
    [1] -1,218951
     
    Miinused Yeo – Johnsoni puhul: keeruline, eraldi transformatsioon positiivsete ja negatiivsete ning lambda mõlemal küljel olevate väärtuste jaoks, maagiline häälestusväärtus (epsilon; ja mis on lambda?).Firebugi vastuses näidatud lihtsama negatiivselt laiendatud logi teisendusega võrreldes pole ilmset eelist, kui te ei vaja skaleeritud võimsuse teisendusi (nagu Box – Coxis).
    #11
    +5
    rolando2
    2014-02-01 08:37:06 UTC
    view on stackexchange narkive permalink

    Oletame, et Y on summa, mida iga ameeriklane kulutab antud aastal uue auto peale (kokkuostuhind). Y tõuseb 0-ga; sellel pole väärtusi vahemikus 0 kuni umbes 12 000; ja võtab muid väärtusi enamasti teismelistes, kahekümnendates ja kolmekümnendates tuhandetes. Ennustajad oleksid sellise ostu sooritamise vajaduse ja / või huvi taseme suhtes lähedased. Vajaduse või huvi kohta ei saa vaevalt öelda, et null oleks üksikisikute jaoks, kes ostu ei teinud; nende skaalal oleksid mitteostjad ostjatele palju lähemal, kui Y või isegi Y logi järgi võiks arvata. Palju sellisel juhul, kuid tervishoius leidsin, et kõige täpsemad prognoosid, mis on hinnatud testide ja treeningute ristkinnitamise põhjal, saadi kasvavas järjestuses

    1. Logistiline regressioon Y-i binaarsel versioonil,
    2. OLS Y-l,
    3. Y-ga seotud tavaline regressioon (PLUM) 5 kategooriasse (nii et ostjad jagataks 4 võrdse suurusega rühma),
    4. Y multinoomiline logistiline regressioon jagunes 5 kategooriasse,
    5. YS logi (10) OLS (ma ei mõelnud kuubi juure proovida) ja
    6. YS-i OLS ühendati viide kategooriasse.

    Mõni tagurdab selle pideva sõltuva muutuja kategooria. Ehkki see ohverdab osa teabest, näib kategoriseerimine aitavat olukorra olulise põhiaspekti taastamisega - jällegi, et "nullid" on palju sarnasemad ülejäänud osadele, kui Y osutab.

    Võite selle jagada ka kaheks mudeliks: auto ostmise tõenäosus (binaarne vastus) ja ostetud auto väärtus. See on tavapraktika paljudes valdkondades, nt kindlustus, krediidirisk jne.
    @HongOoi - kas saaksite soovitada lugemist selle kohta, millal see lähenemisviis on ja ei ole kohaldatav?
    #12
    +1
    Christophe Bellégo
    2019-10-04 17:51:15 UTC
    view on stackexchange narkive permalink

    Selgitamaks, kuidas taandarengumudelites nullilogiga ümber käia, oleme kirjutanud pedagoogilise töö, milles selgitatakse parimat lahendust ja levinud vigu, mida inimesed praktikas teevad. Selle probleemi lahendamiseks pakkusime välja ka uue lahenduse.

    Paberi leiate klõpsates siin: https://ssrn.com/abstract=3444996

    Esiteks arvame, et need peaksid mõtlema, miks logi teisendust kasutada. Regressioonimudelites viib log-log-seos elastsuse tuvastamiseni. Tõepoolest, kui $ \ log (y) = \ beta \ log (x) + \ varepsilon $ , siis $ \ beta $ vastab $ y $ elastsusele $ x $ . Logi saab ka teoreetilise mudeli lineariseerida. Seda saab kasutada ka heteroskedastilisuse vähendamiseks. Kuid praktikas juhtub sageli, et logisse võetud muutuja sisaldab mitte-positiivseid väärtusi.

    Sageli pakutav lahendus seisneb positiivse konstandi c lisamises kõigisse vaatlustesse $ Y $ nii, et $ Y + c > 0 $ . Kuid vastupidiselt lineaarsetele regressioonidele on log-lineaarne regressioonid ei ole sõltuva muutuja lineaarse teisendamise jaoks tugevad. See tuleneb logifunktsiooni mittelineaarsest olemusest. Palgi teisendamine laieneb madalaks väärtusi ja pigistab kõrgeid väärtusi. Seetõttu moonutab konstandi lisamine (lineaarset) nullide ja andmete muude tähelepanekute suhe. Suurus konstandi tekitatud kallutatus sõltub tegelikult vaatluste ulatusest andmed. Sel põhjusel pole väikseima võimaliku konstandi lisamine tingimata parim halvim lahendus.

    Esitame oma artiklis näite, kus väga väikeste konstantide lisamine pakub tegelikult suurimat eelarvamust. Pakume tuletage eelarvamuste avaldis.

    Tegelikult võib Poissoni pseudo maksimaalset tõenäosust (PPML) pidada selle probleemi heaks lahenduseks. Tuleb kaaluda järgmist protsessi:

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

    Seda protsessi motiveerivad mitmed funktsioonid. Esiteks pakub see sama tõlgendust $ \ beta $ poollogimudelina. Teiseks annab see andmete genereerimise protsess loogilise sõltuvate muutujate nullväärtuste ratsionaliseerimine. Selline olukord võib tekkida siis, kui korrutava vea mõiste $ a_i $ on võrdne nulliga. Kolmandaks ei teki selle mudeli hindamisel PPML-iga arvutusraskusi, kui $ y_i = 0 $ . Eeldusel, et $ E (a_i | x_i) = 1 $ , on meil $ E (y_i - \ exp (\ alfa + x_i '\ beta) | x_i) = 0 $ . Soovime minimeerida selle hetke ruutviga, mis toob kaasa järgmised esimese järgu tingimused:

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

    Need tingimused on määratletud isegi siis, kui $ y_i = 0 $ . Need esimese järgu tingimused on arvuliselt samaväärsed Poissoni mudeli omadega, nii et seda saab hinnata mis tahes standardse statistilise tarkvaraga.

    Lõpuks pakume välja uue lahenduse, mida on samuti lihtne rakendada ja mis pakub $ \ beta $ erapooletu hinnangu. Tuleb lihtsalt hinnata:

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

    Näitame, et see prognoosija on erapooletu ja seda saab lihtsalt hinnata GMM-iga mis tahes standardse statistilise tarkvaraga. Näiteks saab seda hinnata, käivitades Stata abil ainult ühe koodirea.

    Loodame, et see artikkel võib aidata ja tahaksime teilt tagasisidet saada.

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



    See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 2.0-litsentsi eest, mille all seda levitatakse.
    Loading...