R - Non-linear Effect Analysis

Card Puncher Data Processing

R - Non-linear Effect Analysis

About

Non-linear Analysis with R.

Prerequisites

Steps

Linear Model

Power

myFit=lm(outcome~predictor1 +I(predictor1^2),data.frame)
myFit

where:

  • the quadratic is indicated by the power 2 (predictor1^2)
  • As power has a meaning in this formula, the identity function (I) is used to protect it.
Call:
lm(formula = medv ~ predictor1   + I(predictor1^2), data = data.frame)

Coefficients:
(Intercept)   predictor1   I(predictor1 ^2)  
   42.86201     -2.33282            0.04355  

Poly function

A poly function in R is an easier way of fitting polynomials.

myFit=lm(outcome~poly(predictor,4))

where:

  • 4 is the degree

Summary

Summary Statistics

summary(myFit)
Call:
lm(formula = medv ~ predictor1   + I(predictor1^2), data = data.frame)

Residuals:
     Min       1Q   Median       3Q      Max 
-15.2834  -3.8313  -0.5295   2.3095  25.4148 

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)      42.862007   0.872084   49.15   <2e-16 ***
predictor1       -2.332821   0.123803  -18.84   <2e-16 ***
I(predictor1^2)   0.043547   0.003745   11.63   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 5.524 on 503 degrees of freedom
Multiple R-squared:  0.6407,	Adjusted R-squared:  0.6393 
F-statistic: 448.5 on 2 and 503 DF,  p-value: < 2.2e-16

Confidence Interval

Confidence Interval

confint(myFit)
2.5 %       97.5 %
(Intercept)    41.14863062  44.57538404
predictor1     -2.57605639  -2.08958581
I(predictor1^2) 0.03618883   0.05090495

Plot

# attach the variables. ie the named variables are available in our data space.
# It just makes it easier for making nice looking plots.
attach(data.frame)

# 1 frame, single plane layout
par(mfrow=c(1,1))

# Plot
plot(outcome~predictor)

Series of points

  • The fitted model can't be plotted with the function abline anymore, because that only works when you've got a straight line fit. It will be plotted as a series of points with the points function.
points(predictor,fitted(myFit),col="red",pch=20)

where:

  • the first argument is the predictor
  • the second argument are the fitted values from the model. fitted(myFit)
  • pch is the plotting character

It means for each value of predictor, shows the fitted value from the model.







Share this page:
Follow us:
Task Runner