Seite 2 von 2

Re: Mittel von Differenzen

Verfasst: Di Aug 11, 2020 10:35 pm
von bigben
zinbu hat geschrieben: Di Aug 11, 2020 9:19 pmHabt ihr noch einen Tipp wie ich die Werte dann wieder in ein geeignetes Format bekomme, sodass ich sie wieder in einer Tabelle den IDs zuordnen kann?
Wozu willst Du das machen? Aufgabenstellung war, die Steigungen der einen Gruppe mit den Steigungen der anderen Gruppe zu vergleichen. Du kannst meinen Vorschlag einmal auf die eine Gruppe und einmal auf die andere Gruppe anwenden und hast alle Daten für diesen Vergleich.
Wenn Du uns nach weiteren Auswertungsschritten fragen willst, oder die Situation doch komplizierter ist, dann bitte alle auf einmal auf den Tisch legen, damit wir von Anfang an eine gute Strategie verfolgen können, nicht immer wieder in kleinen Häppchen nachlegen. Das ist beliebt, stört aber eher.

LG,
Bernhard

Re: Mittel von Differenzen

Verfasst: Di Aug 11, 2020 10:58 pm
von zinbu
Ja stimmt du hast recht. Ich hatte nicht daran gedacht das ganze einfach 2 mal zu machen.
Zu viel um die Ecke gedacht. Danke für die Hilfe! :)

Re: Mittel von Differenzen

Verfasst: Mi Aug 12, 2020 5:39 am
von bigben
Im Zweifel sind zwei getrennte Durchgänge schonender für Deinen RAM.
LG, Bernhard

Re: Mittel von Differenzen

Verfasst: So Okt 18, 2020 9:02 pm
von zinbu
Hallo Bernhard,

ich habe mir mittlerweile mehr RAM besorgt und versuche das ganze nochmal mit der ersten Variante :) Um also nochmal auf deinen ersten Vorschlag zurückzukommen.
bigben hat geschrieben: Di Aug 11, 2020 3:56 pm Also, hier mal eine Beispiellösung. Ich habe eine Variable "time" dazu erfunden und manuell ergänzt. Sie zeigt an, wie oft eine ID schon gemessen wurde. Die Variable müsste man automatisch erzeugen, aber erstmal will ich hören, ob das so zum Problem passt:

Code: Alles auswählen

bsp <- data.frame(ID = as.factor(c(1, 1, 2, 2, 2, 2, 3, 3, 3)),
                 time = c(0, 1, 0, 1, 2, 3, 0, 1, 2),
                 score =c (13.2, 12.4, 14.7, 14, 13.2, 12.9, 13.6, 13, 12.3))
fit <- lm(score ~ ID:time + ID - 1, data = bsp)
summary(fit)
Das erzeugt für jede ID eine eigene Regressionsgerade mit einer eigenen Steigung und eine eigenen Intercept:

Code: Alles auswählen

> summary(fit)

Call:
lm(formula = score ~ ID:time + ID - 1, data = bsp)

Residuals:
       1        2        3        4        5        6        7        8        9 
 0.00000  0.00000  0.07000 -0.01000 -0.19000  0.13000 -0.01667  0.03333 -0.01667 

Coefficients:
         Estimate Std. Error t value Pr(>|t|)    
ID1      13.20000    0.14103  93.598 2.69e-06 ***
ID2      14.63000    0.11799 123.991 1.16e-06 ***
ID3      13.61667    0.12874 105.768 1.86e-06 ***
ID1:time -0.80000    0.19944  -4.011  0.02780 *  
ID2:time -0.62000    0.06307  -9.830  0.00224 ** 
ID3:time -0.65000    0.09972  -6.518  0.00734 ** 
Demnach wäre die durchschnittliche Zunahme von ID1 -0,8/Zeit, die von ID2 -0,62/Zeit und die von ID3 wäre -0,65/Zeit. Geht das in die richtige Richtung?

LG,
Bernhard
kann ich mir auch nur die Steigungen der Regressionsgeraden der einzelnen IDs ausgeben lassen? Diese möchte ich ja eigentlich vergleichen mit Mittelwerten und Graphen usw

Re: Mittel von Differenzen

Verfasst: So Okt 18, 2020 9:51 pm
von bigben
Hallo!

Ich verstehe die Frage nicht, denn die Steigungen der einzelnen IDs stehen schon da. Du musst sie nur noch abschreiben. Oder geht es vielleicht darum, wie man auf diese Werte ohne Abschreiben in R einfach weiterverwenden kann?

Dann empfehle ich aus dem Paket broom die Funktion tidy oder, wenn das Installieren von broom zuviel Aufwand macht, einfach die Funktion coef.

Code: Alles auswählen

library(broom)
tidy(fit)
LG,
Bernhard

PS: Als Grafik zu meinem o. g. Beispiel dann z. B. so:

Code: Alles auswählen

library(tidy)
library(ggplot2)
ggplot(tidy(fit)[4:6,]) +
  geom_errorbar(aes(x = term, 
                    ymin = estimate - 1.96*std.error,
                    ymax = estimate + 1.96*std.error), 
                width=.1, col="darkgrey", lwd=1.5) +
  geom_point(aes(x=term, y=estimate), size=4)

Re: Mittel von Differenzen

Verfasst: So Okt 18, 2020 10:54 pm
von zinbu
Genau darum geht es mir, ja. Mein Datensatz ist zu groß um alles abzuschreiben.

Ich werde mich mal mit tidy befassen, danke dir!

Re: Mittel von Differenzen

Verfasst: Mo Okt 19, 2020 6:50 am
von bigben
Sorry, ich sehe gerade den Tippfehler in meinem Code. Die Funktion heißt tidy aber das Paket heißt broom. Nicht auch tidy.

Bernhard