help(ToothGrowth) # información de conjunto de datos
with(ToothGrowth, table(supp, dose)) ; summary(ToothGrowth)
dose
supp 0.5 1 2
OJ 10 10 10
VC 10 10 10
len supp dose
Min. : 4.20 OJ:30 Min. :0.500
1st Qu.:13.07 VC:30 1st Qu.:0.500
Median :19.25 Median :1.000
Mean :18.81 Mean :1.167
3rd Qu.:25.27 3rd Qu.:2.000
Max. :33.90 Max. :2.000
Naranja = subset(ToothGrowth, supp="OJ")
VitC = subset(ToothGrowth, supp="VC")
by(Naranja$len, Naranja$dose, summary)
Naranja$dose: 0.5
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.200 7.225 9.850 10.605 12.250 21.500
---------------------------------------------------------
Naranja$dose: 1
Min. 1st Qu. Median Mean 3rd Qu. Max.
13.60 16.25 19.25 19.73 23.38 27.30
---------------------------------------------------------
Naranja$dose: 2
Min. 1st Qu. Median Mean 3rd Qu. Max.
18.50 23.52 25.95 26.10 27.82 33.90
by(VitC$len, VitC$dose, summary)
VitC$dose: 0.5
Min. 1st Qu. Median Mean 3rd Qu. Max.
4.200 7.225 9.850 10.605 12.250 21.500
---------------------------------------------------------
VitC$dose: 1
Min. 1st Qu. Median Mean 3rd Qu. Max.
13.60 16.25 19.25 19.73 23.38 27.30
---------------------------------------------------------
VitC$dose: 2
Min. 1st Qu. Median Mean 3rd Qu. Max.
18.50 23.52 25.95 26.10 27.82 33.90
hist(ToothGrowth$len, col=rainbow(7), freq=FALSE, main="Longitud de diente", xlab= "Dosis (mg/día)", ylab="Densidad") ; lines(density(ToothGrowth$len), col="brown", lwd=2)
boxplot(len ~ dose:supp, data = ToothGrowth, boxwex = 0.5, col = c("orange", "yellow"),
main = "Crecimiento de dientes en Cobayos", xlab = "Vitamin C, dosis en mg", ylab = "Longitud de diente", sep = ":", lex.order = TRUE, ylim = c(0, 35), yaxs = "i")
boxplot(ToothGrowth$len, main="Longitud de diente", xlab= "Dosis (mg/día)", horizontal=TRUE) # Tarea: intercambiar salida ambos boxplot
Vos intentá ejecutar este trozo (chunk) al dar clik en el botón Run sobre el mismo trozo o ubicando el cursor dentro de él, y luego presionás las teclas Ctrl+Shift+Enter.
with(ToothGrowth, plot(dose, len, pch=16, col=supp, main="Crecimiento de diente en cobayos"))
with(ToothGrowth, lines(lowess(dose, len), col=2)) # Agregás líneas de ajuste local
legend(1.5, 15, c("JugoNaranja","VitaminaC"), text.col=1:2) # Verificar colores
DientesCrec = ToothGrowth; DientesCrec$Dosis = as.numeric(DientesCrec$dose)
DientesCrec$Dosis2 <- DientesCrec$Dosis * DientesCrec$Dosis
ANVA = lm(len ~ supp+Dosis+Dosis2, data=DientesCrec); anova(ANVA)
Analysis of Variance Table
Response: len
Df Sum Sq Mean Sq F value Pr(>F)
supp 1 205.35 205.35 14.017 0.0004293 ***
Dosis 1 2224.30 2224.30 151.825 < 2.2e-16 ***
Dosis2 1 202.13 202.13 13.797 0.0004714 ***
Residuals 56 820.42 14.65
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
summary(ANVA)
Call:
lm(formula = len ~ supp + Dosis + Dosis2, data = DientesCrec)
Residuals:
Min 1Q Median 3Q Max
-7.085 -2.751 -0.800 2.446 9.650
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.6400 2.9094 -0.220 0.826690
suppVC -3.7000 0.9883 -3.744 0.000429 ***
Dosis 30.1550 5.5467 5.437 1.23e-06 ***
Dosis2 -7.9300 2.1349 -3.714 0.000471 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.828 on 56 degrees of freedom
Multiple R-squared: 0.7623, Adjusted R-squared: 0.7496
F-statistic: 59.88 on 3 and 56 DF, p-value: < 2.2e-16
Añadís un nuevo trozo al dar clik al botón Insert Chunk de la barra de herramientas o presionando las teclas Ctrl+Alt+I. Cuando vos salvás el documento, se guarda un archivo HTML conteniendo los códigos de programación junto con los resultados (para previsualizar el archivo HTML, le das clik al botón Preview o presionás las teclas Ctrl+Shift+K).
DFNaranja = subset(DientesCrec, supp=="OJ") # Extraer subconjunto por suplemento
DFVitC = subset(DientesCrec, supp=="VC") # DF para designar data.frame
modelo1 = lm(len ~ Dosis+Dosis2, data=DFNaranja) ; a = coef(modelo1)
modelo2 = lm(len ~ Dosis+Dosis2, data=DFVitC) ; b = coef(modelo2)
summary(modelo1) ; summary(modelo2)
Call:
lm(formula = len ~ Dosis + Dosis2, data = DFNaranja)
Residuals:
Min 1Q Median 3Q Max
-8.200 -3.045 0.340 2.950 8.270
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.433 3.975 -0.361 0.72120
Dosis 34.520 7.689 4.489 0.00012 ***
Dosis2 -10.387 2.960 -3.509 0.00159 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.752 on 27 degrees of freedom
Multiple R-squared: 0.6996, Adjusted R-squared: 0.6774
F-statistic: 31.44 on 2 and 27 DF, p-value: 8.887e-08
Call:
lm(formula = len ~ Dosis + Dosis2, data = DFVitC)
Residuals:
Min 1Q Median 3Q Max
-7.640 -2.248 -0.455 2.027 7.760
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -3.547 3.715 -0.955 0.3482
Dosis 25.790 7.186 3.589 0.0013 **
Dosis2 -5.473 2.766 -1.979 0.0581 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.507 on 27 degrees of freedom
Multiple R-squared: 0.8324, Adjusted R-squared: 0.82
F-statistic: 67.07 on 2 and 27 DF, p-value: 3.357e-11
plot(0, 0, xlim=c(0, 3), ylim=c(-5, 35), type="n", xlab="Dosis (mg/dia)", ylab="Longitud del diente") ; grid(col=4)
points(DientesCrec$Dosis, DientesCrec$len, col=as.numeric(DientesCrec$supp))
fNaranja = function(x) a[1] + a[2]*x + a[3]*x**2
fVitC = function(x) b[1] + b[2]*x + b[3]*x**2
curve(fNaranja, add=TRUE, col=2) ; grid(col=4); curve(fVitC, add=TRUE, col=1)
title("Modelo cuadrático: Crecimiento dientes por suplemento de Vitamina C")
#Tarea: Determinar las dosis donde alcanzan su maximo cada suplemento.
La previsualización te muestra una HTML interpretada (renderizada), con copia del contenido del editor. Por lo cual, a diferencia de Knit y Preview no corre trozo alguno de R, en lugar de esto, la salida del trozo mostrada, es la última corrida por el editor. Modelos: Descriptivos, ANVA y Regresión. ``