logarithmische Regression

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

Antworten
saskia
Beiträge: 4
Registriert: Fr Okt 18, 2019 10:42 am

logarithmische Regression

Beitrag von saskia »

Guten Morgen,
ich bin totaler Anfänger in RStudio und soll anhand von Daten eine Funktion erstellen.
Meine Daten sind:

Fläche - Punkte
0,75 - 1
1,25 - 2
2,25 - 3
4 - 4
6,5 - 5
11,5 - 6
20 - 7
32,5 - 8
47,5 - 9
62,5 - 10
77,5 - 11
85 - 12
90 - 12
100 - 12

Die Tabelle ist so zu verstehen, dass man für 0,75 % der landwirtschaftlich genutzen Fläche 1 Punkt bekommt usw.
Ich soll nun aus diesen Daten eine kontinuierliche Funktion erstellen. In R habe ich die Daten bereits geplottet.

Jetzt ist meine Frage, wie ich daraus eine (logarithmische) Funktion erstellen kann?

Kann mir da vielleicht jemand helfen? Ich würde mich riesig über Antworten freuen.

Ganz liebe Grüße,
Saskia
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: logarithmische Regression

Beitrag von jogo »

Hallo Saskia,

willkommen im Forum!
Du hast die Daten schon eingelesen? Dann packe doch bitte den output von

Code: Alles auswählen

dput(DeinDataframe)
in Deine nächste Nachricht.
Formatiere den output passend
- siehe http://forum.r-statistik.de/viewtopic.php?f=20&t=29

Gruß, Jörg
saskia
Beiträge: 4
Registriert: Fr Okt 18, 2019 10:42 am

Re: logarithmische Regression

Beitrag von saskia »

Hallo Jörg,

vielen Dank für deine Antwort.
Ich hoffe, dass es so richtig ist?

Code: Alles auswählen

structure(list(Fläche = c(0.75, 1.25, 2.25, 4, 6.5, 11.5, 20, 
32.5, 47.5, 62.5, 77.5, 80), Punkte = c(1, 2, 3, 4, 5, 6, 7, 
8, 9, 10, 11, 12)), row.names = c(NA, -12L), class = c("tbl_df", 
"tbl", "data.frame"))
Viele Grüße,
Saskia
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: logarithmische Regression

Beitrag von bigben »

Hallo Saskia,

das "ä" in Fläche würde ich nicht nehmen. Kann funktionieren, kann irgendwann plötzlich schief gehen.

Hilft Dir folgendes?

Code: Alles auswählen

werte <- structure(list(Flaeche = c(0.75, 1.25, 2.25, 4, 6.5, 11.5, 20, 
                       32.5, 47.5, 62.5, 77.5, 85, 90, 100), Punkte = c(1L, 2L, 3L, 
                       4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 12L, 12L)), .Names = c("Flaeche", 
                       "Punkte"), class = "data.frame", row.names = c(NA, -14L))

plot(werte$Punkte, werte$Flaeche)

plot(werte$Punkte, log(werte$Flaeche))

modell <- lm(log(Flaeche) ~ Punkte, data = werte)
summary(modell)
plot(werte$Punkte, werte$Flaeche, xlab="Punkte", ylab="Fläche")
curve(exp(.4346*x - .3935), from = .5, to = 12, add = TRUE, col="blue")
text(9.5, 90, expression(e^{.4346*Punkte - .3935}), col="blue")
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
saskia
Beiträge: 4
Registriert: Fr Okt 18, 2019 10:42 am

Re: logarithmische Regression

Beitrag von saskia »

Moin Bernhard,

vielen, vielen Dank für deine Mühe.
Der Ansatz ist super. Ich habe jetzt probiert, die Variablen zu tauschen. Das Ziel ist nämlich, dass ich von der Fläche auf die Punkte schließen kann.
Ich bin leider kläglich gescheitert.
Hier mein Code (nicht wundern - ich habe die letzten drei Datenpaare rausgenommen, da es ab 85% der Fläche 12 Punkte gibt)

Code: Alles auswählen

werte <- structure(list(Flaeche = c(0.75, 1.25, 2.25, 4, 6.5, 11.5, 20, 
                                    32.5, 47.5, 62.5, 77.5), Punkte = c(1L, 2L, 3L, 
                                                                                     4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L)), .Names = c("Flaeche", 
                                                                                                                                                   "Punkte"), class = "data.frame", row.names = c(NA, -14L))
plot(werte$Flaeche, werte$Punkte)

plot(werte$Flaeche, log(werte$Punkte))

modell <- lm(log(Punkte) ~ Flaeche, data = werte)
summary(modell)
plot(werte$Flaeche, werte$Punkte, xlab="Fläche", ylab="Punkte")
curve(exp(0.02127*x + 1.0763), from = .5, to = 80, add = TRUE, col="blue")
Hast du eine Idee, welchen Fehler ich gemacht habe?

Ganz liebe Grüße und vielen Dank,
Saskia
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: logarithmische Regression

Beitrag von bigben »

Hallo Saskia,

der Zusammenhang log(Punkte) ~ Fläche ist nicht linear. Der Zusammenhang Punkte ~ log(Fläche) hingegen ist linear:

Code: Alles auswählen

plot(werte$Punkte ~ log(werte$Flaeche), xlab = "log(Fläche)", ylab="Punkte")
abline(lm( Punkte ~ log(Flaeche), data = werte), col="blue")
axis(3, at=log(c(1, 2, 5, 10, 20, 50, 100)), labels=c(1, 2, 5, 10, 20, 50, 100))
mtext("Fläche", 3, 2.5)
summary(lm( Punkte ~ log(Flaeche), data = werte))
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
saskia
Beiträge: 4
Registriert: Fr Okt 18, 2019 10:42 am

Re: logarithmische Regression

Beitrag von saskia »

Vielen, vielen Dank für Deine Hilfe!
Du hast mir echt den Tag gerettet :)
Ganz liebe Grüße,
Saskia
Antworten