Spørgsmål:
Regressionsanalyse til et massivt datasæt
yang1986
2012-11-21 14:25:15 UTC
view on stackexchange narkive permalink

Jeg har et massivt datasæt, der inkluderer omkring 5.000.000 point. Der er 4 uafhængige variabler og to stærkt korrelerede afhængige variabler.

Hvordan skal jeg lave regressionsanalysen?

@StephanKolassa har bedt mig om at lave et krydsvalideringseksperiment og bruge MAD som et mål for at vælge den bedste model blandt flere alternativer. Det er et meget flot forslag. Men problemet er, hvordan man får "flere alternative modeller"? hvilke metoder eller statistisk software anbefales? Tak!

Min uafhængige variabel er de interplanetære tilstandskomponenter, og den afhængige variabel er bredden af ​​den aurorale ovale grænse.

Indtil videre er det specifikke forhold stadig ukendt i det fysiske princip. Hvad vi ønsker at gøre er at få en model fra de massive data, der viser, hvordan disse uafhængige variabler påvirker den afhængige variabel.

Som jeg foreslået af @Stephan, med krydsvalideringsmetoden, vil jeg spørge om, hvilken model der passer bedst til dataene. Men hvordan bedømmer man, hvilken model der er bedst blandt de alternative modeller? ifølge regressorerne, R², RMSE, eller hvad?
Er dette tidsseriedata? Er det gyldigt at tro, at en regressionsmodel passer til alle dataene, eller ville det være mere fornuftigt at udføre regression på mindre blokke af punkter? Jeg spørger kun, for det er tilfældet med de data, jeg arbejder med.
NEJ, det er ikke tidsseriedata. Jeg ønsker at få en regressionsmodel, der passer til alle dataene. Problemet er, hvordan man bedømmer modellen?
@yang1986: Jeg redigerede mit svar for at foreslå, at du beregner MAD mellem forudsigelser og faktiske forhold i holdout-prøven. Hvis du foretager fem gange krydsvalidering, ender du med fem MAD'er for hver model, du prøver (en fra hver holdout-prøve). Bare gennemsnit dem, og du har en grand MAD pr. Model. Modellen med den laveste MAD ser bedst ud. Alternativer er Root Mean Squared Error osv.
Selvom du inkluderer alle interaktioner mellem IV'erne, vil regressionsanalysen kun involvere $ 16 $ -dimensionelle matricer (og deres koefficienter kan beregnes i en brøkdel af et sekund ved hjælp af kompileret kode og måske et minut på en fortolket platform som `R` : min maskine tager 16 sekunder i det enklere tilfælde uden interaktioner, og det er primært fordi `R` opretter og gemmer en kopi af dataene). Hvis du tilfældigt vælger et par tusinde observationer for regression, kan det være godt nok til at fortælle dig alt hvad du behøver at vide, før du bruger tid på at beregne med alle data.
Nu forstår jeg, mange tak for dit detaljerede svar. @StephanKolassa
Hvad er "interplanetære tilstandskomponenter"?Er de diskrete eller kontinuerlige?
To svar:
Stephan Kolassa
2012-11-21 16:10:27 UTC
view on stackexchange narkive permalink

Det vigtigste at huske på er, at med denne mængde data vil hver koefficient sandsynligvis komme ud som statistisk signifikant.

For at finde ud af hvilke regressorer der virkelig er vigtige (i modsætning til statistisk signifikant ), anbefaler jeg at bruge en holdout-prøve: Tilpas din model til kun 4 millioner datapunkter, forudsig de andre millioner point og sammenlign med de faktiske værdier. Gør dette for et par forskellige modeller (brug eller ikke brug af regressorer, transformerende regressorer osv.) Og se, hvilke der giver de bedste forudsigelser, f.eks. beregning af den gennemsnitlige absolutte afvigelse (MAD) mellem forudsigelserne og de faktiske observationer.

Endnu bedre: gentag dette over hele datasættet fem gange ved at bruge forskellige millioner point som en holdout-prøve hver gang. Dette er kendt som "krydsvalidering" (fem gange krydsvalidering i dette tilfælde).

+1 for det punkt, at computerkraft ikke er udfordringen her - bare problemerne med at oversætte statistisk slutning til store datasæt. (Jeg gav også +1 til @mpiktas; det tog kun omkring 40 sekunder at køre et simuleret eksempel på denne størrelse på min langt væk fra banebrydende bærbare computer).
Effekten af en variabel er på ingen måde garanteret at være signifikant, bare fordi du har mange observationer.
mpiktas
2012-11-21 14:42:11 UTC
view on stackexchange narkive permalink

Du har 6 variabler og 5 millioner datapunkter. Så dit datasæt tager cirka en halv gigabyte hukommelse ($ \ frac {5 \ cdot 10 ^ 6 \ cdot16} {1024 ^ 2} \ cdot 6 $). Så det er ikke så stort for computere, der nu normalt har 4 GB RAM som standard. Det punkt, jeg prøver at gøre, er, at selvom dine data er store, er de ikke massive, så du kan udføre sædvanlig regressionsanalyse.

kunne du skrive din formel i LaTeX? Da du kun har udvendige parener, ser det lige nu ud til, at du mener $ \ frac {5 * 10 ^ 6 * 16} {1024 ^ 2 * 6} $, hvilket ville være $ \ frac {80 * 10 ^ 6} {6.291.456} $ men jeg er ikke sikker på, om det var det, du mente.
Rettet det, original blev kopieret fra min R-konsol.
Haha, jeg læste spørgsmålet som $ 6 \ cdot 5 \ times10 ^ 9 $, og jeg læste dit svar og var som "det kan ikke være rigtigt, jeg skal teste det", så jeg prøvede `a <- runif (2000000000) `i R. Brugt 6 gig ram og yderligere 9 gig swap. Tænkte at kommentere noget, indtil jeg læste spørgsmålet igen. Heldigvis havde jeg ikke brug for min computer i den sidste halve time: D
Selvom jeg har haft problemer med datasæt med $ 25 \ cdot 1.2 \ gange 10 ^ 6 $ i 32 bit R før. Kan ikke huske nøjagtigt, hvad årsagen var, og har ikke længere en sådan maskine til at teste den på ...


Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...