Verfügbare Distanzmaße sind (geschrieben für zwei Vektoren x und y): Üblicher Abstand zwischen den beiden Vektoren (2 Norm aka L2), sqrt (Summe ((xi - yi) 2)). Maximaler Abstand zwischen zwei Komponenten von x und y (supremum norm) Absoluter Abstand zwischen den beiden Vektoren (1 Norm aka L1). Sum (xi - yi xi yi). Begriffe mit Nullzähler und Nenner werden aus der Summe weggelassen und behandelt, als ob die Werte fehlten. Dies ist für nicht-negative Werte (z. B. Zählungen) vorgesehen: wobei der Absolutwert des Nenners eine 1998 R-Modifikation ist, um negative Distanzen zu vermeiden. (Aka asymmetrische binäre): Die Vektoren werden als binäre Bits betrachtet, so dass Nicht-Null-Elemente sind lsquoonrsquo und null Elemente sind lsquooffrsquo. Der Abstand ist der Anteil der Bits, in denen sich nur einer unter denjenigen befindet, in denen mindestens einer ist. Die p-Norm, die p-Wurzel der Summe der p-ten Kräfte der Unterschiede der Komponenten. Fehlende Werte sind erlaubt und werden von allen Berechnungen ausgeschlossen, die die Zeilen betreffen, in denen sie auftreten. Weiterhin werden, wenn Inf-Werte beteiligt sind, alle Wertepaare ausgeschlossen, wenn ihr Beitrag zur Distanz NaN oder NA ergibt. Wenn einige Spalten bei der Berechnung eines Euklidischen, Manhattan-, Canberra - oder Minkowski-Abstandes ausgeschlossen sind, wird die Summe proportional zur Anzahl der verwendeten Spalten skaliert. Wenn alle Paare bei der Berechnung einer bestimmten Distanz ausgeschlossen sind, ist der Wert NA. Die Dist-Methode von as. matrix () und as. dist () kann für die Umwandlung zwischen Objekten der Klasse dist und konventionellen Distanzmatrizen verwendet werden. As. dist () ist eine generische Funktion. Die Standardmethode behandelt Objekte, die von der Klasse dist erben. Oder auf Matrizen mit as. matrix () coercible. Die Unterstützung von Klassen, die Distanzen darstellen (auch als Unähnlichkeiten bekannt), kann durch die Bereitstellung einer as. matrix () oder direkter einer as. dist-Methode für eine solche Klasse hinzugefügt werden. Dist gibt ein Objekt der Klasse dist zurück. Das untere Dreieck der Distanzmatrix, die durch Spalten in einem Vektor gespeichert ist, sagt man. Wenn n die Anzahl der Beobachtungen ist, d. h. n lt - attr (do, size). Dann für mich. Die Ungleichheit zwischen (Reihe) i und j ist Don (i-1) - i (i-1) 2 j-i. Die Länge des Vektors ist n (n-1) 2. D. h. der Ordnung n2. Das Objekt hat die folgenden Attribute (neben Klasse gleich dist): Integer, die Anzahl der Beobachtungen im Datensatz. Generalisierte Linearmodelle Siehe Hilfe (glm) für andere Modellierungsoptionen. Siehe Hilfe (Familie) für andere zulässige Link-Funktionen für jede Familie. Hier werden drei Subtypen von generalisierten linearen Modellen behandelt: logistische Regression, Poisson-Regression und Überlebensanalyse. Logistische Regression Logistische Regression ist nützlich, wenn Sie ein binäres Ergebnis aus einer Reihe von kontinuierlichen Prädiktorvariablen vorhersagen. Es wird häufig wegen diskriminierender Funktionsanalyse wegen seiner weniger restriktiven Annahmen bevorzugt. Logistische Regression, wobei F ein binärer Faktor ist und x1-x3 sind kontinuierliche prädiktoren passen lt-glm (F x1x2x3, datamydata, familybinomial ()) summary (fit) display results confint (fit) 95 cI für die koeffizienten exp (coef (fit) ) Exponentierte Koeffizienten exp (confint (fit)) 95 CI für exponentierte Koeffizienten prognostizieren (fit, typequotresponsequot) vorhergesagte Werte Residuen (fit, typequotdeviancequot) Residuen x, data mydata) wird die bedingte Dichteplot des binären Ergebnisses F auf dem kontinuierlichen x anzeigen Variable. Poisson Regression Poisson Regression ist nützlich bei der Vorhersage einer Outcome-Variable, die Zählungen aus einer Reihe von kontinuierlichen Prädiktor-Variablen. Poisson Regression wo Zählung ist ein Zähler und x1-x3 sind kontinuierliche Prädiktoren passen lt-glm (count x1x2x3, datamydata, familypoisson ()) Zusammenfassung (fit) Anzeige Ergebnisse Wenn Sie eine Überdispergierung haben (siehe, wenn Restabweichung ist viel größer als Freiheitsgrade ), Können Sie quasipoisson () anstelle von poisson () verwenden. Überlebensanalyse Die Überlebensanalyse (auch Ereignisverlaufsanalyse oder Zuverlässigkeitsanalyse genannt) umfasst eine Reihe von Techniken zur Modellierung der Zeit zu einem Ereignis. Die Daten können richtig zensiert werden - das Ereignis ist möglicherweise nicht bis zum Ende der Studie aufgetreten oder wir haben möglicherweise unvollständige Informationen über eine Beobachtung, aber wissen, dass bis zu einer bestimmten Zeit das Ereignis nicht aufgetreten ist (z. B. der Teilnehmer fiel aus der Studie in der Woche 10 war aber damals lebendig). Während generalisierte lineare Modelle typischerweise unter Verwendung der glm () - Funktion analysiert werden, wird die Überlebensanalyse typischerweise unter Verwendung von Funktionen aus dem Überlebenspaket durchgeführt. Das Überlebenspaket kann ein und zwei Stichprobenprobleme, parametrische beschleunigte Fehlermodelle und das Cox-Proportional-Gefahren-Modell behandeln. Daten werden typischerweise in die Formatstartzeit eingegeben. Zeit stoppen Und Status (1event aufgetreten, 0event nicht aufgetreten). Alternativ können die Daten im Format Zeit bis Ereignis und Status (1event aufgetreten, 0event nicht auftreten). Ein Status0 zeigt an, dass die Beobachtung richtig cencored ist. Die Daten werden vor der weiteren Analyse über die Surv () - Funktion in ein Surv-Objekt gebündelt. Survfit () wird verwendet, um eine Überlebensverteilung für eine oder mehrere Gruppen abzuschätzen. Survdiff () Tests für Unterschiede in den Überlebensverteilungen zwischen zwei oder mehr Gruppen. Coxph () modelliert die Gefahrenfunktion auf einer Reihe von Prädiktorvariablen. Mayo Clinic Lungenkrebs Datenbibliothek (Überleben) Erfahren Sie mehr über die Datensatz-Hilfe (Lunge) Erstellen eines Surv-Objekts survobj lt - mit (Lunge, Surv (Zeit, Status)) Überlebensverteilung der Gesamtprobe Kaplan-Meier Schätzer fit0 lt-survfit (Survobj 1, datalung) Zusammenfassung (fit0) plot (fit0, xlabquotSurvival Zeit in Daysquot, ylabquot Survivingquot, yscale100, mainquotSurvival Distribution (Gesamt) quot) Vergleichen Sie die Überlebensverteilungen von Männern und Frauen fit1 lt-survfit (survobj plot the survival distributions by Sex-Plot (fit1, xlabquotSurvival Zeit in Daysquot, ylabquot Survivingquot, yscale100, colc (quotredquot, quotbluequot), mainquotSurvival Distributionen nach Genderquot) Legende (quottoprightquot, titlequotGenderquot, c (quotMalequot, quotFemalequot), fillc (quotredquot, quotbluequot)) Test für Unterschied Zwischen männlichen und weiblichen Überlebenskurven (Logger-Test) survdd (survobj prognostizieren männlichen Überleben aus dem Alter und medizinischen Scores MaleMod lt-coxph (survobj ageph. ecogph. karnopat. karno, datalung, subsetsex1) Ergebnisse anzeigen MaleMod bewerten die proportionale Gefahren Annahme cox. zph (MaleMod) Siehe Thomas Lumleys R News Artikel über das Überlebenspaket für weitere Informationen. Weitere gute Quellen sind Mai Zhous Use R Software zu tun Survival-Analyse und Simulation und M. J. Crawleys Kapitel über Survival-Analyse. Zu praktizieren Alles, was als einfache Frage von Scott Chamberlain auf Twitter angefangen hat: Mxn-Matrix mit zufällig zugewiesenem 01 - gt gelten (m, c (1,2), Funktion (x) Probe (c (0,1), 1) ) - Betterfaster Lösung rstats Das Ziel war es, eine Matrix mit zufällig ausgewählten Binärelementen und einer vorgegebenen Anzahl von Zeilen und Spalten zu erstellen, 0160Das sieht so aus: Viele Vorschläge folgten (einschließlich einer von mir) .0160Es wurden mehrere verschiedene Möglichkeiten vorgeschlagen Der zufälligen Binärwerte zu erstellen: Verwenden Sie die Runif-Funktion, um Zufallszahlen zwischen 0 und 1 zu erstellen und auf die nächste ganze Zahl zu runden. Benutze ifelse am Ausgang von runif und ordne 0 zu, wenn it39s unter 0,5 und 1 sonst. Verwenden Sie die rbinom-Funktion, um aus einer Binomialverteilung mit einer Größe von 1 und einer Wahrscheinlichkeit abzutasten. 0,5 Verwenden Sie die Beispielfunktion mit der Option replaceTRUE, um die Auswahl von 0 und 1 zu simulieren. Es wurden auch verschiedene Möglichkeiten zur Erzeugung der Matrix vorgeschlagen: Verwenden Sie eine for-Schleife Füllen jedes Element der Matrix einzeln. Generieren Sie zufällige Zahlen Zeile für Zeile, und füllen Sie die Matrix mit Anwendung. Generieren Sie alle zufälligen Zahlen auf einmal und verwenden Sie die quotmatrix-Funktion, um die Matrix direkt zu erstellen. Luis Apiolaza beurteilt die vorgeschlagenen Methoden. Jeder hat seine Vorzüge: in der Klarheit des Codes, in Eleganz und vor allem in der Leistung. Auf dieser Front hat Dirk Eddelbuettel einige der Lösungen benchmarkiert, einschließlich der Übersetzung des Codes in C mit Rcpp. Ein überraschendes Ergebnis: Das Übersetzen des Problems in C ist nur etwas schneller als ein Anruf zu probieren. Wie Dirk sagt, zeigt dies, dass ein gut geschriebener 0160R-Code wettbewerbsfähig sein kann mit Maschinencode.0160
No comments:
Post a Comment