Función Suma de Cuadrado
sc<-function(x,y,z){
suma.cuadrado<-sum(c(x^2,y^2,z^2))
return(suma.cuadrado)
}
sc(2,3,4)
## [1] 29
Función Suma de Cuadrados y Promedio
calculo<-function(x,y,z,v){
if (v==1){
suma.cuadrado<-sum(c(x^2,y^2,z^2))
cat("Suma de Cuadrados =", suma.cuadrado)
} else
if(v==2){
promedio<-mean(c(x,y,z))
cat("Promedio =", promedio)
} else
print("Especifique correctamente el tipo de operación")
}
calculo(2,3,4,3)
## [1] "Especifique correctamente el tipo de operación"
resumen<-function(x,y,z,v){
suma <-sum(c(x,y,z))
suma.cuadrado <-sum(c(x^2,y^2,z^2))
suma.cubos<-sum(c(x^3,y^3,z^3))
promedio<-mean(c(x,y,z))
mediana <-median(c(x,y,z))
desviacion<-sd(c(x,y,z))
if (v==1){
cat("Sumatorias","\n")
cat("-----------------","\n")
cat("Suma =", suma,"\n",
"Suma de Cuadrados =", suma.cuadrado,"\n",
"Suma de Cubos =", suma.cubos)
} else
if(v==2){
cat("Medidas de Resumen","\n")
cat("-----------------------------","\n")
cat("Promedio =", promedio,"\n",
"Mediana =", mediana,"\n",
"Desviación Estándar =", desviacion)
} else
print("Especifique correctamente el tipo de operación")
}
resumen(2,3,3,2)
## Medidas de Resumen
## -----------------------------
## Promedio = 2.666667
## Mediana = 3
## Desviación Estándar = 0.5773503
Función Regresión
modelo<-lm(mpg~wt+qsec,data=mtcars)
summary(modelo)
##
## Call:
## lm(formula = mpg ~ wt + qsec, data = mtcars)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.3962 -2.1431 -0.2129 1.4915 5.7486
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 19.7462 5.2521 3.760 0.000765 ***
## wt -5.0480 0.4840 -10.430 2.52e-11 ***
## qsec 0.9292 0.2650 3.506 0.001500 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.596 on 29 degrees of freedom
## Multiple R-squared: 0.8264, Adjusted R-squared: 0.8144
## F-statistic: 69.03 on 2 and 29 DF, p-value: 9.395e-12
regresion<-function(X,Y){
n<-nrow(X)
k<-ncol(X)
Constante<-seq(1,1,length.out =n)
datos1<-data.frame(Constante,X)
X<-as.matrix(datos1)
Y<-as.matrix(Y)
XtX<-t(X)%*%X
XtX.inv<-solve(XtX)
XY<-t(X)%*%Y
Betas<-solve(t(X)%*%X)%*%(t(X)%*%Y)
B<-data.frame(Coeficientes=Betas)
B
}
Ingresamos los datos
y<-c(1.5,0.8,1.2,1.4,0.2,0.8,0.6,1.3,0.4,0.6)
x1<-c(8.4,3.3,5.8,10,4.7,7.7,4.5,8.6,5.9,6.3)
x2<-c(7.7,4.5,8.4,7.8,2.4,4.8,2.5,3.4,2,4.1)
datos<-data.frame(y,x1,x2)
datos
## y x1 x2
## 1 1.5 8.4 7.7
## 2 0.8 3.3 4.5
## 3 1.2 5.8 8.4
## 4 1.4 10.0 7.8
## 5 0.2 4.7 2.4
## 6 0.8 7.7 4.8
## 7 0.6 4.5 2.5
## 8 1.3 8.6 3.4
## 9 0.4 5.9 2.0
## 10 0.6 6.3 4.1
Aplicacion Función
regresion(datos[,2:3],datos[,1])
## Coeficientes
## Constante -0.21589662
## x1 0.08547343
## x2 0.11315334
head(mtcars)
## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
regresion(mtcars[,6:7],mtcars[,1])
## Coeficientes
## Constante 19.746223
## wt -5.047982
## qsec 0.929198
Función de Regresión 2
regresion2<-function(x,y){
n<-nrow(x)
k<-ncol(x)
Constante<-seq(1,1,length.out =n)
datos1<-data.frame(Constante,x)
X<-as.matrix(datos1)
Y<-as.matrix(y)
XtX<-t(X)%*%X
XtX.inv<-solve(XtX)
XY<-t(X)%*%Y
Betas<-solve(t(X)%*%X)%*%(t(X)%*%Y)
# Suma de Cuadrados
Syy<-t(Y)%*%Y-nrow(Y)*mean(Y)^2
SSE=t(Y)%*%Y - t(Betas)%*%XY
SSR<-t(Betas)%*%XY-nrow(Y)*mean(Y)^2
# Grados de libertad
gl1=k
gl2=nrow(Y)-(k+1)
# test para Betas
MSE=SSE/gl2
Varianzas<-as.vector(MSE)*diag(XtX.inv)
Desviaciones<-sqrt(Varianzas)
diagonal<-diag(Desviaciones,k+1,k+1)
t<-t(t(Betas)%*%solve(diagonal))
v.p<-2*pt(abs(t),gl2,lower.tail=FALSE)
estimaciones<-data.frame(Coeficientes=Betas,t_student = t,Valor_p=v.p)
estimaciones
}
regresion2(datos[,2:3],datos[,1])
## Coeficientes t_student Valor_p
## Constante -0.21589662 -0.8168669 0.44091504
## x1 0.08547343 1.9515857 0.09195252
## x2 0.11315334 2.9368347 0.02181120