Ich habe ein seltsames Problem, wenn ich eine einfache lineare Anpassung für meine Daten in R und Excel-ähnliche Spreadsheet-Software z. Gnumeric Spreadsheet und WPS.Warum unterscheidet sich das Ergebnis einer linearen Anpassung in R und Excel (Gnumeric Spreadsheet und WPS) mit den gleichen kleinen Daten?
die unten aufgeführten Daten 19 Paare von x und y
93.37262737 56200
101.406044 62850
89.27322677 56425
86.9458042 43325
70.54645355 42775
85.1936032 38375
72.10985 38376
73.54055944 22950
78.092 15225
71.30285 12850
70.03953023 18125
66.31068931 14200
93.39847716 13925
66.09695152 13225
70.6549 18125
76.43348868 14125
71.37531234 14875
85.7953977 19275
95.65012506 45375
und wird in einer Datei mit dem Namen 'data.csv'
ich eine lineare Anpassung zwischen x und y gespeichert. R Skript ist unten:
data<-read.csv("data.csv",col.names=c("x","y"))
# plot data
plot(data$x,data$y)
#Fit
lmodelx<-lm(data$y~data$x)
abline(lmodelx)
summary(lmodelx)
, die dieses Ergebnis gibt:
Call:
lm(formula = data$y ~ data$x)
Residuals:
Min 1Q Median 3Q Max
-27855 -7151 -1314 6947 23014
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -48212.8 23691.0 -2.035 0.05876 .
data$x 963.5 296.8 3.246 0.00506 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 13240 on 16 degrees of freedom
Multiple R-squared: 0.3971, Adjusted R-squared: 0.3594
F-statistic: 10.54 on 1 and 16 DF, p-value: 0.005061
Sie können sehen, dass die Multiple R-Quadrat: 0,3971, Adjusted R-Quadrat: 0,3594, und die Koeffizienten für das Intercept sind -48212,8 und die Steigung beträgt 963,5342. Also lautet die Formel y = 963.5342 * x + -48212.8 und das korrigierte R-Quadrat (R2) ist 0.3594.
Aber wenn ich das Modell in Gnumeric Tabellenkalkulation passen das Ergebnis:
Welche sagt der Formel y sein sollte = 1052,88214782179 * x + -54588,8186095881 und R2 =
Wenn ich passt das Modell mit WPS spredsheet, das Ergebnis ist:
Das sagt auch die Formel y sein sollte = 1052.9x - 54589 und R2 = 0,44763
In Excel ist das Ergebnis:
Die Formel ist auch y = 1052.x - 54589 und R2 = 0,447.
So kommt die Frage, wie ein klar definierter Prozess wie eine solche einfache Anpassung in R anders sein kann als andere Software?
Da meiner Meinung nach diese kleinste quadratische Anpassung bereits definiert ist, warum macht R das anders?
Und was soll ich verwenden?
read.csv, hat header = TRUE als Standard. Der ursprüngliche Code verwendet also die erste Zeile von Daten als Spaltennamen, also die 1-Zeilen weniger Daten und ein anderes Regressionsmodell. – Dave2e
@ Dave2e ja es ist das Problem wenn ich es in header = FALSE ändere die Antwort ist richtig. Und es ist interessant zu finden, dass es scheint, dass alle diese Tabellenkalkulation Mehrfach-R-Quadrat verwenden, da R2 R2 nicht angepasst hat. – sikisis