Abhängigkeiten in R (Melanoma)

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
theDuchess

Abhängigkeiten in R (Melanoma)

Beitrag von theDuchess »

Guten Morgen Zusammen,

ich verzweifle hier langsam ein wenig... Wir müssen Aufgaben in R berechnen, vielleicht kennt ihr die Aufgaben ja, zum Datensatz "melanoma"...
Ich hab jedenfalls einigermaßen die ersten 4 Aufgaben hin bekommen (so halbwegs), aber für die letzten beiden, finde ich ich nicht die richtige Formel.
Und zwar soll bei der 5. Aufgaben mit einem geeigneten Verfahren bestimmt werden, ob die Überlebenszeit (time) vom Alter (age), Geschlecht (sex), Dicke des Tumors (thickness) und dem Vorhandenseins eines Geschwürs (ulcer) abhängt, dabei soll der Datensatz auf die Patienten mit dem Status 1 (am Melanom verstorben) eingeschränkt werden. Egal was ich probiere, ich bekomme rote Fehlermeldungen, ich weiß einfach nicht wie ich mehr als zwei Variable in einen Zusammenhang setzen kann...

Die Aufgabe 6 ist ähnlich, es soll bestimmt werden, ob das Überleben der Patienten nach der Operation (status = 1 oder 2) vom Alter (age), Geschlecht (sex), Dicke des Tumors (thickness) und dem Vorhandenseins eines Geschwürs (ulcer) abhängt, diesmal einschränken nach Status 1 (am Melanom verstorben) und 2 (lebt noch) ein.

Kann mir jemand weiterhelfen? Oder mich in die richtige richtung weisen...?

Liebe Grüße,
Duchess


Ps. hier nochmal alle Attribute:
time -> Überlebenszeit in Tagen nach der Operation
status -> Patientenstatus am Ende der Studie (Ende 1977):
1 – am Melanom verstorben
2 – lebt noch
3 – an einer anderen Ursache als dem Melanom verstorben
sex -> Geschlecht des Patienten:
0 – Frau
1 – Mann
age -> Alter des Patienten in Jahren zum Zeitpunkt der Operation
year -> Jahr, in dem die Operation durchgeführt worden ist
thickness -> Dicke des Tumors in mm
ulcer -> Liegt ein Geschwür vor:
0 – nein
1 – ja
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Abhängigkeiten in R (Melanoma)

Beitrag von jogo »

Hallo Duchess,

willkommen im Forum!
theDuchess hat geschrieben: Mi Dez 19, 2018 9:31 am ich verzweifle hier langsam ein wenig... Wir müssen Aufgaben in R berechnen, vielleicht kennt ihr die Aufgaben ja, zum Datensatz "melanoma"...
Nein, den kenne ich nicht. Deshalb habe ich etwas gegoogelt ... ist es dieser Datensatz:
https://stat.ethz.ch/R-manual/R-devel/l ... anoma.html
:?:

Zeig uns bitte, was Du bisher programmiert hast, und zeige auch die Fehlermeldungen :!:

Gruß, Jörg
theDuchess

Re: Abhängigkeiten in R (Melanoma)

Beitrag von theDuchess »

Hallo Jörg,

zunächst vielen Dank für die schnelle Antwort, da hab ich gar nicht mit gerechnet :)

Genau der Datensatz ist es, danke dass du dir sogar die Mühe gemacht hast danach zu googlen.
Also mein Code bisher:

install.packages("boot", dependencies=TRUE)
data(melanoma, package="boot")
get_all_vars(melanoma)

mean(melanoma$time) # Mittelwert
mean(melanoma$status)
mean(melanoma$sex)
mean(melanoma$age)
mean(melanoma$thickness)
mean(melanoma$ulcer)

var(melanoma$time) # Standardabweichung
var(melanoma$status)
var(melanoma$sex)
var(melanoma$age)
var(melanoma$thickness)
var(melanoma$ulcer)

median(melanoma$time) # Median
median(melanoma$status)
median(melanoma$sex)
median(melanoma$age)
median(melanoma$thickness)
median(melanoma$ulcer)

quantile(melanoma$time, probs =0.25) # unteres Quartil
quantile(melanoma$status, probs =0.25)
quantile(melanoma$sex, probs =0.25)
quantile(melanoma$age, probs =0.25)
quantile(melanoma$thickness, probs =0.25)
quantile(melanoma$ulcer, probs =0.25)

quantile(melanoma$time, probs =0.75) # oberes Quartil
quantile(melanoma$status, probs =0.75)
quantile(melanoma$sex, probs =0.75)
quantile(melanoma$age, probs =0.75)
quantile(melanoma$thickness, probs =0.75)
quantile(melanoma$ulcer, probs =0.75)

min(melanoma$time) # Minimum
min(melanoma$status)
min(melanoma$sex)
min(melanoma$age)
min(melanoma$thickness)
min(melanoma$ulcer)

max(melanoma$time) # Maximum
max(melanoma$status)
max(melanoma$sex)
max(melanoma$age)
max(melanoma$thickness)
max(melanoma$ulcer)

table(melanoma$time) # Häufigkeitsverteilungen
table(melanoma$status)
table(melanoma$sex)
table(melanoma$age)
table(melanoma$thickness)
table(melanoma$ulcer)

barplot(melanoma$age) # Aufgabe 2
plot(melanoma$age)
barplot(melanoma$thickness)
plot(melanoma$thickness)

plot(melanoma$time, melanoma$thickness) # Aufgabe 3
boxplot(melanoma$time, melanoma$thickness)
plot(time~thickness, data = melanoma[melanoma$status==1,])
boxplot(time~thickness, data = melanoma[melanoma$status==1,])


plot(melanoma$time, melanoma$sex) # Aufgabe 4
boxplot(melanoma$time, melanoma$sex)
boxplot(time~sex, data = melanoma[melanoma$status==1,])
plot(time~sex, data = melanoma[melanoma$status==1,])


plot(melanoma$time, melanoma$age, melanoma$sex, #Aufgabe 5
melanoma$thickness, melanoma$ulcer)
boxplot(time~sex~age~thickness, data = melanoma[melanoma$status==1,])
plot(time~sex, data = melanoma[melanoma$status==1,])


Und hier die Fehlermeldungen (nur von meinen Versuchen in Aufgabe 5)


>
>
> plot(melanoma$time, melanoma$sex, melanoma$ulcer) # Aufgabe 5
Error in plot.xy(xy, type, ...) : ungültiger Plottyp

> plot(melanoma$time, melanoma$sex, melanoma$ulcer) # Aufgabe 5
Error in plot.xy(xy, type, ...) : ungültiger Plottyp
> boxplot(time~sex~age~thickness, data = melanoma[melanoma$status==1,])
Error in model.frame.default(formula = time ~ sex ~ age ~ thickness, data = melanoma[melanoma$status == :
object is not a matrix
In addition: Warning messages:
1: In doTryCatch(return(expr), name, parentenv, handler) :
display list redraw incomplete
2: In doTryCatch(return(expr), name, parentenv, handler) :
display list redraw incomplete
> plot(melanoma$time, melanoma$sex, melanoma$ulcer)
Error in plot.xy(xy, type, ...) : ungültiger Plottyp
> boxplot(melanoma$time, melanoma$sex)
> boxplot(melanoma$time, melanoma$sex, melanome$ulcer)
Error in boxplot.default(melanoma$time, melanoma$sex, melanome$ulcer) :
object 'melanome' not found
> boxplot(melanoma$time, melanoma$sex, melanom$ulcer)
> boxplot(melanoma$time, melanoma$sex, melanoma$ulcer)
> boxplot(melanoma$time, melanoma$age, melanoma$sex, melanoma$thickness, melanoma$ulcer)
> plot(melanoma$time, melanoma$age, melanoma$sex, melanoma$thickness, melanoma$ulcer)
Error in plot.window(...) : ungültiger 'xlim' Wert
> barplot(melanoma$time, melanoma$age, melanoma$sex, melanoma$thickness, melanoma$ulcer)
> plot(melanoma$time, melanoma$age, melanoma$sex,
+ melanoma$thickness, melanoma$ulcer)
Error in plot.window(...) : ungültiger 'xlim' Wert



... :? ich muss aber zugeben, ich würde da jetzt nichts raus lesen können, ich hoffe ihr Profis erkennt daraus irgendwie mein Problem :shock:
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Abhängigkeiten in R (Melanoma)

Beitrag von jogo »

Hallo Duchess,
theDuchess hat geschrieben: Mi Dez 19, 2018 10:53 am Genau der Datensatz ist es, danke dass du dir sogar die Mühe gemacht hast danach zu googlen.
Also mein Code bisher:
...
einen merklichen Teil der Ergebnisse hättest Du auch mit

Code: Alles auswählen

data(melanoma, package="boot")
summary(melanoma)
generieren können.

Code: Alles auswählen

> plot(melanoma$time, melanoma$sex, melanoma$ulcer)       # Aufgabe 5
Error in plot.xy(xy, type, ...) : ungültiger Plottyp
Das ist klar, denn plot() kann nur xy-Diagramme.
Was möchtest Du denn erreichen?

Code: Alles auswählen

> boxplot(time~sex~age~thickness, data = melanoma[melanoma$status==1,])
Error in model.frame.default(formula = time ~ sex ~ age ~ thickness, data = melanoma[melanoma$status ==  : 
  object is not a matrix
In addition: Warning messages:
1: In doTryCatch(return(expr), name, parentenv, handler) :
  display list redraw incomplete
2: In doTryCatch(return(expr), name, parentenv, handler) :
  display list redraw incomplete
ich habe meine Zweifel, ob boxplot() so eine Formel akzeptier. Üblicherweise ist in den Formeln nur ein '~', z.B.

Code: Alles auswählen

boxplot(time~sex, data = melanoma[melanoma$status==1,])
Da boxplot(time~sex+age+thickness, data = melanoma[melanoma$status==1,]) zu unübersichtlich ist, soll eventuell für jede der Variablen auf der rechten Seite ein extra Boxplot erstellt werden - bezüglich age und thickness lässt sich kein Boxplot erstellen (es sind kontinuierliche Variablen).
... :? ich muss aber zugeben, ich würde da jetzt nichts raus lesen können, ich hoffe ihr Profis erkennt daraus irgendwie mein Problem :shock:
manchmal hilft es auch, sich die Beispiele zu den Funktionen anzusehen:

Code: Alles auswählen

example(boxplot)
Gruß, Jörg
p.s.:

Code: Alles auswählen

summary(aov(time ~ sex + age + year + thickness + ulcer, data=melanoma))
theDuchess

Re: Abhängigkeiten in R (Melanoma)

Beitrag von theDuchess »

Guten Morgen Jörg,

wie kann ich mir denn mehrere Boxplots nebeneinander aufrufen?

Ich hab angenommen, es gäbe ein Grafik, wo ich mehr als nur zwei Variablem vergleichen kann.
Also die Aufgabe lautet ja "Bestimmen Sie mit einem geeigneten Verfahren (ich dachte es müsse eine Grafik sein...?), ob die Überlebenszeit (time) vom Alter (age), Geschlecht (sex), Dicke des Tumors (thickness) und dem Vorhandenseins eines Geschwürs (ulcer) abhängt. Schränken Sie dazu den Datensatz wieder auf die Patienten mit dem Status 1 (am Melanom verstorben) ein."

Also wäre diese Aufgabe eher ein Vergleich zwischen verschiedenen Grafiken, zb. erst "time" und "sex" ins Verhältnis setzen, dann "time" und "ulcer", und als drittes "sex" und "ulcer"? Aber wenn ich age und thickness nicht in einem Boxplot darstellen kann, was hab ich denn dann für andere Möglichkeiten diese Aufgabe zu lösen, so dass alle Variablen betrachtet werden können? :?

Und ich hab "summary(aov(time ~ sex + age + year + thickness + ulcer, data=melanoma))" ausprobiert, aber verstehe nicht, was das Ergebnis aussagt... Was sagt mir Sum Sq, Mean Sq, Value und Pr(>)?


Df Sum Sq Mean Sq F value Pr(>F)
sex 1 5512308 5512308 6.893 0.00933 **
age 1 21927667 21927667 27.419 4.15e-07 ***
year 1 49409546 49409546 61.784 2.37e-13 ***
thickness 1 14647126 14647126 18.315 2.91e-05 ***
ulcer 1 6199316 6199316 7.752 0.00588 **
Residuals 199 159144146 799719

Viele Grüße,
Sarah
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Abhängigkeiten in R (Melanoma)

Beitrag von jogo »

Hallo Sarah,

Code: Alles auswählen

data(melanoma, package="boot")

par(mfcol=c(1,2))
boxplot(time~sex, data = melanoma[melanoma$status==1,])
boxplot(time~ulcer, data = melanoma[melanoma$status==1,])
...

Code: Alles auswählen

M <- melanoma[melanoma$status==1,]
par(mfcol=c(1,3))
plot(time ~ age, data=M)
plot(time ~ year, data=M)
plot(time ~ thickness, data=M)
Die Funktion aov() macht eine AnalysisOfVariances https://de.wikipedia.org/wiki/Varianzanalyse

Code: Alles auswählen

summary(aov(time ~ sex + age + year + thickness + ulcer, data=melanoma))
summary(aov(time ~ sex + age + year + thickness + ulcer, data=M))
Gruß, Jörg
p.s.:
Bitte verwende Formatierungen, siehe viewtopic.php?f=20&t=29
theDuchess

Re: Abhängigkeiten in R (Melanoma)

Beitrag von theDuchess »

Hallo Jörg,

vielen Dank für deine Hilfe, nun sieht es endlich nach etwas Gutem aus :D
Jetzt muss ich nur noch ein bisschen formatieren und Text verfassen, die letzte Aufgabe lasse ich jetzt weg, 5 von 6 ist ja schon fast komplett :geek:

Danke :)
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Abhängigkeiten in R (Melanoma)

Beitrag von jogo »

Hallo Sarah,
theDuchess hat geschrieben: Do Dez 20, 2018 7:14 pm ..., die letzte Aufgabe lasse ich jetzt weg, 5 von 6 ist ja schon fast komplett :geek:
Du meinst sowas?

Code: Alles auswählen

data(melanoma, package="boot")

summary(aov(status ~ age + sex + thickness + ulcer, data=subset(melanoma, status!=3)))
# oder
summary(aov(status ~ age + sex + thickness + ulcer, data=melanoma, subset=status!=3))
Gruß, Jörg
Antworten