Anda di halaman 1dari 6

' Este programa corre una regresion con comandos de matrices

' Fija numero de observaciones, regresores y valor cr�tico de tabla t

!n = 15 ' Numero de observaciones


!k = 3 ' Numero de regresores
!valcri=2.179 ' Valor critico de tabla t al 95% (dos
colas)

' Toma las variables del archivo de trabajo (workfile):tabla94.wf1

series x1 = idpp 'Variable independiente


series x2 = tiempo 'Variable independiente
series eye = gcpp 'Variable dependiente, (Y observado)

' Genera la matrix X

group xgrp c x1 x2 'Grupo de regresores, c es el intercepto


matrix x = @convert(xgrp) 'Matriz de regresores
'show x

' Calcula la matriz X'X

matrix xtx=@inner(x)
'show xtx

'Calcula la inversa del producto, X'X, y coloca en la matriz Z

sym z =@inverse(xtx)
'show z

'Calcula la transpuesta de X por el vector Y, (X'Y)

vector xty=@transpose(x)*@convert(yo)
'show xty

'Calcula los coeficientes

vector b = z *xty

' Coloca los residuos en el vector E


vector y = @convert(eye)
vector e = y-x*b

' Calcula la Suma de Residuos al Cuadrado(ETE), la desviacion estandar


' de la regresion(SIGMA2) y los coeficientes de la
' matriz de varianzas y covarianzas del vector beta(B).

vector yty=@transpose(y)*y
'show yty
vector ete=yty-@transpose(b)*xty
!ete=@inner(e)
!sigma2=!ete/(!n-!k)
sym lscova =!sigma2 * z
'show ete
'show lscova

' Hacer una tabla para mostrar el resultado de la desviacion standar de la '
regresion

Table (17,5) lstbs


'SetColWidth(lstbs, 1, 18)
'SetColWidth(lstbs, 5, 9)
!cline = 1
SetCell(lstbs, !cline, 1, "Desviacion Standar de la regresion :", "L")
!cline = !cline + 2
SetLine(lstbs, !cline)
!cline = !cline + 1
SetCell(lstbs, !cline, 1, "Sigma cuadrado =", "L")
SetCell(lstbs, !cline, 3, !sigma2, 6.4, "L")
!cline = !cline + 1
SetLine(lstbs, !cline)
'show lstbs

' Crea vectores para calcular : desviacion estandar(LSSE) ,


' T-estadisticos(LST) y probabilidades para los valores t(LSPROB)
' de los coeficientes (B)

vector (!k) lsse


vector (!k) lst
vector (!k) lsprob
for !count = 1 to !k
lsse(!count) = sqr(lscova(!count, !count))
lst(!count) = b(!count)/lsse(!count)
next
lsprob = @tdist(lst, !n-!k)
'show lsse
'show lst
'show lsprob
equation lseq.ls eye c x1 x2
'show lseq.ls

' C�lculo del coeficiente de determinaci�n

vector sec=@transpose(b)*xty 'Calculo de sec sin corr.


vector sec=sec(1)-!n*(@mean(eye))^2 'Calculo con correccion
vector stc =@inner(y)-!n*(@mean(eye))^2
'show sec
'show stc
vector r2=sec(1)/stc(1)
'show r2

' Calculo del coeficiente de determinaci�n ajustado

vector r2a=1-(1-r2(1))*(!n-1)/(!n-!k)
'show r2a

' Proporcione Usted los valores del vector de prediccion: x0


'****************************************************************
vector(3) x0
vector x0(1)=1
vector x0(2)=2610
vector x0(3)=16
'show x0

' Define los vectores para colocar los valores de la prediccion media e '
individual
vector(2) varyes 'Varianza de Y estimado
vector(2) seyes 'Desviacion estandar de Y estimado
vector(2) banda 'Amplitud del intervalo de confianza
vector(2) linf 'L�mite inferior
vector(2) lsup 'L�mite superior

' Calculo de la prediccion media o promedio

vector x0tzx0 =(@transpose(x0))*z*x0


'show x0tzx0
vector varyes(1)=!sigma2*x0tzx0(1)
vector seyes(1)=sqr(varyes(1))
'show varyes(1)
'show seyes(1)
!yest=c(1)+c(2)*x0(2)+c(3)*x0(3)
'show !yest
vector banda(1)=!valcri*seyes(1)
'show banda(1)
vector linf(1) =!yest-banda(1)
vector lsup(1)=!yest+banda(1)
'show linf(1)
'show lsup(1)

' Calculo de la prediccion individual

'show x0
vector x0tzx0 =(@transpose(x0))*z*x0
'show x0tzx0
vector varyes(2)=!sigma2*(1+x0tzx0(1))
vector seyes(2)=sqr(varyes(2))
'show varyes(2)
'show seyes(2)
!yest=c(1)+c(2)*x0(2)+c(3)*x0(3)
'show !yest
vector banda(2)=!valcri*seyes(2)
'show banda(2)
vector linf(2) =!yest-banda(2)
vector lsup(2)=!yest+banda(2)
'show linf(2)
'show lsup(2)

' Hacer una tabla para mostrar los resultados de la regresion

Table (17,5) lstbl


SetColWidth(lstbl, 1, 18)
SetColWidth(lstbl, 5, 9)
!cline = 1
SetCell(lstbl, !cline, 1, "Minimos Cuadrados Ordinarios", "L")
!cline = !cline + 1
SetCell(lstbl, !cline, 1, "Observaciones incluidas:", "L")
SetCell(lstbl, !cline, 3, !n, 4.0, "L")
!cline = !cline + 1
SetLine(lstbl, !cline)
!cline = !cline + 1

SetCell(lstbl, !cline, 1, "Variable", "C")


SetCell(lstbl, !cline, 2, "Coeficiente", "R")
SetCell(lstbl, !cline, 3, "Error Std.", "R")
SetCell(lstbl, !cline, 4, "T-Stadistico", "R")
SetCell(lstbl, !cline, 5, "Probabilidad ", "R")
!cline = !cline + 1
SetLine(lstbl, !cline)

for !1 = 1 to !k
SetCell(lstbl, !cline+!1, 1,!1 ,4.0,"C") ' Numero de variable
SetCell(lstbl, !cline+!1, 2, b(!1) ,-9, "R") ' Coeficiente
SetCell(lstbl, !cline+!1, 3, lsse(!1) ,-9, "R") ' Desviacion standar
SetCell(lstbl, !cline+!1, 4, lst(!1) ,-9, "R") ' t-stad�stico
SetCell(lstbl, !cline+!1, 5, lsprob(!1), 6.4, "R") ' t probabilidad
next
!cline = !cline + !k +1
SetLine(lstbl, !cline)
!cline = !cline + 1
SetCell(lstbl, !cline, 1, "R-Cuadrado", "L")
SetCell(lstbl, !cline, 2, 1-!ete/(@var(yo)*!n), 6.4, "R")
SetCell(lstbl, !cline, 3, "R-Cuadrado Ajustado", "L")
SetCell(lstbl, !cline, 5, r2a(1), 6.4, "R")
!cline = !cline + 1
SetCell(lstbl, !cline, 1, "Suma cuadrado de residuos", "L")
SetCell(lstbl, !cline, 3, !ete, 6.4, "R")
!cline = !cline + 1
SetLine(lstbl, !cline)
show lstbl

' Hacer una tabla para mostrar los resultados de la prediccion

Table (20,6) lstbp


'SetColWidth(lstbp, 1, 18)
'SetColWidth(lstbp, 5, 9)
!cline = 1
SetCell(lstbp, !cline, 1, "Resultados de la prediccion" , "L")
!cline = !cline + 1
SetCell(lstbp, !cline, 1, "Media o Promedio e individual", "L")
!cline = !cline + 1
SetLine(lstbp, !cline)
!cline = !cline + 1

SetCell(lstbp, !cline, 2, "Varianza Y est.", "R")


SetCell(lstbp, !cline, 3, "Des.Sta. Y est.", "R")
SetCell(lstbp, !cline, 4, "Amplitud", "R")
SetCell(lstbp, !cline, 5, "Lim inf. ", "R")
SetCell(lstbp, !cline, 6, "Lim Sup.", "R")
!cline = !cline + 1
SetLine(lstbp, !cline)

for !1 = 1 to !k-1
if !1=1 then
SetCell(lstbp, !cline+!1, 1, "Promedio ", "L ")
endif
if !1>1 then
SetCell(lstbp, !cline+!1, 1, "Individual", "L ")
endif
SetCell(lstbp, !cline+!1, 2, varyes(!1) ,-9,"R") ' Varianza Y est
SetCell(lstbp, !cline+!1, 3, seyes(!1) ,-9, "R") ' Desv.Stand.Y est
SetCell(lstbp, !cline+!1, 4, banda(!1) ,-9, "R") ' Amplitud
SetCell(lstbp, !cline+!1, 5, linf(!1) ,-9, "R") ' Valor critico inf.
SetCell(lstbp, !cline+!1, 6, lsup(!1), 6.4, "R") ' Valor critico sup.
next
!cline = !cline + !k +1
SetLine(lstbp, !cline)
!cline = !cline + 1
SetCell(lstbp, !cline, 1, "Y estimado", "L")
SetCell(lstbp, !cline, 2, !yest, -9, "R")
SetCell(lstbp, !cline, 4, "Producto X0TZX0 :", "L")
SetCell(lstbp, !cline, 6, x0tzx0(1), -9, "R")
!cline = !cline + 1
SetCell(lstbp, !cline, 1, "Vector de prediccion", "L")
SetCell(lstbp, !cline, 3, x0(1), -9, "R")
SetCell(lstbp, !cline, 4, x0(2), -9, "R")
SetCell(lstbp, !cline, 5, x0(3), -9, "R")
!cline = !cline + 1
SetLine(lstbp, !cline)

show lstbp

' Hacer una tabla para mostrar los resultados del analisis de varianza
vector(!k) sc
vector(!k) gl
Table (20,6) lstba
'SetColWidth(lstba, 1, 18)
'SetColWidth(lstba, 5, 9)
!cline = 1
SetCell(lstba, !cline, 1, "Analisis de Varianza" , "L")
!cline = !cline + 1
SetCell(lstba, !cline, 1, "ANOVA", "L")
!cline = !cline + 1
SetLine(lstba, !cline)
!cline = !cline + 1

SetCell(lstba, !cline, 1, "Fuente de Variacion", "L")


SetCell(lstba, !cline, 3, "Suma de C.", "R")
SetCell(lstba, !cline, 4, "Grados de L.", "L")
SetCell(lstba, !cline, 6, "S.M de Cuadrados ", "R")
!cline = !cline + 1
SetLine(lstba, !cline)

for !1 = 1 to !k
if !1=1 then
SetCell(lstba, !cline+!1, 1, "Debido a X2,X3 ", "L ")
vector gl(!1)=!k-1
vector sc(!1)=sec(1)
endif
if !1=2 then
SetCell(lstba, !cline+!1, 1, "Debido a los Residuos", "L ")
vector gl(!1)=!n-!k
vector sc(!1)=stc(1)-sec(1)
endif
if !1=3 then
SetCell(lstba, !cline+!1, 1, "Total ","L")
vector gl(!1)=!n-1
vector sc(!1)=stc(1)
endif
SetCell(lstba, !cline+!1, 3, sc(!1) ,6.4, "R") ' Suma de cuadra.
SetCell(lstba, !cline+!1, 4, gl(!1) ,6.4, "R") ' Grados de liber.
SetCell(lstba, !cline+!1, 6, sc(!1)/gl(!1) ,6.4, "R") ' Suma medio de cuad.
next
!cline = !cline + !k +1
SetLine(lstba, !cline)
!cline = !cline + 1
SetCell(lstba, !cline, 1, "F-Estadistico", "L")
SetCell(lstba, !cline, 3, (sc(1)/gl(1))/(sc(2)/gl(2)),"R")
!cline = !cline + 1
SetLine(lstba, !cline)

show lstba

Anda mungkin juga menyukai