How can I perform a power regression in R step-by-step?

A power regression is a statistical method used to model the relationship between two variables when the data follows a power law. In R, this can be performed by using the “lm” function with the argument “I(x^a)” to specify the power term. The following is a step-by-step guide on how to perform a power regression in R:

1. Load the required data into R using the “read.csv” or “read.table” function.
2. Use the “plot” function to visualize the data and determine if a power regression is appropriate.
3. If a power regression is appropriate, use the “lm” function to fit the model, specifying the power term as “I(x^a)” where “x” is the independent variable and “a” is the power.
4. Use the “summary” function to view the results of the regression and assess the goodness of fit.
5. Use the “predict” function to generate predicted values based on the fitted model.
6. Use the “plot” function to plot the observed data and the predicted values on the same graph for visual comparison.
7. Use the “anova” function to perform an analysis of variance to test the significance of the power term.
8. Use the “confint” function to calculate the confidence intervals for the parameters of the model.
9. Use the “step” function to perform a stepwise regression and select the most significant predictor variables.
10. Use the “summary” function again to view the results of the final model.
11. Use the “plot” function to plot the final model and assess its fit to the data.
12. Use the “predict” function again to generate new predicted values based on the final model.
13. Use the “anova” function again to test the significance of the final model.
14. Use the “confint” function again to calculate the confidence intervals for the final model parameters.
15. Use the “abline” function to add the regression line to the plot.
16. Use the “lines” function to add the confidence intervals to the plot.
17. Use the “legend” function to add a legend to the plot.
18. Save the final plot and results for further analysis and interpretation.

Perform Power Regression in R (Step-by-Step)


Power regression is a type of non-linear regression that takes on the following form:

y = axb

where:

  • y: The response variable
  • x: The predictor variable
  • a, b: The regression coefficients that describe the relationship between x and y

This type of regression is used to model situations where the is equal to the predictor variable raised to a power.

The following step-by-step example shows how to perform power regression for a given dataset in R.

Step 1: Create the Data

First, let’s create some fake data for two variables: x and y.

#create data
x=1:20
y=c(1, 8, 5, 7, 6, 20, 15, 19, 23, 37, 33, 38, 49, 50, 56, 52, 70, 89, 97, 115) 

Step 2: Visualize the Data

Next, let’s create a scatterplot to visualize the relationship between x and y:

#create scatterplot
plot(x, y)

From the plot we can see that there exists a clear power relationship between the two variables. Thus, it seems like a good idea to fit a power regression equation to the data instead of a linear regression model.

Step 3: Fit the Power Regression Model

Next, we’ll use the lm() function to fit a regression model to the data, specifying that R should use the log of the response variable and the log of the predictor variable when fitting the model:

#fit the model
model <- lm(log(y)~ log(x))

#view the output of the model
summary(model)

Call:
lm(formula = log(y) ~ log(x))

Residuals:
     Min       1Q   Median       3Q      Max 
-0.67014 -0.17190 -0.05341  0.16343  0.93186 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.15333    0.20332   0.754    0.461    
log(x)       1.43439    0.08996  15.945 4.62e-12 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3187 on 18 degrees of freedom
Multiple R-squared:  0.9339,	Adjusted R-squared:  0.9302 
F-statistic: 254.2 on 1 and 18 DF,  p-value: 4.619e-12

Using the coefficients from the output table, we can see that the fitted power regression equation is:

ln(y) = 0.15333 + 1.43439ln(x)

Applying e to both sides, we can rewrite the equation as:

  • y = e 0.15333 + 1.43439ln(x)
  • y = 1.1657x1.43439

We can use this equation to predict the response variable, y, based on the value of the predictor variable, x.

For example, if x = 12, then we would predict that y would be 41.167:

y = 1.1657(12)1.43439 = 41.167

Bonus: Feel free to use this online to automatically compute the power regression equation for a given predictor and response variable.

Additional Resources

x