Generella linjära modeller Se hjälp (glm) för andra modelleringsalternativ. Se hjälp (familj) för andra tillåtna länkfunktioner för varje familj. Tre subtyper av generella linjära modeller kommer att omfattas här: logistisk regression, poissonregression och överlevnadsanalys. Logistisk regression Logistisk regression är användbar när du förutser ett binärt resultat från en uppsättning kontinuerliga prediktorvariabler. Det föredras ofta över diskriminerande funktionsanalys på grund av dess mindre restriktiva antaganden. Logistikregression där F är en binärfaktor och x1-x3 är kontinuerliga prediktorer passar lt - glm (Fx1x2x3, datamydata, familybinomial ()) sammanfattning (passande) displayresultat confint (fit) 95 CI för koefficienterna exp (coef (fit) Exponent variabel. Poisson Regression Poisson regression är användbar när man förutsäger en resultatvariabel som representerar räkningar från en uppsättning kontinuerliga prediktorvariabler. Poisson Regression där räkningen är ett tal och x1-x3 är kontinuerliga prediktorer passar lt - glm (räkna x1x2x3, datamydata, familypoisson ()) sammanfattning (passform) visningsresultat Om du har överdispersion (se om resterande avvikelse är mycket större än grader av frihet ), kanske du vill använda quasipoisson () istället för poisson (). Överlevnadsanalys Överlevnadsanalys (även kallad händelseshistorieanalys eller pålitlighetsanalys) täcker en uppsättning tekniker för att modellera tiden till en händelse. Uppgifterna kan vara korrekt censurerade - händelsen kan inte ha uppstått vid slutet av studien eller vi kan ha ofullständig information om en observation men vet att upp till en viss tid händelsen inte hade inträffat (t ex deltagaren släpptes ur studien i veckan 10 men levde vid den tiden). Medan generella linjära modeller analyseras typiskt med användning av glm () - funktionen utförs överlevnadsanalysen typiskt med användning av funktioner från överlevnadspaketet. Överlevnadspaketet kan hantera ett och två provproblem, parametriska accelererade felmodeller och Cox proportionella riskmodellen. Data anges typiskt i formatets starttid. stanna tiden . och status (1 gång förekom, 0event inträffade inte). Alternativt kan uppgifterna vara i formatet tid till händelse och status (händelse inträffade, 0event inträffade inte). En status0 indikerar att observationen är korrekt cencored. Data binds i ett Surv-objekt via Surv () - funktionen före ytterligare analyser. survfit () används för att uppskatta en överlevnadsfördelning för en eller flera grupper. Survdiff () test för skillnader i överlevnadsfördelningar mellan två eller flera grupper. coxph () modellerar riskfunktionen på en uppsättning av prediktorvariabler. Mayo Clinic Lungcancer Databibliotek (överlevnad) Lär dig om datasethjälpen (lung) skapa ett Surv-objekt överlevt med (lunga, Surv (tid, status)) Plot överlevnadsfördelning av det totala provet Kaplan-Meier estimat fit1 lt överlevnad (survobj 1, datalung) sammanfattning (fit0) plot (fit0, xlabquotSvivalentid i Dailyquot, ylabquot Survivingquot, yscale100, mainquotSurvival Distribution (Total) c) Jämför överlevnadsfördelningen hos män och kvinnor fit1 lt - survfit (survobj plot överlevnadsfördelningarna genom könsspalt (fit1, xlabquotSurvivalstid i Dailyquot, ylabquot Survivingquot, yscale100, colc (quotedquot, quotbluequot), mainquotSurvival Distributions by Genderquot) legenden (quottoprightquot, titlequotGenderquot, c (quotMalequot, quotFemalequot), fillc (quotedquot, quotbluequot)) test för skillnad mellan manliga och kvinnliga överlevnadskurvor (logrank test) survdiff (survobj förutsäga manlig överlevnad från ålder och medicinska poäng MaleMod lt-coxph (survobj ageph. ecogph. karnopat. karno, datalung, sub setsex1) visa resultat MaleMod utvärdera proportionella risker antagandet cox. zph (MaleMod) Se Thomas Lumleys R-nyhetsartikel om överlevnadspaketet för mer information. Andra bra källor inkluderar Mai Zhous Use R Software för att göra överlevnadsanalys och simulering och M. J. Crawleys kapitel om Survival Analysis. metoden som ska användas vid montering av modellen. Standardmetoden glm. fit använder iterativt reweighted least squares (IWLS): den alternativa modellen. ramen returnerar modellramen och passar inte. Användarlevererade monteringsfunktioner kan levereras antingen som en funktion eller en teckensträng som anger en funktion, med en funktion som tar samma argument som glm. fit. Om den anges som en teckensträng, såg den upp från innehållet i statistikens namnrymd. För glm. logiska värden som anger om svarvektorn och modellmatrisen som används i monteringsprocessen ska returneras som komponenter i returvärdet. För glm. fit. x är en designmatris av dimension n p. och y är en vektor av observationer av längd n. en valfri lista. Se contrasts. arg av model. matrix. default. För glm. Argument som ska användas för att bilda standardstyrningsargumentet om det inte levereras direkt. För vikter. Ytterligare argument överförs till eller från andra metoder. En typisk prediktor har formresponsvillkoren där svaret är den (numeriska) svarsvektorn och termer är en serie termer som anger en linjär prediktor för svar. För binomial - och kvasibinomialfamiljer kan svaret också anges som en faktor (när den första nivån betecknar misslyckande och alla andra framgångar) eller som en kolumn med två kolumner med kolumnerna som ger antalet framgångar och misslyckanden. En termerspecifikation av formen första sekunden indikerar alla termer i först tillsammans med alla termer i sekunden med några dubbletter borttagna. En specifikation av formen först: andra indikerar uppsättningen termer som erhållits genom att ta interaktionerna av alla termer i först med alla termer i andra. Specifikationen första sekundet indikerar korset av första och andra. Detta är detsamma som första sekundens första: andra. Villkoren i formeln kommer att omordnas så att huvudeffekterna kommer först, följt av interaktionerna, alla andra ordning, alla tredje ordning osv. För att undvika detta överför ett villkor objekt som formeln. Non-NULL-vikter kan användas för att indikera att olika observationer har olika dispersioner (med värdena i vikter som är omvända proportionella mot dispersionerna) eller likvärdigt, när viktelementen är positiva heltal wi. att varje svar yi är medelvärdet av wi-enhetens viktobservationer. För en binomial GLM används tidigare vikter för att ge antalet försök när svaret är andelen framgångar: de skulle sällan användas för en Poisson GLM. glm. fit är arbetshorsefunktionen: den kallas inte normalt direkt men kan vara effektivare där svarvektorn, designmatrisen och familjen redan har beräknats. Om mer än en av etastart. start och mustart anges, den första i listan kommer att användas. Det är ofta lämpligt att leverera startvärden för en kvasi-familj, och även för familjer med ovanliga länkar som gaussian (log). Alla vikter. delmängden. offset. etastart och mustart utvärderas på samma sätt som variabler i formel. Det är först i data och sedan i miljön med formel. För bakgrunden till varningsmeddelanden om lsquofitted sannolikheter numeriskt 0 eller 1 occurredrsquo för binomial GLMs, se Venables amp Ripley (2002, s. 197ndash8). glm returnerar ett objekt av klass som ärverger från glm som ärar från klassen lm. Se senare i det här avsnittet. Om en icke-standardmetod används, kommer föremålet även att ärva från klassen (om någon) returneras av den funktionen. Funktionssammanfattningen (dvs sammanfattande. glm) kan användas för att erhålla eller skriva ut en sammanfattning av resultaten och funktionen anova (dvs anova. glm) för att producera en analys av varians-tabell. Den generiska accessorfunktionen koefficienter. effekter. fitted. values and residuals kan användas för att extrahera olika användbara egenskaper av det värde som returneras av glm. vikter extraherar en vektor av vikter, en för varje fall i passformen (efter subsättning och na. action). Ett objekt av klassen glm är en lista som innehåller åtminstone följande komponenter: upp till en konstant minus två gånger den maximala logikelikeln. Därför är konstanten vald så att en mättad modell har avvikelse noll. En version av Akaikes En informationskriterium. minus två gånger den maximala loggbarheten plus två gånger antalet parametrar, beräknade av familjens aic-komponent. För binomial - och giftfamiljer är dispersionen fixerad vid ett och antalet parametrar är antalet koefficienter. För gaussian, gamma och inverse gaussiska familjer uppskattas dispersionen från restavvikelsen, och antalet parametrar är antalet koefficienter plus en. För en gaussisk familj används dispersionen MLE så det här är ett giltigt värde för AIC, men för Gamma och inverse gaussianer är det inte. För familjer utrustade med kvasi sannolikhet är värdet NA. Avvikelsen för nollmodellen, jämförbar med avvikelse. Nollmodellen kommer att innehålla förskjutningen, och en avlyssning om det finns en i modellen. Observera att detta kommer att vara felaktigt om länkfunktionen beror på data annat än genom det monterade medelvärdet: Ange en nollförskjutning för att tvinga en korrekt beräkning. antalet iterationer av IWLS som används. (i förekommande fall) information som returneras av modell. frame på den speciella hanteringen av NA s. Dessutom kommer icke-tomma passar att ha komponenter qr. R och effekter relaterade till slutvikten linjär passform. Objekt av klass glm är normalt i klass c (glm, lm). som ärar från klass lm. och väl utformade metoder för klass lm kommer att appliceras på den viktade linjära modellen vid den slutliga iterationen av IWLS. Men vård behövs, eftersom utdragsfunktioner för klassen glm, såsom rester och vikter, väljer inte bara komponenten av passformen med samma namn. Om en binomial glm-modell specificerades genom att ge ett svar på två kolumner, är vikterna som returneras av prior. weights det totala antalet fall (medräknade av de medföljande fallvikterna) och komponent y av resultatet är andelen framgångar. Monteringsfunktioner Argumentmetoden tjänar två syften. En är att låta modellramen återskapas utan att passa in. Den andra är att tillåta att standardfittingfunktionen glm. fit ersätts av en funktion som tar samma argument och använder en annan anpassningsalgoritm. Om glm. fit levereras som en teckensträng används den för att söka efter en funktion av det namnet, och börjar i statistikens namnrymd. Klassen av objektet som returneras av fitteren (om någon) kommer att läggas till klassen returnerad av glm. Den ursprungliga R-implementeringen av glm skrevs av Simon Davies som arbetar för Ross Ihaka vid University of Auckland, men har sedan länge omskrivits av medlemmar av R Core-laget. Designen inspirerades av S-funktionen med samma namn som beskrivs i Hastie amp Pregibon (1992). Referenser Dobson, A. J. (1990) En introduktion till generella linjära modeller. London: Chapman och Hall. Hastie, T. J. och Pregibon, D. (1992) Generalized linear models. Kapitel 6 av statistiska modeller i Seds J. M. Chambers och T. J. Hastie, Wadsworth amp BrooksCole. McCullagh P. och Nelder, J. A. (1989) Generalized Linear Models. London: Chapman och Hall. Venables, W. N. och Ripley, B. D. (2002) Modern Applied Statistics med S. New York: Springer. lm för icke-generaliserade linjära modeller (som SAS kallar GLM, för lsquogeneralrsquo linjära modeller). loglin och loglm (paketmass) för anpassning av loglinjära modeller (vilka binomial - och Poisson-GLM-er) till beredskapstabeller. bigglm i paket biglm för ett alternativt sätt att passa GLM till stora dataset (särskilt de med många fall). Generella linjära modeller i R, Del 1: Beräkna förutsägbar sannolikhet vid binär logistisk regression av David Lillis, Ph. D. Ordinära minsta kvadratregressionen ger linjära modeller av kontinuerliga variabler. Många data av intresse för statistiker och forskare är dock inte kontinuerliga och så måste andra metoder användas för att skapa användbara prediktiva modeller. Kommandot glm () är utformat för att utföra generella linjära modeller (regressioner) på binära utfallsdata, räkna data, sannolikhetsdata, proportionsdata och många andra datatyper. I det här blogginlägget undersöker vi användningen av Rs glm () kommandot på en sådan datatyp. Låt oss titta på ett enkelt exempel där vi modellerar binär data. I mtcars dataset anger variabeln vs, om en bil har en V-motor eller en rak motor. Vi vill skapa en modell som hjälper oss att förutsäga sannolikheten för ett fordon med en V-motor eller en rak motor med en vikt på 2100 lbs och motordrivning av 180 kubikmeter. Först passar vi på modellen: Vi använder funktionen glm (), inkluderar variablerna på vanligt sätt och specificerar en binomialfelfördelning enligt följande: Vi ser från bedömningarna av koefficienterna att viktinvolverna är positiva, medan förskjutningen har en något negativ effekt. Modellutgången skiljer sig något från en vanlig minsta kvadratmodell. Jag kommer att förklara produktionen mer i detalj i nästa artikel, men för nu kan vi fortsätta med våra beräkningar. Kom ihåg att vårt mål här är att beräkna en förutsedd sannolikhet för en V-motor, för specifika värden av prediktorerna: en vikt på 2100 lbs och motordrivning av 180 kubikcentimeter. För att göra det skapar vi en dataram som heter newdata, där vi inkluderar de önskade värdena för vår förutsägelse. Nu använder vi funktionen predict () för att beräkna den förutsagda sannolikheten. Vi inkluderar argumentet typ8221response8221 för att få vår förutsägelse. Den förutsagda sannolikheten är 0,24. Det var inte så svårt I vår nästa artikel. Jag kommer att förklara mer om produktionen vi fick från funktionen glm (). Om författaren: David Lillis har lärt R till många forskare och statistiker. Hans företag, Sigma Statistics and Research Limited. ger både online-instruktioner och ansikte mot ansikteverkstäder på R, och kodningstjänster i R. David har doktorsexamen i tillämpad statistik. Vill du lära dig Rs GLM-funktion I denna sex timmars verkstad. Du kommer lära dig hur du använder glm () för att ange logistiska probit-regressioner, poisson-negativa binomialregressioner och gamma-regressioner .. och inkludera alternativen specifika för var och en. Relaterade posterAs kan ses, var och en av de fem första valen har en tillhörande variansfunktion (för binomial binomialvarianen m (1 m)) och ett eller flera val av länkfunktioner (för binomial logit, probit eller komplementär logg - logga). Så länge du vill ha standardlänken är allt du behöver ange familjenamn. Om du vill ha en alternativ länk måste du lägga till ett länkargument. Till exempel för att göra probits använder du Den sista familjen på listan, quasi. finns för att tillåta anpassning av användardefinierade modeller med maximal sannolikhet. 5.2 Logistisk regression Vi ska illustrera passande logistiska regressionsmodeller med användning av data för användning av preventivmedel som visas nedan: Data finns tillgängliga från datasetavsnittet på webbplatsen för min generaliserade linjära modellkurs. Besök data. princeton. eduwws509datasets för att läsa en kort beskrivning och följ länken till cuse. dat. Naturligtvis kan data laddas ner direkt från R: Jag angav huvudparametern som TRUE. för annars hade det inte varit uppenbart att den första raden i filen har de variabla namnen. Det finns inga radnamn angivna, så raderna kommer numreras från 1 till 16. Skriv ut cuse för att försäkra dig om att uppgifterna är okej. Gör sedan det som standarddataset: Låt oss först prova en enkel tillsatsmodell där användning av preventivmedel beror på ålder, utbildning och vill. Mera: Det finns några saker att förklara här. Först kallas funktionen glm och jag har tilldelat sitt värde till ett objekt som heter lrfit (för logistisk regressionspassning). Funktionens första argument är en modellformel, som definierar svaret och den linjära prediktorn. Med binomialdata kan svaret vara antingen en vektor eller en matris med två kolumner. Om svaret är en vektor kan det vara numeriskt med 0 för fel och 1 för framgång eller en faktor med den första nivån som representerar quotfailurequot och alla andra som representerar quotsuccessquot. I dessa fall genererar R en vektor av de som representerar binomialbenämningarna. Alternativt kan svaret vara en matris där den första kolumnen är antalet quotsuccessesquot och den andra kolumnen är antalet quotfailuresquot. I detta fall lägger R samman de två kolumnerna för att producera rätt binomial nämnare. Eftersom det senare tillvägagångssättet klart är det rätta för oss, använde jag funktionsklyftorna för att skapa en matris genom att binda kolumnvektorerna som innehåller siffrorna som använder och inte använder preventivmedel. Efter den speciella symbolen som skiljer svaret från prediktorerna har vi en standard Wilkinson-Rogers modellformel. I det här fallet specificerar vi huvudinverkan av ålder, utbildning och vill. Mer. Eftersom alla tre prediktorer är kategoriska variabler, behandlas de automatiskt som faktorer, vilket du kan se genom att inspektera resultaten: Minns att R sorterar nivåerna av en faktor i alfabetisk ordning. Eftersom ålder. På samma sätt är hög referenscellen för utbildning eftersom hög kommer före låg. Slutligen valde R ingen som bas för vill. Mer. Om du är missnöjd med dessa val kan du (1) använda relevel för att ändra baskategori, eller (2) definiera dina egna indikatorvariabler. Jag kommer att använda den senare metoden genom att definiera indikatorer för kvinnor med hög utbildning och kvinnor som inte vill ha fler barn: Försök nu modellen igen: Den resterande avvikelsen 29,92 på 10 d. f. är mycket signifikant: så vi behöver en bättre modell. En av mina favoriter introducerar en växelverkan mellan ålder och lust för inga fler barn: Observera hur R byggt interaktionsvillkoren automatiskt och till och med kom med förnuftiga etiketter för dem. Modellerna avvikelse 12,63 på 7 d. f. är inte signifikant vid den konventionella femprocentnivån, så vi har inga bevis mot denna modell. För att få mer detaljerad information om detta passar, försöker sammanfattningsfunktionen: R följa den populära anpassningen att flagga signifikanta koefficienter med en, två eller tre stjärnor beroende på deras p-värden. Prova plot (lrfit). Du får samma tomter som i en linjär modell, men anpassad till en generaliserad linjär modell, till exempel är de restvärden som är avbildade avvikande rester (kvadratrot av bidrag från en observation till avvikelsen, med samma tecken som den råa resterande). Funktionerna som kan användas för att extrahera resultat från passformen inkluderar rester eller rester. för avvikelseresidenter monterade eller monterade. för de monterade värdena (uppskattade sannolikheter) förutsäger. för den linjära prediktorns (estimerade logits) coef eller koefficienter. för koefficienterna och avvikelsen. för avvikelsen. Några av dessa funktioner har valfria argument, till exempel kan du extrahera fem olika typer av rester, kallad quotdeviancequot, quotpearsonquot, quotresponsequot (response-fitted value), quotworkingquot (den arbetsberoende variabeln i IRLS-algoritmen - linjär prediktor) och quotpartialquot en matris av arbetsrester som bildas genom att utelämna varje term i modellen). Du anger den du vill använda typ argumentet, till exempel rester (lrfit, typequotpearsonquot). 5.3 Uppdatera modeller Om du vill modifiera en modell kan du överväga att använda specialfunktionsuppdateringen. Till exempel för att släppa åldern: nejMera interaktion i vår modell kan man använda Det första argumentet är resultatet av en passform och den andra en uppdateringsformel. Platshållaren skiljer svaret från prediktorerna och punkten. hänvisar till den högra sidan av den ursprungliga formeln, så här tar vi helt enkelt bort ålder: nejMer. Alternativt kan man ge en ny formel som det andra argumentet. Uppdateringsfunktionen kan användas för att passa samma modell till olika dataset, med hjälp av argumentdata för att ange en ny dataram. Ett annat användbart argument är delmängd. för att passa modellen till ett annat delprov. Denna funktion fungerar med linjära modeller samt generella linjära modeller. Om du planerar att passa en serie modeller hittar du anovafunktionen användbar. Med en serie nestade modeller kommer den att beräkna förändringen i avvikelse mellan dem. Försök Lägga till interaktionen har minskat avvikelsen med 17.288 på bekostnad av 3 d. f. Om argumentet för anova är en enda modell, kommer funktionen att visa förändringen i avvikelse erhållen genom att lägga till var och en av termerna i den ordning som anges i modellformeln, precis som den gjorde för linjära modeller. Eftersom detta kräver anpassning av så många modeller som det finns termer i formeln kan funktionen ta ett tag för att slutföra sina beräkningar. Med anova-funktionen kan du ange ett valfritt test. De vanliga valen kommer att vara F för linjära modeller och Chisq för generaliserade linjära modeller. Lägga till parametern testquotChisqquot lägger till p-värden bredvid deviances. I vårt fall kan vi se att alla termer var mycket signifikanta när de introducerades i modellen. 5.4 Modellval Ett mycket kraftfullt verktyg i R är en funktion för stegvis regression som har tre anmärkningsvärda egenskaper: Den fungerar med generaliserade linjära modeller, så det kommer att göra stegvis logistisk regression eller stegvis Poisson-regression. Det förstår om hierarkiska modeller, så det kommer att bara överväga att lägga till interaktioner först efter att ha inkluderat motsvarande huvudeffekter i modellerna, och förstår villkor som involverar mer än en grad av frihet, så det kommer att hålla samman dummyvariabler som representerar effekterna av en faktor. Den grundläggande tanken på förfarandet är att starta från en given modell (som kan vara nollmodellen) och ta en rad steg genom att antingen radera en term som redan finns i modellen eller lägga till en term från en lista med kandidater för inkludering, som kallas sökans omfattning och definieras av kurs, med en modell formel. Urval av villkor för radering eller inkludering baseras på Akaikes informationskriterium (AIC). R definierar AIC som ndash2 maximerad loggbarhet 2 antal parametrar (S-Plus definierar det som avvikelsen minus dubbelt så många parametrar i modellen. De två definitionerna skiljer sig med en konstant, så skillnaderna i AIC är desamma i de två Miljöer.) Proceduren stannar när AIC-kriteriet inte kan förbättras. I R görs allt detta arbete genom att ringa ett par funktioner, add1 och drop1. som överväger att lägga till eller släppa en term från en modell. Dessa funktioner kan vara mycket användbara vid modellval, och båda accepterar ett testargument precis som anova. Tänk på första drop1. För vår logistiska regressionsmodell kan vi helt klart inte släppa någon av dessa termer. Observera att R anser att det saknar huvudverkan av utbildningen och åldern genom att inte vilja ha mer interaktion, men undersökte inte de viktigaste effekterna av ålder eller vill inte mer, för att man inte skulle släppa dessa huvudverkningar samtidigt som interaktionen behöll. Systerfunktionen add1 kräver ett utrymme för att definiera de ytterligare villkor som ska beaktas. I vårt exempel kommer vi att överväga alla möjliga tvåfaktorinteraktioner: Vi ser att ingen av de saknade tvåfaktorinteraktionerna är signifikanta i sig själv på den konventionella fem procentenivån. (Men de råkar vara gemensamt betydande.) Observera att modellen med åldern genom utbildningssamverkan har en lägre AIC än vår startmodell. Stegfunktionen gör en automatisk sökning. Här låter vi det söka i ett räckvidd som definieras av alla tvåfaktorer: Stegfunktionen ger detaljerad spårning som vi har undertryckt. Det returnerade objektet innehåller emellertid en anova-komponent som sammanfattar sökningen: Som du kan se, introducerades det automatiserade förfarandet, en efter en, alla tre återstående tvåfaktorinteraktioner för att ge en slutlig AIC på 99,9. Detta är ett exempel där AIC, genom att kräva en avvikelseförbättring av endast 2 per parameter, kan ha lett till överfitting av data. Vissa analytiker föredrar en högre straff per parameter. I synnerhet använder du log (n) istället för 2 som multiplikator, BIC, Bayesian Information Criterion. I vårt exempel logg (1607) 7.38, så vi skulle kräva en avvikelse minskning av 7,38 per ytterligare parameter. Stegfunktionen accepterar k som ett argument, med standard 2. Du kan verifiera att den specifika klogen (1607) leder till en mycket enklare modell inte bara introduceras några nya interaktioner, men den huvudsakliga effekten av utbildning saknas (även om den är signifikant ). kopiera 2017 Germaacuten Rodriacuteguez, Princeton University
No comments:
Post a Comment