Możemy użyć lm()
do przewidywania wartości, ale w niektórych przypadkach nadal potrzebujemy równania formuły wynikowej. Na przykład dodaj równanie do wykresów.
r
regression
lm
użytkownik27736
źródło
źródło
lm
a modele liniowe bardziej ogólnie, ale wcale nie jest jasne, czego dokładnie chcesz. Czy możesz podać przykład lub wyjaśnić? Czy to dla jakiegoś przedmiotu?coef()
dopasowanylm
obiekt, jak w:mod <- lm(y ~ x); coef(mod)
lm(y~x)$call
, wyświetli się formułay ~ x
. Jeśli masz na myśli coś innego, musisz być bardziej szczegółowy.Odpowiedzi:
Rozważ ten przykład:
Wydaje mi się, że pytanie brzmi, jak znaleźć równanie regresji na podstawie podsumowującego wyniku R. Algebraicznie równanie prostego modelu regresji jest następujące: Musimy tylko odwzorować dane wyjściowe na te warunki. To znaczy:
y^i=β^0+β^1xi+ε^iwhere ε∼N(0, σ^2)
summary.lm()
Estimate
wartość w(Intercept)
wierszu (konkretnie-0.00761
)Estimate
wartość wx
wierszu (konkretnie0.09156
)Residual standard error
(konkretnie0.8155
)Podłączenie ich w powyższe wyniki daje: Dla dokładniejszego przegląd, może chcesz przeczytać ten wątek: Interpretacja lm R w () wyjściowego .
y^i=−0.00761 + 0.09156xi + ε^iwhere ε∼N(0, 0.81552)
źródło
lm
i wygenerowała wyrażenie znakowe, takie jak „ ” odpowiednie dla takiego zadanie kreślenia (stąd moje wielokrotne wezwanie do wyjaśnienia, czego chcieli - co niestety nie zostało zrobione).Jeśli chcesz przewidzieć wyniki za pomocą wynikowego równania regresji, możesz zbudować równanie ręcznie, wpisując
summary(fit)
(jeśli Twoja analiza regresji jest przechowywanafit
na przykład w zmiennej o nazwie ) i patrząc na szacunki dla każdego współczynnika zawartego w twoim Model.Na przykład, jeśli masz prostą regresję typu , a otrzymasz oszacowanie przecięcia ( ) +0,5 i oszacowanie wpływu x na y ( ) z +1.6, można przewidzieć wynik y danej osoby na podstawie jej wyniku x, obliczając: .β 0 β 1 Y = 0,5 + 1,6 xy=β0+β1x+ϵ β0 β1 y^=0.5+1.6x
Jest to jednak trudna droga. R ma wbudowaną funkcję,
predict()
której można użyć do automatycznego obliczenia przewidywanych wartości na podstawie modelu dla dowolnego zestawu danych. Na przykład:predict(fit, newdata=data)
jeśli wyniki x, których chcesz użyć do przewidywania wyników y, są przechowywane w zmiennejdata
. (Zauważ, że aby zobaczyć przewidywane wyniki dla próbki, na której przeprowadzono regresję, możesz po prostu wpisaćfit$fitted
lubfitted(fit)
; te dadzą ci przewidywane, również dopasowane wartości.)źródło
Jeśli chcesz pokazać równanie, na przykład wyciąć / wkleić do dokumentu, ale nie chcesz kłopotać się złożeniem całego równania:
źródło
Opierając się na odpowiedzi keithpjolleya, zastępuje to znaki „+” stosowane w separatorze rzeczywistym znakiem współczynnika.
daje wynik
źródło