Sunteți pe pagina 1din 2

Function GruposChiCuadradoTotal(Observado As Range, Estimado As Range) As Double

Se declaran las variables Observado y Estimado como rangos de celdas


al definir la funcin personalizada.
Declaracin de variable Chi y matrices de frecuencias
Est (estimadas o esperadas) y de la muestra.
Dim chi As Double
Dim FrecEst() As Double
Dim FrecMuestra() As Double
Comprobacin de seleccin correcta del rango de datos observados
Por filas
filasobservado = Observado.Rows.Count
filasestimado = Estimado.Rows.Count
If filasobservado <> filasestimado Then
MsgBox Seleccin incorrecta
End If
Por columnas
ColumObservado = Observado.Columns.Count
ColumEstimado = Estimado.Columns.Count
If ColumObservado <> ColumEstimado Then
MsgBox Seleccin incorrecta
End If
Redimensin de matrices conocida su dimensin segn seleccin de datos hecha por
usuario
ReDim FrecEst(filasobservado)
ReDim FrecMuestra(filasestimado)
Inicializacin de las variables para contar cohortes o grupos de tamao 5
Dim grupo As Integer
grupo = 0
ultima = 0
contador = 0
Declaracin de matrices de frecuencias depuradas estimadas (esperados) y de
muestra.
Frecuencias que resultarn de reagrupar cohortes de tamao mnimo 5.
Dim FrecEstDep() As Double
Dim FrecMuestraDep() As Double
Asignacin inicial de los valores de Excel a las matrices de frecuencia
esperada (Estimada) y de la muestra (Observada). Esperados
ne = 0
For Each x In Estimado
ne = ne + 1
FrecEst(ne) = x.Value
Next x
Observados
no = 0
For Each x In Observado
no = no + 1
FrecMuestra(no) = x.Value
Next x
Agrupacin en grupos o cohortes de tamao mayor o igual a 5
Preparacin matriz de valores para posterior asignacin a la matriz
de frecuencias de grupos o cohortes de tamao vlido.
For i = 1 To filasobservado - 1
If FrecEst(i) < 5 Then
FrecEst(i + 1) = FrecEst(i) + FrecEst(i + 1)
FrecMuestra(i + 1) = FrecMuestra(i) + FrecMuestra(i + 1)
FrecEst(i) = 0
FrecMuestra(i) = 0
Else
grupo = grupo + 1
ultima = i
End If
Next i
If FrecEst(filasobservado) < 5 Then
FrecEst(ultima) = FrecEst(ultima) + FrecEst(filasobservado)
FrecMuestra(ultima) = FrecMuestra(ultima) + FrecMuestra(filasobservado)
FrecEst(filasobservado) = 0
FrecMuestra(filasobservado) = 0
Else
grupo = grupo + 1
End If
Control de tamao de la muestra inferior a 5, ningn grupo de 5.
If grupo = 0 Then
MsgBox No hay grupos de 5 o ms
GoTo final
End If
Asignacin del valor del estadstico calculado a la funcin ChiCuadradoTotal.
GruposChiCuadradoTotal = grupo
Inicializacin de las matrices de frecuencias
Erase FrecEst()
Erase FrecMuestra()
Erase FrecEstDep()
Erase FrecMuestraDep()
final:
End Function

S-ar putea să vă placă și