Software tutorial/Transformation of data in a linear model

From Statistics for Engineering
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
← Testing a linear model in R (previous step) Tutorial index Next step: Investigating outliers, discrepancies and other influential points →


<rst> <rst-options: 'toc' = False/> <rst-options: 'reset-figures' = False/> This is shown by example for a few different types of transformations:

.. list-table::

  :widths: 15 10 30
  :header-rows: 1
  * - Description
    - Desired model
    - Formula function in R
  * - Fit only an intercept
    - :math:`y = b_0`
    - ``lm(y ~ 1)``  *the character is a "one"*
  * - Standard, univariate model
    - :math:`y = b_0 + b_1 x`
    - ``lm(y ~ x)``
  * - Force intercept to zero (check the degrees of freedom!)
    - :math:`y = b_1 x`
    - ``lm(y ~ x + 0)``
  * - Transformation of an :math:`x`  
    - :math:`y = b_0 + b_1\sqrt{x}`
    - ``lm(y ~ sqrt(x))``
  * - Transformation of :math:`y`
    - :math:`\log(y) = b_0 + b_1 x`
    - ``lm(log(y) ~ x)``
  * - Transformation of :math:`y`
    - :math:`100/y= b_0 + b_1 x`
    - ``lm(100/y ~ x)``
  * - Transformation of :math:`x`: **+, -, /, and ^ do not work on the right hand side!**
    - :math:`y= b_0 + \dfrac{b_1}{x}`
    - ``lm(y ~ 1/x)`` *will work, but is not doing what you expect*. It is fitting a model :math:`y = b_0`!! Be careful.
  * - Most transformations of :math:`x` must be wrapped in an AsIs ``I()`` operation:
    - :math:`y= b_0 + \dfrac{b_1}{x}`
    - ``lm(y ~ I(1/x))``  *will work as expected*
  * - Another use of the AsIs ``I()`` operation
    - :math:`y= b_0 + b_1 x^2`
    - ``lm(y ~ I(x^2))``
  * - Another use of the AsIs ``I()`` operation
    - :math:`y= b_0 + b_1 (x - \bar{x})`
    - ``lm(y ~ I(x - mean(x)))``

</rst>