solucionario - introducción a la probabilidad y estadística mendenhall pdf
¿Qué significa la letra mayúscula "I" en la fórmula de regresión lineal R? (2)
From the docs:
La función I tiene dos usos principales.
- En la función data.frame. Proteger un objeto encerrándolo en I () en una llamada a data.frame inhibe la conversión de vectores de caracteres en factores y la eliminación de nombres, y garantiza que las matrices se inserten como columnas individuales. También se puede usar para proteger objetos que se agregarán a un marco de datos, o se convertirán en un marco de datos a través de as.data.frame.
Para abordar este punto:
df1 <- data.frame(stringi = I("dog"))
df2 <- data.frame(stringi = "dog")
str(df1)
str(df2)
- En la fórmula de la función. Allí se utiliza para inhibir la interpretación de operadores como "+", "-", "*" y "^" como operadores de fórmula, por lo que se utilizan como operadores aritméticos. Esto se interpreta como un símbolo por los términos. Fórmula.
Para abordar este punto:
lm(mpg ~ disp + drat, mtcars)
lm(mpg ~ I(disp + drat), mtcars)
Segunda linea. "Crea un nuevo predictor" que es la suma literal de disp + drat
No he podido encontrar una respuesta a esta pregunta, en gran parte porque buscar en Google con una letra independiente (como "I") causa problemas.
¿Qué hace el "yo" en un modelo como este?
data(rock)
lm(area~I(peri - mean(peri)), data = rock)
Teniendo en cuenta que lo siguiente NO funciona:
lm(area ~ (peri - mean(peri)), data = rock)
y que esto funciona:
rock$peri - mean(rock$peri)
Cualquier palabra clave sobre cómo investigar esto yo también sería muy útil.
Aíslo o aísla el contenido de I( ... )
de la mirada del código de análisis de la fórmula de R. Permite que los operadores R estándar funcionen como lo harían si los utilizara fuera de una fórmula, en lugar de ser tratado como operadores de fórmulas especiales.
Por ejemplo:
y ~ x + x^2
significaría, para R, "dame:
-
x
= el efecto principal dex
, y -
x^2
= el efecto principal y la interacción de segundo orden dex
",
no la x
deseada más x
-squared:
> model.frame( y ~ x + x^2, data = data.frame(x = rnorm(5), y = rnorm(5)))
y x
1 -1.4355144 -1.85374045
2 0.3620872 -0.07794607
3 -1.7590868 0.96856634
4 -0.3245440 0.18492596
5 -0.6515630 -1.37994358
Esto se debe a que ^
es un operador especial en una fórmula, como se describe en la ?formula
Usted termina incluyendo x
en el marco del modelo porque el efecto principal de x
ya está incluido en el término x
de la fórmula, y no hay nada con lo que cruzar x
para obtener las interacciones de segundo orden en el término x^2
.
Para obtener el operador habitual, debe usar I()
para aislar la llamada del código de fórmula:
> model.frame( y ~ x + I(x^2), data = data.frame(x = rnorm(5), y = rnorm(5)))
y x I(x^2)
1 -0.02881534 1.0865514 1.180593....
2 0.23252515 -0.7625449 0.581474....
3 -0.30120868 -0.8286625 0.686681....
4 -0.67761458 0.8344739 0.696346....
5 0.65522764 -0.9676520 0.936350....
(la última columna es correcta, solo se ve rara porque es de la clase AsIs
.)
En su ejemplo, cuando se usa en una fórmula, indicaría la eliminación de un término del modelo, donde lo desea -
tener el significado de resta del operador binario habitual:
> model.frame( y ~ x - mean(x), data = data.frame(x = rnorm(5), y = rnorm(5)))
Error in model.frame.default(y ~ x - mean(x), data = data.frame(x = rnorm(5), :
variable lengths differ (found for ''mean(x)'')
Esto falla por la razón de que mean(x)
es un vector de longitud 1 y model.frame()
le dice con razón que esto no coincide con la longitud de las otras variables. Un camino alrededor de esto es I()
:
> model.frame( y ~ I(x - mean(x)), data = data.frame(x = rnorm(5), y = rnorm(5)))
y I(x - mean(x))
1 1.1727063 1.142200....
2 -1.4798270 -0.66914....
3 -0.4303878 -0.28716....
4 -1.0516386 0.542774....
5 1.5225863 -0.72865....
Por lo tanto, cuando desee utilizar un operador que tenga un significado especial en una fórmula, pero necesite un significado que no sea una fórmula , debe ajustar los elementos de la operación en I( )
.
Lea la ?formula
para obtener más información sobre los operadores especiales, y ?I
para obtener más detalles sobre la función en sí misma y su otro caso de uso principal dentro de las tramas de datos (que es donde se AsIs
bit AsIs
, si está interesado).