Vraag:
Hoe moet ik niet-negatieve gegevens, inclusief nullen, transformeren?
Rob Hyndman
2010-08-09 18:57:52 UTC
view on stackexchange narkive permalink

Als ik positieve gegevens sterk scheef heb, neem ik vaak logboeken. Maar wat moet ik doen met sterk scheve niet-negatieve gegevens die nullen bevatten? Ik heb twee gebruikte transformaties gezien:

  • $ \ log (x + 1) $ die de handige functie heeft die 0 toewijst aan 0.
  • $ \ log (x + c) $ waarbij c ofwel wordt geschat of ingesteld op een zeer kleine positieve waarde.

Zijn er andere benaderingen? Zijn er goede redenen om de ene benadering te verkiezen boven de andere?

Ik heb enkele van de antwoorden en wat ander materiaal samengevat op http://robjhyndman.com/researchtips/transformations/
uitstekende manier om stat.stackoverflow te transformeren en te promoten!
Ja, ik ben het eens met @robingirard (ik ben hier nu net aangekomen vanwege de blogpost van Rob)!
Zie ook http://stats.stackexchange.com/questions/39042/how-should-i-handle-a-left-censored-predictor-variable-in-multiple-regression voor een toepassing op linksgecensureerde gegevens (die kan worden gekarakteriseerd, tot een verschuiving van locatie, precies zoals in de huidige vraag).
Deze Q is ook relevant voor deze discussie: [Hoe klein een hoeveelheid moet worden toegevoegd aan x om te voorkomen dat de log van nul wordt genomen] (http://stats.stackexchange.com/questions/30728/).
Het lijkt vreemd om te vragen hoe te transformeren zonder in de eerste plaats het doel van de transformatie te hebben vermeld.Wat is de situatie?Waarom is het nodig om te transformeren?Als we niet weten wat u probeert te bereiken, hoe kan iemand dan redelijkerwijs * iets * voorstellen?(Het is duidelijk dat men niet kan hopen te transformeren naar normaliteit, omdat het bestaan van een (niet-nul) kans op exacte nullen een piek in de verdeling bij nul impliceert, welke piek geen enkele transformatie zal verwijderen - het kan het alleen verplaatsen.)
Ik heb gespeeld met log (x + d) -c, waarbij c = vloer (log (kleinste-niet-nul-waarde)), en d = exp (c).Dit heeft ook de functie dat 0 wordt toegewezen aan 0. Ik heb echter geprobeerd de coëfficiënten die het resultaat zijn van dit model te interpreteren, en ik heb problemen ondervonden - in het bijzonder de functie van een log-lineair model op een continue voorspeller X waarbij een verandering van 1 eenheid in X resulteert indezelfde procentuele verandering in Y, ongeacht de keuze van X en X + 1 - dit lijkt niet langer te gelden vanwege de kleine aanpassing.Om die reden begin ik te vermoeden dat de alternatieve transformaties hieronder superieur zijn.
Twaalf antwoorden:
Rob Hyndman
2010-08-13 09:27:16 UTC
view on stackexchange narkive permalink

Niemand noemde de inverse hyperbolische sinustransformatie. Dus voor de volledigheid voeg ik het hier toe.

Dit is een alternatief voor de Box-Cox-transformaties en wordt gedefinieerd door \ begin {equation} f (y, \ theta) = \ text {sinh} ^ {-1} (\ theta y) / \ theta = \ log [\ theta y + (\ theta ^ 2y ^ 2 + 1) ^ {1/2}] / \ theta, \ end {equation} waarbij $ \ theta > 0 $. Voor elke waarde van $ \ theta $ wordt nul toegewezen aan nul. Er is ook een versie met twee parameters die een verschuiving mogelijk maakt, net als bij de BC-transformatie met twee parameters. Burbidge, Magee en Robb (1988) bespreken de IHS-transformatie inclusief schatting van $ \ theta $.

De IHS-transformatie werkt met gegevens die zijn gedefinieerd op de hele reële lijn, inclusief negatieve waarden en nullen. Voor grote waarden van $ y $ gedraagt ​​het zich als een logboektransformatie, ongeacht de waarde van $ \ theta $ (behalve 0). Het beperkende geval als $ \ theta \ rightarrow0 $ geeft $ f (y, \ theta) \ rightarrow y $.

Het lijkt erop dat de IHS-transformatie veel beter bekend zou moeten zijn dan het is.

Ziet eruit als een goed alternatief voor $ tanh $ / logistieke transformaties
Over de IHS lijken sommigen het oneens te zijn: http://onlinelibrary.wiley.com/doi/10.1890/10-0340.1/abstract
Dat artikel gaat over de inverse sinustransformatie, niet de inverse hyperbolische sinus.
user28
2010-08-09 19:22:11 UTC
view on stackexchange narkive permalink

Het lijkt mij dat de meest geschikte transformatie-keuze afhangt van het model en de context.

Het '0'-punt kan ontstaan ​​door verschillende redenen die allemaal anders moeten worden behandeld:

  • Afkappen (zoals in het voorbeeld van Robin): gebruik geschikte modellen ( bijv. mengsels, overlevingsmodellen enz.)
  • Ontbrekende gegevens: gegevens toereken / waarnemingen laten vallen indien van toepassing.
  • Natuurlijk nulpunt (bijv. inkomensniveaus; een werkloze heeft geen inkomen): Transformeer waar nodig
  • Gevoeligheid van meetinstrument: misschien een kleine hoeveelheid toevoegen aan gegevens?

Ik bied niet echt een antwoord, omdat ik vermoed dat er geen universele, 'juiste' transformatie als je nullen hebt.

Elk antwoord op mijn vraag heeft nuttige informatie opgeleverd, en ik heb ze allemaal gestemd. Maar ik kan maar één antwoord selecteren en die van Srikant biedt het beste overzicht IMO.
Merk ook op dat er nul-opgeblazen modellen zijn (extra nullen en u geeft om enkele nullen: een mengselmodel) en hordenmodellen (nullen en u geeft om niet-nullen: een tweetrapsmodel met een initieel gecensureerd model).
whuber
2010-08-17 23:48:40 UTC
view on stackexchange narkive permalink

Een handige benadering wanneer de variabele wordt gebruikt als een onafhankelijke factor bij regressie, is deze te vervangen door twee variabelen: de ene is een binaire indicator of deze nul is en de andere is de waarde van de oorspronkelijke variabele of een heruitdrukking ervan, zoals de logaritme. Deze techniek wordt besproken in het boek van Hosmer & Lemeshow over logistieke regressie (en op andere plaatsen dat weet ik zeker). Afgekorte waarschijnlijkheidsgrafieken van het positieve deel van de oorspronkelijke variabele zijn nuttig om een ​​geschikte heruitdrukking te identificeren. (Zie de analyse op https://stats.stackexchange.com/a/30749/919 voor voorbeelden.)

Als de variabele de afhankelijke variabele is in een lineair model, gecensureerde regressie (zoals Tobit) kan nuttig zijn, waardoor opnieuw de noodzaak om een ​​gestarte logaritme te produceren overbodig wordt. Deze techniek is gebruikelijk bij econometristen.

Is het modelleren van gegevens als een nul-opgeblazen Poisson een speciaal geval van deze benadering?
@David, hoewel het lijkt, is het dat niet, omdat de ZIP een model is van de * afhankelijke * variabele, niet de onafhankelijke variabele.
@whuber * Deze techniek wordt besproken in het boek van Hosmer & Lemeshow over logistieke regressie. * Zou u toevallig weten in welk hoofdstuk ze deze techniek bespreken?Ik kijk naar hun boek, maar ik kan de juiste pagina niet vinden ...
@landroni H&L was toen nog vers in mijn geheugen, dus ik ben ervan overtuigd dat er * iets * in dat boek staat dat verband houdt met dit onderwerp.(Ik had ermee overlegd om enkele zeer grote regressiemodellen te ontwikkelen en veel van de onafhankelijke variabelen moesten op deze manier worden behandeld.) Maar ik kan de referentie op dit punt ook niet vinden.Ik heb in volgende berichten over deze techniek geschreven, voor het geval je op zoek bent naar details.Twee die verschijnen bij het zoeken naar een site zijn op http://stats.stackexchange.com/questions/6563 en http://stats.stackexchange.com/questions/4831.
@whuber * twee variabelen: de ene is een binaire indicator of deze nul is en de andere is de waarde van de oorspronkelijke variabele * Ik ben enigszins in de war over de juiste parametrisering in deze techniek.Hier (evenals in [dit antwoord] (http://stats.stackexchange.com/a/4833/36515)) stel je voor dat de dummy "gelijk is aan 1 als $ x = 0 $ en 0 anders".Terwijl in [dit andere antwoord] (http://stats.stackexchange.com/a/6565/36515), de dummy 1 kost als $ x> 0 $ en 0 als $ x = 0 $.Zijn de twee formuleringen equivalent?
@landroni Ja, ze zijn equivalent, op dezelfde manier dat alle numerieke coderingen van een binaire variabele equivalent zijn.Kies degene die u het handigst vindt om te interpreteren.
ars
2010-08-09 21:43:49 UTC
view on stackexchange narkive permalink

De logboektransformaties met verschuivingen zijn speciale gevallen van de Box-Cox-transformaties:

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

Dit is de uitgebreide vorm voor negatieve waarden, maar ook van toepassing op gegevens die nullen bevatten. Box en Cox (1964) presenteert een algoritme om de juiste waarden voor de $ \ lambda $ 's te vinden met gebruikmaking van maximale waarschijnlijkheid. Dit geeft je de ultieme transformatie.

Een reden om Box-Cox-transformaties te verkiezen, is dat ze zijn ontwikkeld om aannames voor het lineaire model te garanderen. Er is wat werk verricht om aan te tonen dat zelfs als uw gegevens niet naar normaliteit kunnen worden omgezet, de geschatte $ \ lambda $ nog steeds tot een symmetrische verdeling leidt.

Ik weet niet zeker hoe goed dit uw gegevens behandelt, aangezien het $ \ lambda = (0, 1) $ zou kunnen zijn, wat gewoon de logtransformatie is die u noemde, maar het kan de moeite waard zijn om de vereiste $ \ lambda $ 's te schatten om te zien of een andere transformatie geschikt is.

In R zal de boxcox.fit -functie in pakket geoR de parameters voor je berekenen.

@ars. Ik denk dat de functie `boxcox` in MASS alleen $ \ lambda_1 $ schat en $ \ lambda_2 = 0 $ aanneemt.
@Rob: Oh, sorry. Diggle's geoR is de juiste keuze - maar specificeer `lambda2 = TRUE` in de argumenten voor` boxcox.fit`. (Ook het antwoord bijgewerkt.)
Voor iedereen die dit leest en zich afvraagt ​​wat er met deze functie is gebeurd, wordt het nu `boxcoxfit` genoemd.
csgillespie
2010-08-10 14:29:15 UTC
view on stackexchange narkive permalink

Ik neem aan dat nul! = ontbrekende gegevens, want dat is een heel andere vraag.

Als ik nadenk over het omgaan met nullen in meervoudige lineaire regressie, ben ik geneigd na te denken over hoeveel nullen we eigenlijk hebben?

Slechts een paar nullen

Als ik een enkele nul heb in een redelijk grote gegevensset, heb ik de neiging om:

  • Verwijder het punt, neem logboeken en pas het model aan
  • Voeg een kleine $ c $ toe aan het punt, neem logboeken en pas het model
  • Verandert de pasvorm van het model? Hoe zit het met de parameterwaarden? Als het model redelijk robuust is om het punt te verwijderen, ga ik voor een snelle en vuile aanpak door $ c $ toe te voegen.

    Jij zou deze procedure iets minder grof kunnen maken en de boxcox-methode gebruiken met verschuivingen beschreven in het antwoord van ars.

    Groot aantal nullen

    Als mijn gegevens bevat een groot aantal nullen, dan suggereert dit dat eenvoudige lineaire regressie niet het beste hulpmiddel is voor de taak. In plaats daarvan zou ik zoiets als mengselmodellering gebruiken (zoals voorgesteld door Srikant en Robin).

    user856
    2010-08-11 01:48:12 UTC
    view on stackexchange narkive permalink

    Als u iets snel en vies wilt, waarom gebruikt u dan niet de vierkantswortel?

    En vaak werkt de kubusworteltransformatie goed, en staan ​​nullen en negatieven toe. Ik heb ontdekt dat kubuswortel vooral goed werkt als de meting bijvoorbeeld een volume is of een telling van deeltjes per volume-eenheid. Kubuswortel zou het naar een lineaire dimensie converteren. Een meer flexibele benadering is om een ​​beperkte kubische spline (natuurlijke spline) op de kubuswortel of vierkantswortel aan te brengen, waarbij een kleine afwijking van de aangenomen vorm mogelijk is.
    +1. Zie http://www.stata-journal.com/article.html?article=st0223 voor een klein artikel over kubuswortels (dit wordt een gratis pdf vanaf het eerste kwartaal van 2014.)
    Een vierkantswortel van nul is nul, dus alleen de niet-nullen worden getransformeerd.Dit doet niets met de piek als de nul wordt opgeblazen, en kan ernstige problemen veroorzaken als, in groepen, elk een ander aantal nullen heeft.Met andere woorden, als sommige groepen veel nullen hebben en andere weinig, kan deze transformatie veel dingen op een negatieve manier beïnvloeden.Voor de groep met de grootste variantie (had ook de minste nullen) worden bijna alle waarden getransformeerd.Bij degenen met de meeste nullen daarentegen worden niet veel waarden getransformeerd.Dit kan veranderen welke groep de grootste variantie heeft.
    Geen enkele transformatie zal de variantie behouden in het geval beschreven door @D_Williams.Mengselmodellen (elders in deze thread genoemd) zouden in dat geval waarschijnlijk een goede benadering zijn.
    Firebug
    2016-07-05 18:57:32 UTC
    view on stackexchange narkive permalink

    Vergelijking van het antwoord van @RobHyndman met een log-plus-één-transformatie uitgebreid naar negatieve waarden met de volgende vorm:

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

      r = -1000: 1000l = teken (r) * log1p (abs (r)) l = l / max (l) plot (r, l, type = "l", xlab = "Original", ylab = "Transformed", col = adjustcolor ("red", alpha = 0,5), lwd = 3) #We schalen beide passen (-1,1) voor (i in exp (seq (-10, 100, 10))) {s = asinh (i * r) s = s / max (s) regels (r, s, col = adjustcolor ("blue", alpha = 0.2), lwd = 3)} legend ("topleft", c ("asinh (x)", "sign (x) log (abs (x) +1)"), col = c ("blue", "red"), lty = 1)  

    Zoals je kunt zien, naarmate $ \ theta $ meer toeneemt, ziet de transformatie eruit als een stapfunctie. Met $ \ theta \ ca. 1 $ lijkt het veel op de log-plus-one transformatie. En wanneer $ \ theta \ rightarrow 0 $ het een regel nadert.

    enter image description here


    BEWERK: Houd er rekening mee dat de logtransformatie op dezelfde manier worden gewijzigd in een willekeurige schaal, met vergelijkbare resultaten. Ik wilde gewoon laten zien wat $ \ theta $ vergelijkbare resultaten geeft op basis van het vorige antwoord. Het grootste verschil tussen beide benaderingen is de regio nabij $ x = 0 $, zoals we kunnen zien aan hun afgeleiden.

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

    Ik neem aan dat je continue gegevens hebt.

    Als de gegevens nullen bevatten, betekent dit dat u een piek op nul heeft, wat te wijten kan zijn aan een bepaald aspect van uw gegevens. Het komt bijvoorbeeld voor in windenergie, wind onder de 2 m / s produceert geen stroom (het wordt inschakeling genoemd) en wind over (iets rond) 25 m / s produceert ook geen stroom (om veiligheidsredenen wordt het afgesneden genoemd) . Hoewel de distributie van geproduceerde windenergie continu lijkt, is er een piek in nul.

    Mijn oplossing: in dit geval stel ik voor om de nullen afzonderlijk te behandelen door te werken met een combinatie van de piek in nul en het model dat u van plan was te gebruiken voor het deel van de distributie die continu is (mbt Lebesgue).

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

    Aangezien de fit Box-Cox met twee parameters is voorgesteld, zijn hier enkele R om invoergegevens in te passen, er een willekeurige functie op uit te voeren (bijv. tijdreeksvoorspelling) en vervolgens de omgekeerde uitvoer terug te geven:

      # Two-parameter Box-Cox functionboxcox.f <- functie (x, lambda1, lambda2) {if (lambda1! = 0) {return (((x + lambda2 ) ^ lambda1 - 1) / lambda1)} else {return (log (x + lambda2))}} # Twee-parameter inverse Box-Cox-functieboxcox.inv <- functie (x, lambda1, lambda2) {if (lambda1! = 0) {return ((lambda1 * x + 1) ^ (1 / lambda1) - lambda2)} else {return (exp (x) - lambda2)}} # Functie naar Box-Cox transform x, functie g, # toepassen en retour omgekeerde Box-Cox-uitvoer yboxcox.fit.apply <- functie (x, g) {vereisen (geoR) vereisen (plyr) # Fit lambdas t <- probeer (lambda.pair <- boxcoxfit (x, lambda2 = T) $ lambda) # Het schatten van beide lambda's mislukt soms; als dat zo is, schat dan lambda1 alleen als (erft (t, "try-error")) {lambda1 <- boxcoxfit (x) $ lambda lambda2 <- 0} anders {lambda1 <- lambda.pair [1] lambda2 <- lambda. paar [2]} x.boxcox <- boxcox.f (x, lambda1, lambda2) # Pas functie g toe op x.boxcox. Dit zou gegevens moeten retourneren die vergelijkbaar zijn met x (bijv. Ts) y <- aaply (x.boxcox, 1, g) return (boxcox.inv (y, lambda1, lambda2))}  
    Matt Dancho
    2018-02-18 22:48:16 UTC
    view on stackexchange narkive permalink

    De Yeo-Johnson-machtstransformatie die hier wordt besproken, heeft uitstekende eigenschappen die zijn ontworpen om nullen en negatieven te verwerken, terwijl wordt voortgebouwd op de sterke punten van Box Cox-machtstransformatie. Dit is waar ik meestal naar toe ga als ik te maken heb met nullen of negatieve gegevens.

    Hier is een samenvatting van transformaties met voor- en nadelen om te illustreren waarom Yeo-Johnson de voorkeur verdient.

    Log

    Voordelen: doet het goed met positieve gegevens.

    Nadelen: verwerkt geen nullen.

      > log (0)
    [1] -Inf
     

    Log Plus 1

    Voordelen: de plus 1-offset voegt de mogelijkheid toe om naast positieve gegevens ook nullen te verwerken.

    Nadelen: mislukt met negatieve gegevens

      > log1p (-1)
    [1] -Inf
    > log1p (-2)
    [1] NaN
    Waarschuwingsbericht:
    In log1p (-2): NaNs geproduceerd
     

    Square Root

    Voordelen: gebruikt een machtstransformatie die nullen en positieve gegevens aankan.

    Nadelen: mislukt met negatieve gegevens

      > sqrt (-1)
    [1] NaN
    Waarschuwingsbericht:
    In sqrt (-1): NaNs geproduceerd
     

    Box Cox

    R-code:

      box_cox <- functie (x, lambda) {
    
        eps <- 0.00001
        if (abs (lambda) < eps)
            logboek (x)
        anders
            (x ^ lambda - 1) / lambda
    
    }
     

    Voordelen: maakt geschaalde stroomtransformaties mogelijk

    Nadelen: lijdt aan problemen met nullen en negatieven (d.w.z. kan alleen positieve gegevens verwerken.

      > 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-code:

      yeo_johnson <- functie (x, lambda) {
    
        eps <- .000001
        not_neg <- welke (x > = 0)
        is_neg <- welke (x < 0)
    
        not_neg_trans <- functie (x, lambda) {
            if (abs (lambda) < eps) log (x + 1)
    anders ((x + 1) ^ lambda - 1) / lambda
        }
    
        neg_trans <- functie (x, lambda) {
            if (abs (lambda - 2) < eps) - log (-x + 1)
            anders - ((-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)
    
        terugkeer (x)
    
    }
     

    Voordelen: kan omgaan met positieve, nul en negatieve gegevens.

    Nadelen: Geen dat ik kan bedenken.Eigenschappen lijken erg op Box-Cox maar kunnen nul en negatieve gegevens aan.

      > yeo_johnson (0, lambda = 0)
    [1] 0
    > yeo_johnson (0, lambda = -0,5)
    [1] 0
    > yeo_johnson (-1, lambda = 0,5)
    [1] -1.218951
     
    Nadelen voor Yeo-Johnson: complexe, aparte transformatie voor positieven en negatieven en voor waarden aan weerszijden van lambda, magische afstemmingswaarde (epsilon; en wat is lambda?).Geen direct duidelijk voordeel vergeleken met de eenvoudigere negatief-uitgebreide logtransformatie die wordt weergegeven in het antwoord van Firebug, tenzij u geschaalde stroomtransformaties nodig hebt (zoals in Box-Cox).
    rolando2
    2014-02-01 08:37:06 UTC
    view on stackexchange narkive permalink

    Stel dat Y het bedrag is dat elke Amerikaan in een bepaald jaar uitgeeft aan een nieuwe auto (totale aankoopprijs). Y zal pieken op 0; zal helemaal geen waarden hebben tussen 0 en ongeveer 12.000; en zal andere waarden aannemen, meestal in de tienerjaren, twintig en dertig duizenden. Voorspellers zouden proxy's zijn voor het niveau van behoefte en / of interesse om een ​​dergelijke aankoop te doen. Behoefte of interesse kan nauwelijks als nul worden beschouwd voor individuen die geen aankoop hebben gedaan; op deze schaal zouden niet-kopers veel dichter bij de kopers staan ​​dan Y of zelfs het logboek van Y suggereert. In een geval als dit, maar in de gezondheidszorg, ontdekte ik dat de meest nauwkeurige voorspellingen, beoordeeld op basis van testset / trainingsset kruisvalidatie, werden verkregen door, in oplopende volgorde,

    1. Logistische regressie op een binaire versie van Y,
    2. OLS op Y,
    3. Ordinale regressie (PLUM) op Y opgedeeld in 5 categorieën (om kopers in 4 groepen van gelijke grootte te verdelen),
    4. Multinominale logistische regressie op Y opgeborgen in 5 categorieën,
    5. OLS op log (10) van Y (ik dacht er niet aan om de kubuswortel te proberen), en
    6. OLS op Y onderverdeeld in 5 categorieën.

    Sommigen zullen terugdeinzen voor deze categorisatie van een continu afhankelijke variabele. Maar hoewel het wat informatie opoffert, lijkt categorisering te helpen door een belangrijk onderliggend aspect van de situatie te herstellen - nogmaals, dat de "nullen" veel meer op de rest lijken dan Y zou aangeven.

    Je zou het ook in twee modellen kunnen splitsen: de kans om een ​​auto te kopen (binaire respons) en de waarde van de auto bij aankoop. Dit is de standaardpraktijk op veel gebieden, bijvoorbeeld verzekeringen, kredietrisico, enz.
    @HongOoi - kun je suggesties doen over wanneer deze benadering wel en niet van toepassing is?
    Christophe Bellégo
    2019-10-04 17:51:15 UTC
    view on stackexchange narkive permalink

    Om te verduidelijken hoe om te gaan met de log van nul in regressiemodellen, hebben we een pedagogisch document geschreven waarin de beste oplossing wordt uitgelegd en de veelgemaakte fouten die mensen in de praktijk maken. We kwamen ook met een nieuwe oplossing om dit probleem aan te pakken.

    U kunt de paper vinden door hier te klikken: https://ssrn.com/abstract=3444996

    Ten eerste denken we dat degenen zich moeten afvragen waarom ze een logboektransformatie gebruiken. In regressiemodellen leidt een log-log-relatie tot de identificatie van een elasticiteit. Inderdaad, als $ \ log (y) = \ beta \ log (x) + \ varepsilon $ , dan $ \ beta $ komt overeen met de elasticiteit van $ y $ tot $ x $ . De log kan ook een theoretisch model lineariseren. Het kan ook worden gebruikt om heteroskedasticiteit te verminderen. In de praktijk komt het echter vaak voor dat de in log opgenomen variabele niet-positieve waarden bevat.

    Een vaak voorgestelde oplossing bestaat erin een positieve constante c toe te voegen aan alle waarnemingen $ Y $ zodat $ Y + c > 0 $ . In tegenstelling tot lineaire regressies, log-lineair regressies zijn niet robuust voor lineaire transformatie van de afhankelijke variabele. Dit is te wijten aan de niet-lineaire aard van de logfunctie. Logboektransformatie wordt laag waarden en drukt hoge waarden uit. Daarom zal het toevoegen van een constante de (lineaire) relatie tussen nullen en andere waarnemingen in de gegevens. De omvang van de bias gegenereerd door de constante hangt eigenlijk af van het bereik van waarnemingen in de gegevens. Om die reden is het toevoegen van de kleinst mogelijke constante niet noodzakelijk de beste slechtste oplossing.

    In ons artikel geven we eigenlijk een voorbeeld waarbij het toevoegen van zeer kleine constanten in feite de hoogste vertekening oplevert. We bieden een uitdrukking van de vooringenomenheid.

    Eigenlijk kan Poisson Pseudo Maximum Likelihood (PPML) worden beschouwd als een goede oplossing voor dit probleem. Men moet het volgende proces overwegen:

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

    Dit proces wordt gemotiveerd door verschillende kenmerken. Ten eerste geeft het dezelfde interpretatie naar $ \ beta $ als een semi-log-model. Ten tweede biedt dit gegevensgenererende proces een logische rationalisatie van nulwaarden in de afhankelijke variabele. Deze situatie kan zich voordoen wanneer de multiplicatieve foutterm, $ a_i $ , is gelijk aan nul. Ten derde ondervindt het schatten van dit model met PPML niet de computationele moeilijkheid wanneer $ y_i = 0 $ . In de veronderstelling dat $ E (a_i | x_i) = 1 $ , hebben we $ E (y_i - \ exp (\ alpha + x_i '\ beta) | x_i) = 0 $ . We willen de kwadratische fout van dit moment minimaliseren, wat leidt tot de volgende eerste orde voorwaarden:

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

    Deze voorwaarden zijn zelfs gedefinieerd als $ y_i = 0 $ . Deze condities van de eerste orde zijn numeriek equivalent aan die van een Poisson-model, zodat ze kunnen worden geschat met elke standaard statistische software.

    Ten slotte stellen we een nieuwe oplossing voor die ook gemakkelijk te implementeren is en die een onpartijdige schatter biedt van $ \ beta $ . Je hoeft alleen maar te schatten:

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

    We laten zien dat deze schatter onbevooroordeeld is en dat deze eenvoudig kan worden geschat met GMM met elke standaard statistische software. Het kan bijvoorbeeld worden geschat door slechts één regel code uit te voeren met Stata.

    We hopen dat dit artikel kan helpen en we zouden graag feedback van u ontvangen.

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



    Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 2.0-licentie waaronder het wordt gedistribueerd.
    Loading...