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