Jak przewidzieć pojedynczą wartość za pomocą modelu regresji w r
Aby dopasować model regresji liniowej w R, możemy użyć funkcji lm() , która wykorzystuje następującą składnię:
model <- lm(y ~ x1 + x2, data=df)
Możemy następnie użyć następującej składni, aby użyć modelu do przewidzenia pojedynczej wartości:
predict(model, newdata = new)
Poniższe przykłady pokazują, jak przewidzieć pojedynczą wartość za pomocą dopasowanych modeli regresji w R.
Przykład 1: Prognozuj za pomocą prostego modelu regresji liniowej
Poniższy kod pokazuje, jak dopasować prosty model regresji liniowej w R:
#create data df <- data. frame (x=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12), y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36)) #fit simple linear regression model model <- lm(y ~ x, data=df)
Możemy użyć następującego kodu, aby przewidzieć wartość odpowiedzi dla nowej obserwacji:
#define new observation new <- data. frame (x=c(5)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) 1 25.36364
Model przewiduje, że odpowiedź na tę nową obserwację będzie wynosić 25,36364 .
Przykład 2: Przewidywanie przy użyciu modelu wielokrotnej regresji liniowej
Poniższy kod pokazuje, jak dopasować model regresji liniowej w języku R:
#create data df <- data. frame (x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12), x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14), y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36)) #fit multiple linear regression model model <- lm(y ~ x1 + x2, data=df)
Możemy użyć następującego kodu, aby przewidzieć wartość odpowiedzi dla nowej obserwacji:
#define new observation new <- data.frame(x1=c(5), x2=c(10)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) 1 26.17073
Model przewiduje, że wartość odpowiedzi na tę nową obserwację wyniesie 26,17073 .
Potencjalne błędy przy przewidywaniu nowych wartości
Najczęstszym błędem, jaki możesz napotkać podczas próby przewidzenia nowej wartości, jest sytuacja, gdy zbiór danych użyty do dopasowania modelu regresji nie ma takich samych nazw kolumn jak nowa obserwacja, którą próbujesz przewidzieć .
Załóżmy na przykład, że dopasowujemy następujący model regresji liniowej w R:
#createdata df <- data. frame (x1=c(3, 4, 4, 5, 5, 6, 7, 8, 11, 12), x2=c(6, 6, 7, 7, 8, 9, 11, 13, 14, 14), y=c(22, 24, 24, 25, 25, 27, 29, 31, 32, 36)) #fit multiple linear regression model model <- lm(y ~ x1 + x2, data=df)
Następnie załóżmy, że próbujemy użyć modelu do przewidzenia wartości odpowiedzi dla tej nowej obserwacji:
#define new observation new <- data.frame(x_1=c(5), x_2=c(10)) #use the fitted model to predict the value for the new observation predict(model, newdata = new) Error in eval(predvars, data, env): object 'x1' not found
Otrzymaliśmy błąd, ponieważ nazwy kolumn nowej obserwacji (x_1, x_2) nie odpowiadają nazwom kolumn oryginalnej ramki danych (x1, x2), której użyliśmy do dopasowania modelu regresji.
Dodatkowe zasoby
Jak wykonać prostą regresję liniową w R
Jak wykonać wielokrotną regresję liniową w R
Jak utworzyć wykres rezydualny w R