Software tutorial/Transformation of data in a linear model
Jump to navigation
Jump to search
<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>