Lineares Modell erstellen mit nicht normal verteilten Daten?

Alle Verfahren der Regressionanalyse.

Lineares Modell erstellen mit nicht normal verteilten Daten?

Beitragvon brus22 » Mi 23. Feb 2022, 11:31

Hallo,

für die Uni müssen wir ein lineares Modell erstellen das den Preis eines Fahrzeugs vorhersagt.

Dazu erhielten wir eine Datei mit mehreren Datensätzen.

Nachdem ich viel im Internet recherchiert habe, scheint es, dass die Aufgabenstellung falsch ist, oder es einfach keine Lösung gibt.

Der Grund ist, dass keine Variable auch nur annähernd normalverteilt ist und eine Normalverteilung ist die Voraussetzung um ein lineares Modell zu erstellen.

Wie kann die Aufgabe - ein lineares Modell zu erstellen, das den Preis eines Fahrzeugs vorhersagt - gelöst werden?
brus22
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Mi 23. Feb 2022, 11:23
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Lineares Modell erstellen mit nicht normal verteilten Da

Beitragvon PonderStibbons » Mi 23. Feb 2022, 11:55

Die Normalverteilung von Daten ist überhaupt keine Voraussetzung, um ein lineares Modell aufzustellen.

Gegebenenfalls kann das Thema "Normalverteilung" von Interesse sein, wenn es darum geht, ein lineares Modell inferenzstatistisch
zu testen. Dabei wäre aber keineswegs die Normalverteilung von Variablen von Belang, sondern allenfalls die Normalverteilung
der Vorhersagefehler des Modells. Aber auch das ist uninteressant, wenn die Stichprobengröße ausreichend ist (ab ca. n > 30).

Mit freundlichen Grüßen

PonderStibbons
PonderStibbons
Foren-Unterstützer
Foren-Unterstützer
 
Beiträge: 11362
Registriert: Sa 4. Jun 2011, 15:04
Wohnort: Ruhrgebiet
Danke gegeben: 51
Danke bekommen: 2501 mal in 2485 Posts

folgende User möchten sich bei PonderStibbons bedanken:
brus22, strukturmarionette

Re: Lineares Modell erstellen mit nicht normal verteilten Da

Beitragvon brus22 » Do 24. Feb 2022, 13:43

Hey PonderStibbons,

danke für die Antwort. Ich hatte das wohl falsch verstanden mit der Normalverteilung. Ich dachte, dass eine lineare Regression nur mit annähernd normalverteilten Daten möglich sind.

Ich wünschte ich wäre so gut wie du, bei 9990 Beiträgen bist du ein Experte.

Eine Frage habe ich noch und wollte dafür kein Extra Thema öffnen.

Nehmen wir an, ich habe 300 Datensätzen. 80% davon sind Fahrzeuge vom fueltype "Benzin" und die restlichen 20% vom fueltype "Diesel".

Wenn ich jetzt den Preis von einem neuen Fahrzeug, das vom fueltype "Benzin" ist, schätzen soll, wäre es dann besser wenn ich aus der Datei alle fueltype "Diesel" Fahrzeuge lösche bevor ich eine Preisvorhersage mache??
brus22
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Mi 23. Feb 2022, 11:23
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Lineares Modell erstellen mit nicht normal verteilten Da

Beitragvon bele » Do 24. Feb 2022, 15:09

Hallo brus,

brus22 hat geschrieben:Nehmen wir an, ich habe 300 Datensätzen. 80% davon sind Fahrzeuge vom fueltype "Benzin" und die restlichen 20% vom fueltype "Diesel".

Wenn ich jetzt den Preis von einem neuen Fahrzeug, das vom fueltype "Benzin" ist, schätzen soll, wäre es dann besser wenn ich aus der Datei alle fueltype "Diesel" Fahrzeuge lösche bevor ich eine Preisvorhersage mache??


Das kommt darauf an, welche anderen Variablen noch mit im Spiel sind. Wenn der Hubraum, die Anzahl der Türen und das Cabrio-Sein in die Vorhersage mit eingehen, dann gibt es zwei mögliche Aspekte: Um wieviel der Wert eines Autos steigt, weil es ein Cabrio ist, das kann man wahrscheinlich aus Benzin- und Diesel-Cabrios gleichermaßen lernen. Dann wäre es gut, möglichst alle Fahrzeuge im Datensatz zu haben, weil das Modell dann aus möglichst vielen Datensätzen lernen kann, wie groß so ein Cabrio-Aufschlag ist. Klarer Fall von nichts löschen. Wenn aber die 2-türigen Benziner alles Rennautos sind, die 2-türigen Diesel aber LKW-Zugmaschinen, dann willst Du ja für die Preisschätzung eines Rennautos keine Zugmaschinen berücksichtigen.

Als Daumenregel gilt: Möglichst viele Daten im Spiel lassen, damit das Modell von vielen Beobachtungen lernen kann aber ein Auge darauf halten, ob das zu unpassenden/unfairen Vergleichen führt.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5908
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1396 mal in 1382 Posts

folgende User möchten sich bei bele bedanken:
brus22

Re: Lineares Modell erstellen mit nicht normal verteilten Da

Beitragvon brus22 » Do 24. Feb 2022, 16:01

Danke für die Antwort,

in Bezug auf deine Antwort habe ich noch Fragen:

1. Sollte in R in die Funktion lm() jene Attribute reingepackt werden, damit das Gesamt-R2 so hoch wie möglich ist.
lm(price ~ .) beinhaltet dann z.B. Attribute mit p < 0,05 und Attribute mit einem cor-Wert annähernd Absolut 1.
So ist das korrekt oder?

2. Wenn jetzt z.B. der Typ Rennwagen automatisch den Preis um durchschnittlich 10.000 US-Dollar anheben und LKWs den Preis um 20.000 US Dollar anheben, könnte dann die endgültige Formel so aussehen?
price = 70 x horsepower + 10000 x racecar + 20000 x truck
brus22
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Mi 23. Feb 2022, 11:23
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Lineares Modell erstellen mit nicht normal verteilten Da

Beitragvon bele » Do 24. Feb 2022, 17:00

Hallo Brus,

brus22 hat geschrieben:1. Sollte in R in die Funktion lm() jene Attribute reingepackt werden, damit das Gesamt-R2 so hoch wie möglich ist.


Nein, das R^2 steigt mit jedem zusätzlichen Prädiktor, egal, ob dieser irgendeine echte Information einbringt. Auch die Quersumme der Ausweisnummer des Käufers verbessert aus Sicht des R^2 die Vorhersage der Autopreise. Trotzdem solltest Du die Quersumme der Ausweisnummer des Käufers möglichst nciht als Prädiktor im Modell haben.

Wenn überhaupt, solltest Du den Wert neuer Prädiktoren vom adjustierten, nie vom Gesamt-R^2 abhängig machen, aber auch das nicht stur und automatisiert. Wie einen eine stur automatisierte Prädiktorenauswahl zu falschen Schlüssen verführt habe ich hier mal vorgemacht: post50148.html?hilit=step#p50148

lm(price ~ .) beinhaltet dann z.B. Attribute mit p < 0,05 und Attribute mit einem cor-Wert annähernd Absolut 1.


Ich weiß nicht, ob ich die Frage verstehe. lm(price ~ ., data = ...) sagt die Spalte [i]price[/i] aus allen anderen Spalten des Dataframes voraus, ganz egal wie deren p-Wert oder deren Korrelation mit der abhängigen Variable ist.

2. Wenn jetzt z.B. der Typ Rennwagen automatisch den Preis um durchschnittlich 10.000 US-Dollar anheben und LKWs den Preis um 20.000 US Dollar anheben, könnte dann die endgültige Formel so aussehen?
price = 70 x horsepower + 10000 x racecar + 20000 x truck

Ja.

HTH,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5908
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1396 mal in 1382 Posts

folgende User möchten sich bei bele bedanken:
brus22

Re: Lineares Modell erstellen mit nicht normal verteilten Da

Beitragvon brus22 » Fr 25. Feb 2022, 15:31

Hallo bele,

danke für die Antwort. Ok, ich versuche nun ein Preisvorhersagemodell zu erstellen mithilfe von cor , R^2 , p und Eleminierung von Multikorrelinerarität.

Ich habe noch eine Frage :(

In dem Datenset über Fahrzeuge das mir zur Verfügung steht konnte ich erkennen, dass Fahrzeuge von bestimmten Marken (Luxusmarken wie AstonMartin) sehr hochpreisig sind.
Wenn ich nun mittels vif(model) mein Modell auf Multikorrelinearität überprüfe, wird mir als Wert 800 bei der Variable Marke angezeigt.

Variablen mit einem vif-Wert über 10 sollten entfernt werden.

Laut diverser Quellen, sollte ich Variablen die Multikorrelinearität aufweisen verwerfen.

Jetzt besteht das große Problem, dass ich den Preis eines Luxusfahrzeugs schätzen soll, der nur wegen der Marke einen deutlich höheren Preis aufweist.

Laut der Funktion vif() sollte ich die Variable Marke verwerfen. Mein Bauchgefühl sagt, dass ich die Variable unbedingt in das Preisvorhersagemodell einbeziehen soll.

Wie ist das zu bewerten? Wie könnte ich beweisen, dass die Variable Marke nicht verworfen werden soll?
brus22
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Mi 23. Feb 2022, 11:23
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Lineares Modell erstellen mit nicht normal verteilten Da

Beitragvon bele » Fr 25. Feb 2022, 16:16

Hallo brus,

das ist die Frage nach dem Sinn Deines Modells. Geht es um Inferenzstatistik (willst Du primär irgendwas mit p-Werten beweisen?) oder geht es um ein gut vorhersagendes Modell?
Multikollinearität ist, wenn das Modell nicht weiß, ob der Porsche 911 teuer ist, weil er viele PS hat oder weil er ein Porsche ist, weil sowohl alle Autos mit viel PS als auch alle Porsche teuer sind und keine Vergleichszahlen von Porsches mit wenig PS oder von Fiat Multipla mit hunderten PS vorliegen. Das Modell weiß also nicht, ob PS oder Porsche das relevante ist und gibt deshalb für beide enorme Unsicherheiten an, was zu "schlechten" p-Werten führt. Für die Vorhersage ist das nicht so wichtig, weil das Modell Dir irgendeine Koeffizientenkombination aus PS und Marke vorschlägt, die einigemaßen passt. Es gäbe halt noch viele andere Koeffizientenkombinationen, die fast genauso gut passen, weshalb ein p-Wert sich nicht festlegen kann.

Grundsätzlich ist "irgendeine" Kombination von Gewichtungen natürlich unbefriedigend und man könnte R sagen, dass es die hohen Preise von PS-starken Porsches einigermaßen gleichmäßig auf PS und Porsche verteilen soll. Dann weiß R wieder, was es zu tun hat und liefert trotz Multikollinearität stabile Werte, wenn auch ohne p-Wert. Man nennt das eine regularisierte Regression. Ein gutes Beispiel für dieses Vorgehen wäre die Ridge-Regression, die Du in R mit dem Paket glmnet durchführen kannst. Alternativ könntest Du in einer linearen Bayes-Regression das Ergebnis über eine Prior-Verteilung regularisieren, wenn Du selbst eine Vorgabe machen möchtest, was Dir als Mehrpreis eines Porsches plausibel erscheint. Das könntest Du in R mit dem Paket rstanarm machen. Sowohl glmnet als auch rstanarm erzeugen lineare Modelle, aber vielleicht ist für Deine Aufgabe vorgegeben, dass Du lm nutzen musst? Das kann nur schlichte OLS-Regression.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5908
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1396 mal in 1382 Posts

folgende User möchten sich bei bele bedanken:
brus22

Re: Lineares Modell erstellen mit nicht normal verteilten Da

Beitragvon brus22 » Fr 25. Feb 2022, 21:58

Hi bele,

tatsächlich geht es um ein gut vorhersagendes Modell. Es sollte u.a. mit der funktion lm() gearbeitet werden.

summary(model) zeigt anhand der Signifikanzcodes, dass die Variable brand (also Marke) speziell für die Ausprägung der Luxusmarken (darunter Auston Martin) sehr signifikant ist.

Im Gegensatz dazu meckert vif(modell), dass mit der variable brand eine sehr starke Multikollinearität herrscht und ich die Variable brand verwerfen soll.

Mein Bauchgefühl sagt, dass ich die Variable brand unbedingt mit einbeziehen sollte.

und man könnte R sagen, dass es die hohen Preise von PS-starken Porsches einigermaßen gleichmäßig auf PS und Porsche verteilen soll. Dann weiß R wieder, was es zu tun hat und liefert trotz Multikollinearität stabile Werte, wenn auch ohne p-Wert.

Ich habe einen guten p-Wert mit < 0,001 unter brand Ausprägung "Auston Martin", aber diese brand weist sehr starke Multikollinearität aus.

Sollte ich nun in mein Modell mit der Funktion lm() die die Variable brand hinzufügen, weil der vorhergesagte Preis des zu schätzenden Auston Martin Fahrzeugs realistischer ist oder nicht?

Wie lässt es sich am besten begründen, wieso die Empfehlung von vif() missacht wird?
brus22
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Mi 23. Feb 2022, 11:23
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Lineares Modell erstellen mit nicht normal verteilten Da

Beitragvon bele » Fr 25. Feb 2022, 22:57

1. vif empfiehlt nichts. Es berechnet etwas.
2. Zwei gute Antworten verstecken sich hier: https://corporatefinanceinstitute.com/r ... actor-vif/
3. Selbstverständlich bleibt brand im Modell.

LG, Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5908
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1396 mal in 1382 Posts

Nächste

Zurück zu Regressionanalyse

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 14 Gäste