 # Squared variable not in lm() output

Hi,
I have a following problem. I would like to add a variable^2 into OLS model in R. However, in the output the squared variable disappears.

See following simple code:

``````df <- data.frame(dep = c(20,203,404,502,304,24,25),
name = c("A","A","A","B","B","B","B" ) ,
indep = c(5,7,1,10,6,8,15))

formula = dep ~ indep + indep**2

summary(lm(formula, df))

Call:
lm(formula = formula, data = df)

Residuals:
1       2       3       4       5       6       7
-227.45  -15.02   97.70  328.12   71.27 -179.31  -75.31

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept)   321.02     163.22   1.967    0.106
indep         -14.71      19.31  -0.762    0.481

Residual standard error: 205.9 on 5 degrees of freedom
``````

How is it possible? I want to have estimates of indep, but also indep^2.

Thank you.

You need to use the `I()` function to perform arithmetic operations inside a formula.

``````df <- data.frame(dep = c(20, 203, 404, 502, 304, 24, 25),
name = c("A", "A", "A", "B", "B", "B", "B"),
indep = c(5, 7, 1, 10, 6, 8, 15))

formula <- dep ~ indep + I(indep**2)

summary(lm(formula, df))
#>
#> Call:
#> lm(formula = formula, data = df)
#>
#> Residuals:
#>       1       2       3       4       5       6       7
#> -226.01  -11.75   90.36  330.97   73.83 -175.75  -81.65
#>
#> Coefficients:
#>             Estimate Std. Error t value Pr(>|t|)
#> (Intercept) 331.6090   278.5549   1.190    0.300
#> indep       -18.1798    72.1788  -0.252    0.814
#> I(indep^2)    0.2122     4.2160   0.050    0.962
#>
#> Residual standard error: 230.2 on 4 degrees of freedom
#> Multiple R-squared:  0.1046, Adjusted R-squared:  -0.3431
#> F-statistic: 0.2336 on 2 and 4 DF,  p-value: 0.8018
``````

Created on 2020-06-30 by the reprex package (v0.3.0)

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.