Lectura de Datos

library(readxl)
pulgas=read_excel("C:/Users/Alumno/Desktop/baseTaller/pulgas.xlsx")
pulgas=data.frame(pulgas)
head(pulgas)
##    x1  x2  x3  x4                    Grupo
## 1 189 245 137 163 Especie Haltica Oleracea
## 2 192 260 132 217 Especie Haltica Oleracea
## 3 217 276 141 192 Especie Haltica Oleracea
## 4 221 299 142 213 Especie Haltica Oleracea
## 5 171 239 128 158 Especie Haltica Oleracea
## 6 192 262 147 173 Especie Haltica Oleracea

install.packages(“MVN”) Exploración de datos individuales

library(MVN)
## sROC 0.1-2 loaded
library(ggplot2)
ggplot(data = pulgas, aes(x = pulgas[,1], fill = pulgas[,5])) +
geom_histogram(position = "identity", alpha = 0.5)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

ggplot(data = pulgas, aes(x = pulgas[,2], fill = pulgas[,5])) +
geom_histogram(position = "identity", alpha = 0.5)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

ggplot(data = pulgas, aes(x = pulgas[,3], fill = pulgas[,5])) +
geom_histogram(position = "identity", alpha = 0.5)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

ggplot(data = pulgas, aes(x = pulgas[,4], fill = pulgas[,5])) +
geom_histogram(position = "identity", alpha = 0.5)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Criterios de variables que separan mejor Diagrama de dispersión

pairs(x = pulgas[1:4], col = c("firebrick", "green3")[pulgas[,5]],pch = 22)

create univariate Q-Q plots

mvn(data = pulgas[1:4], mvnTest = "royston", univariatePlot = "qqplot")

## $multivariateNormality
##      Test        H   p value MVN
## 1 Royston 4.191205 0.3790543 YES
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk    x1        0.9710    0.4021    YES   
## 2 Shapiro-Wilk    x2        0.9595    0.1714    YES   
## 3 Shapiro-Wilk    x3        0.9619    0.2066    YES   
## 4 Shapiro-Wilk    x4        0.9843    0.8510    YES   
## 
## $Descriptives
##     n     Mean  Std.Dev Median Min Max  25th  75th       Skew   Kurtosis
## x1 39 186.8205 14.03168    184 158 221 177.0 193.5  0.3790264 -0.1856496
## x2 39 279.2308 22.42116    278 237 317 262.5 299.0 -0.2462722 -1.0623505
## x3 39 147.5385 14.69845    146 121 184 137.5 161.0  0.3847308 -0.6784951
## x4 39 197.8974 18.48868    197 158 235 187.0 213.0 -0.1040536 -0.6351910

create univariate histograms

mvn(data = pulgas[1:4], mvnTest = "royston", univariatePlot = "histogram")

## $multivariateNormality
##      Test        H   p value MVN
## 1 Royston 4.191205 0.3790543 YES
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk    x1        0.9710    0.4021    YES   
## 2 Shapiro-Wilk    x2        0.9595    0.1714    YES   
## 3 Shapiro-Wilk    x3        0.9619    0.2066    YES   
## 4 Shapiro-Wilk    x4        0.9843    0.8510    YES   
## 
## $Descriptives
##     n     Mean  Std.Dev Median Min Max  25th  75th       Skew   Kurtosis
## x1 39 186.8205 14.03168    184 158 221 177.0 193.5  0.3790264 -0.1856496
## x2 39 279.2308 22.42116    278 237 317 262.5 299.0 -0.2462722 -1.0623505
## x3 39 147.5385 14.69845    146 121 184 137.5 161.0  0.3847308 -0.6784951
## x4 39 197.8974 18.48868    197 158 235 187.0 213.0 -0.1040536 -0.6351910

probando la normalidad install.packages(“MVN”)

library(MVN)
mvn(data = pulgas[,1:4], mvnTest = "mardia",univariatePlot = "qqplot")
## $multivariateNormality
##              Test        Statistic            p value Result
## 1 Mardia Skewness 14.5033549394537  0.804085904776078    YES
## 2 Mardia Kurtosis -2.1127725094963 0.0346202436872789     NO
## 3             MVN             <NA>               <NA>     NO
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk    x1        0.9710    0.4021    YES   
## 2 Shapiro-Wilk    x2        0.9595    0.1714    YES   
## 3 Shapiro-Wilk    x3        0.9619    0.2066    YES   
## 4 Shapiro-Wilk    x4        0.9843    0.8510    YES   
## 
## $Descriptives
##     n     Mean  Std.Dev Median Min Max  25th  75th       Skew   Kurtosis
## x1 39 186.8205 14.03168    184 158 221 177.0 193.5  0.3790264 -0.1856496
## x2 39 279.2308 22.42116    278 237 317 262.5 299.0 -0.2462722 -1.0623505
## x3 39 147.5385 14.69845    146 121 184 137.5 161.0  0.3847308 -0.6784951
## x4 39 197.8974 18.48868    197 158 235 187.0 213.0 -0.1040536 -0.6351910
mvn(data = pulgas[,1:4], mvnTest = "hz",univariatePlot = "qqplot")

## $multivariateNormality
##            Test       HZ   p value MVN
## 1 Henze-Zirkler 0.856282 0.1467007 YES
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk    x1        0.9710    0.4021    YES   
## 2 Shapiro-Wilk    x2        0.9595    0.1714    YES   
## 3 Shapiro-Wilk    x3        0.9619    0.2066    YES   
## 4 Shapiro-Wilk    x4        0.9843    0.8510    YES   
## 
## $Descriptives
##     n     Mean  Std.Dev Median Min Max  25th  75th       Skew   Kurtosis
## x1 39 186.8205 14.03168    184 158 221 177.0 193.5  0.3790264 -0.1856496
## x2 39 279.2308 22.42116    278 237 317 262.5 299.0 -0.2462722 -1.0623505
## x3 39 147.5385 14.69845    146 121 184 137.5 161.0  0.3847308 -0.6784951
## x4 39 197.8974 18.48868    197 158 235 187.0 213.0 -0.1040536 -0.6351910
mvn(data = pulgas[,1:4], mvnTest = "royston",univariatePlot = "qqplot")
## $multivariateNormality
##      Test        H   p value MVN
## 1 Royston 4.191205 0.3790543 YES
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk    x1        0.9710    0.4021    YES   
## 2 Shapiro-Wilk    x2        0.9595    0.1714    YES   
## 3 Shapiro-Wilk    x3        0.9619    0.2066    YES   
## 4 Shapiro-Wilk    x4        0.9843    0.8510    YES   
## 
## $Descriptives
##     n     Mean  Std.Dev Median Min Max  25th  75th       Skew   Kurtosis
## x1 39 186.8205 14.03168    184 158 221 177.0 193.5  0.3790264 -0.1856496
## x2 39 279.2308 22.42116    278 237 317 262.5 299.0 -0.2462722 -1.0623505
## x3 39 147.5385 14.69845    146 121 184 137.5 161.0  0.3847308 -0.6784951
## x4 39 197.8974 18.48868    197 158 235 187.0 213.0 -0.1040536 -0.6351910

Estudio de datos Perdidos

mvn(data = pulgas[,1:4], mvnTest = "mardia",multivariateOutlierMethod="adj")

## $multivariateNormality
##              Test        Statistic            p value Result
## 1 Mardia Skewness 14.5033549394537  0.804085904776078    YES
## 2 Mardia Kurtosis -2.1127725094963 0.0346202436872789     NO
## 3             MVN             <NA>               <NA>     NO
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk    x1        0.9710    0.4021    YES   
## 2 Shapiro-Wilk    x2        0.9595    0.1714    YES   
## 3 Shapiro-Wilk    x3        0.9619    0.2066    YES   
## 4 Shapiro-Wilk    x4        0.9843    0.8510    YES   
## 
## $Descriptives
##     n     Mean  Std.Dev Median Min Max  25th  75th       Skew   Kurtosis
## x1 39 186.8205 14.03168    184 158 221 177.0 193.5  0.3790264 -0.1856496
## x2 39 279.2308 22.42116    278 237 317 262.5 299.0 -0.2462722 -1.0623505
## x3 39 147.5385 14.69845    146 121 184 137.5 161.0  0.3847308 -0.6784951
## x4 39 197.8974 18.48868    197 158 235 187.0 213.0 -0.1040536 -0.6351910
mvn(data = pulgas[,1:4], mvnTest = "mardia",multivariatePlot="qq")

## $multivariateNormality
##              Test        Statistic            p value Result
## 1 Mardia Skewness 14.5033549394537  0.804085904776078    YES
## 2 Mardia Kurtosis -2.1127725094963 0.0346202436872789     NO
## 3             MVN             <NA>               <NA>     NO
## 
## $univariateNormality
##           Test  Variable Statistic   p value Normality
## 1 Shapiro-Wilk    x1        0.9710    0.4021    YES   
## 2 Shapiro-Wilk    x2        0.9595    0.1714    YES   
## 3 Shapiro-Wilk    x3        0.9619    0.2066    YES   
## 4 Shapiro-Wilk    x4        0.9843    0.8510    YES   
## 
## $Descriptives
##     n     Mean  Std.Dev Median Min Max  25th  75th       Skew   Kurtosis
## x1 39 186.8205 14.03168    184 158 221 177.0 193.5  0.3790264 -0.1856496
## x2 39 279.2308 22.42116    278 237 317 262.5 299.0 -0.2462722 -1.0623505
## x3 39 147.5385 14.69845    146 121 184 137.5 161.0  0.3847308 -0.6784951
## x4 39 197.8974 18.48868    197 158 235 187.0 213.0 -0.1040536 -0.6351910

test que contrastan la homogeneidad de varianza (boxM) COMPARACIÓN DE MATRICES DE COVARIANZAS install.packages(“biotools”)

library(biotools)
## Loading required package: rpanel
## Loading required package: tcltk
## Package `rpanel', version 1.1-4: type help(rpanel) for summary information
## Loading required package: tkrplot
## Loading required package: MASS
## Loading required package: lattice
## Loading required package: SpatialEpi
## Loading required package: sp
## ---
## biotools version 3.1
## 
boxM(pulgas[1:4],pulgas[,5])
## 
##  Box's M-test for Homogeneity of Covariance Matrices
## 
## data:  pulgas[1:4]
## Chi-Sq (approx.) = 8.7457, df = 10, p-value = 0.5564

Calculo del p-Value

qchisq(0.95,10,ncp=0,lower.tail = TRUE,log.p = FALSE)
## [1] 18.30704

MANOVA

mlm=lm(cbind(x1,x2,x3,x4) ~Grupo, data =pulgas)
mnova.m=manova(mlm)
summary(mnova.m)
##           Df  Pillai approx F num Df den Df    Pr(>F)    
## Grupo      1 0.78298   30.666      4     34 7.522e-11 ***
## Residuals 37                                             
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Por variables predictoras

summary.aov(mnova.m)
##  Response x1 :
##             Df Sum Sq Mean Sq F value    Pr(>F)    
## Grupo        1 2170.1 2170.06  15.116 0.0004049 ***
## Residuals   37 5311.7  143.56                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response x2 :
##             Df  Sum Sq Mean Sq F value    Pr(>F)    
## Grupo        1  5494.8  5494.8   14.94 0.0004326 ***
## Residuals   37 13608.1   367.8                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response x3 :
##             Df Sum Sq Mean Sq F value    Pr(>F)    
## Grupo        1 3832.1  3832.1  32.389 1.645e-06 ***
## Residuals   37 4377.6   118.3                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response x4 :
##             Df Sum Sq Mean Sq F value    Pr(>F)    
## Grupo        1 5290.9  5290.9  25.428 1.236e-05 ***
## Residuals   37 7698.7   208.1                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

TEST WILKS

summary(mnova.m,test="Wilks")
##           Df   Wilks approx F num Df den Df    Pr(>F)    
## Grupo      1 0.21702   30.666      4     34 7.522e-11 ***
## Residuals 37                                             
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
library(rrcov)
## Loading required package: robustbase
## Scalable Robust Estimators with High Breakdown Point (version 1.4-4)
Wilks.test(pulgas[,5]~pulgas[,1]+pulgas[,2]+pulgas[,3]+pulgas[,4], data = pulgas, method = "c")
## 
##  One-way MANOVA (Bartlett Chi2)
## 
## data:  x
## Wilks' Lambda = 0.21702, Chi2-Value = 53.471, DF = 4.000, p-value
## = 6.791e-11
## sample estimates:
##                            pulgas[, 1] pulgas[, 2] pulgas[, 3] pulgas[, 4]
## Especie Haltica  Carduorum    179.5500    290.8000    157.2000    209.2500
## Especie Haltica Oleracea      194.4737    267.0526    137.3684    185.9474

“c” para los estimadores estándar de la media y la varianza, “mcd” para los estimadores de MCD: Matriz de covarianzas de determinante mínimo “rank” para la lambda de wilks de rango ================================================================ COV. DIFERENTES è CUADRÁTICA

x1=pulgas[pulgas[5]=="Especie Haltica Oleracea",]
x2=pulgas[pulgas[5]=="Especie Haltica Carduorum",]
n1=length(x1[,1])
n2=length(x2[,1])

Medias Muestrales

mx1=colMeans(x1[1:4])
mx2=colMeans(x2[1:4])

Matrices de Covarianza Muestral

s1=cov(x1[1:4])
s2=cov(x2[1:4])

Covariansas Conjuntas

s=((n1-1)*s1+(n2-1)*s2)/(n1+n2-2)
lev=levels(pulgas[,5])
nom1=lev[1]
nom2=lev[2]
vo=data.frame(var=names(pulgas[1:4]),m1=t(t(mx1)%*%solve(s)),m2=t(t(mx2)%*%solve(s)))
names(vo)=c("var",nom1,nom2)
vo
##    var NA  NA
## x1  x1 NA NaN
## x2  x2 NA NaN
## x3  x3 NA NaN
## x4  x4 NA NaN

Función Discrimínate

modd=(t(mx1-mx2)%*%solve(s))

Constante

cst=-1/2*t(mx1-mx2)%*%solve(s)%*%(mx1+mx2)

Modelo de Clasificación

md1=paste(round(modd,2),names(pulgas[1:4]),sep="")
paste("W(x)=",md1[1],"+",md1[2],"+",md1[3],"+",md1[4],"+",round(cst[1],2))
## [1] "W(x)= NaNx1 + NaNx2 + NaNx3 + NaNx4 + NaN"

=============================================================== Validando el modelo Modelo Lineal install.packages(“MASS”)

library(MASS)
modelo_lda=lda(pulgas[,5]~pulgas[,1]+pulgas[,2]+pulgas[,3]+pulgas[,4],data =pulgas)
plot(modelo_lda,c("green","blue"),abbrev=1)

#pairs(modelo_lda,c("green","blue"),abbrev=1)
modelo_lda
## Call:
## lda(pulgas[, 5] ~ pulgas[, 1] + pulgas[, 2] + pulgas[, 3] + pulgas[, 
##     4], data = pulgas)
## 
## Prior probabilities of groups:
## Especie Haltica  Carduorum   Especie Haltica Oleracea 
##                  0.5128205                  0.4871795 
## 
## Group means:
##                            pulgas[, 1] pulgas[, 2] pulgas[, 3] pulgas[, 4]
## Especie Haltica  Carduorum    179.5500    290.8000    157.2000    209.2500
## Especie Haltica Oleracea      194.4737    267.0526    137.3684    185.9474
## 
## Coefficients of linear discriminants:
##                     LD1
## pulgas[, 1]  0.09327642
## pulgas[, 2] -0.03522706
## pulgas[, 3] -0.02875538
## pulgas[, 4] -0.03872998

número total de observaciones

modelo_lda$counts
## Especie Haltica  Carduorum   Especie Haltica Oleracea 
##                         20                         19
modelo_lda$svd
## [1] 11.55367
lda.p=predict(modelo_lda)

en filas reales y en columna estimados Evaluación de los errores de clasificación.

tabl=table(pulgas[,5],lda.p$class,dnn = c("Real","Predicha"))
tabl
##                             Predicha
## Real                         Especie Haltica  Carduorum
##   Especie Haltica  Carduorum                         19
##   Especie Haltica Oleracea                            0
##                             Predicha
## Real                         Especie Haltica Oleracea
##   Especie Haltica  Carduorum                        1
##   Especie Haltica Oleracea                         19

porcentaje de muestra por grupos

diag(prop.table(tabl,1))
## Especie Haltica  Carduorum   Especie Haltica Oleracea 
##                       0.95                       1.00

porcentaje de acierto total

sum(diag(prop.table(tabl)))
## [1] 0.974359

estimación de grupos a los que pertenecen la nueva data

library(readxl)
exp=read_excel("C:/Users/Alumno/Desktop/baseTaller/exp.xlsx")
exp=data.frame(exp)
head(exp)
##    x1  x2  x3  x4
## 1 159 262 166 192
## 2 213 287 170 159
## 3 185 263 155 221
## 4 200 313 177 178
## 5 218 317 167 165
## 6 204 243 138 199
pred=predict(modelo_lda,exp)$class
exp$NewGrupo=with(exp,pred)
exp
##     x1  x2  x3  x4                   NewGrupo
## 1  159 262 166 192   Especie Haltica Oleracea
## 2  213 287 170 159   Especie Haltica Oleracea
## 3  185 263 155 221   Especie Haltica Oleracea
## 4  200 313 177 178   Especie Haltica Oleracea
## 5  218 317 167 165   Especie Haltica Oleracea
## 6  204 243 138 199   Especie Haltica Oleracea
## 7  220 288 180 232   Especie Haltica Oleracea
## 8  171 291 130 205   Especie Haltica Oleracea
## 9  197 239 140 189   Especie Haltica Oleracea
## 10 179 277 127 184   Especie Haltica Oleracea
## 11 175 291 125 215   Especie Haltica Oleracea
## 12 158 295 144 185   Especie Haltica Oleracea
## 13 221 265 127 186   Especie Haltica Oleracea
## 14 168 257 140 170   Especie Haltica Oleracea
## 15 175 284 145 227   Especie Haltica Oleracea
## 16 167 256 152 160   Especie Haltica Oleracea
## 17 174 266 181 211   Especie Haltica Oleracea
## 18 205 300 139 158   Especie Haltica Oleracea
## 19 207 313 162 190   Especie Haltica Oleracea
## 20 213 299 178 227 Especie Haltica  Carduorum
## 21 221 291 140 232 Especie Haltica  Carduorum
## 22 183 280 141 229 Especie Haltica  Carduorum
## 23 166 276 146 166 Especie Haltica  Carduorum
## 24 166 246 172 160 Especie Haltica  Carduorum
## 25 164 239 123 215 Especie Haltica  Carduorum
## 26 214 296 156 168 Especie Haltica  Carduorum
## 27 163 240 169 218   Especie Haltica Oleracea
## 28 190 262 179 218 Especie Haltica  Carduorum
## 29 216 296 154 188 Especie Haltica  Carduorum
## 30 213 258 138 219 Especie Haltica  Carduorum
## 31 189 303 125 187 Especie Haltica  Carduorum
## 32 169 249 174 225 Especie Haltica  Carduorum
## 33 218 301 172 203 Especie Haltica  Carduorum
## 34 158 252 126 235 Especie Haltica  Carduorum
## 35 184 252 146 232 Especie Haltica  Carduorum
## 36 179 317 183 206 Especie Haltica  Carduorum
## 37 182 271 173 190 Especie Haltica  Carduorum
## 38 197 259 168 205 Especie Haltica  Carduorum
## 39 177 251 137 222 Especie Haltica  Carduorum

Modelo Cuadrático install.packages(“MASS”)

library(MASS)
modelo_qda=qda(pulgas[,5]~pulgas[,1]+pulgas[,2]+pulgas[,3]+pulgas[,4],data =pulgas)
#plot(modelo_qda)
#pairs(modelo_lda,col=pulgas[,5],abbrev=1)
modelo_qda
## Call:
## qda(pulgas[, 5] ~ pulgas[, 1] + pulgas[, 2] + pulgas[, 3] + pulgas[, 
##     4], data = pulgas)
## 
## Prior probabilities of groups:
## Especie Haltica  Carduorum   Especie Haltica Oleracea 
##                  0.5128205                  0.4871795 
## 
## Group means:
##                            pulgas[, 1] pulgas[, 2] pulgas[, 3] pulgas[, 4]
## Especie Haltica  Carduorum    179.5500    290.8000    157.2000    209.2500
## Especie Haltica Oleracea      194.4737    267.0526    137.3684    185.9474

número total de observaciones

modelo_qda$counts
## Especie Haltica  Carduorum   Especie Haltica Oleracea 
##                         20                         19
modelo_qda$svd
## NULL
qda.p=predict(modelo_qda)

en filas reales y en columna estimados Evaluación de los errores de clasificación.

tabl=table(pulgas[,5],qda.p$class,dnn = c("Real","Predicha"))
tabl
##                             Predicha
## Real                         Especie Haltica  Carduorum
##   Especie Haltica  Carduorum                         19
##   Especie Haltica Oleracea                            0
##                             Predicha
## Real                         Especie Haltica Oleracea
##   Especie Haltica  Carduorum                        1
##   Especie Haltica Oleracea                         19

porcentaje de muestra por grupos

diag(prop.table(tabl,1))
## Especie Haltica  Carduorum   Especie Haltica Oleracea 
##                       0.95                       1.00

porcentaje de acierto total

sum(diag(prop.table(tabl)))
## [1] 0.974359

estimación de grupos a los use pertenecen la nueva data

exp=read_excel("C:/Users/Alumno/Desktop/baseTaller/exp.xlsx")
exp=data.frame(exp)
head(exp)
##    x1  x2  x3  x4
## 1 159 262 166 192
## 2 213 287 170 159
## 3 185 263 155 221
## 4 200 313 177 178
## 5 218 317 167 165
## 6 204 243 138 199
pred=predict(modelo_lda,exp)$class
exp$NewGrupo=with(exp,pred)
exp
##     x1  x2  x3  x4                   NewGrupo
## 1  159 262 166 192   Especie Haltica Oleracea
## 2  213 287 170 159   Especie Haltica Oleracea
## 3  185 263 155 221   Especie Haltica Oleracea
## 4  200 313 177 178   Especie Haltica Oleracea
## 5  218 317 167 165   Especie Haltica Oleracea
## 6  204 243 138 199   Especie Haltica Oleracea
## 7  220 288 180 232   Especie Haltica Oleracea
## 8  171 291 130 205   Especie Haltica Oleracea
## 9  197 239 140 189   Especie Haltica Oleracea
## 10 179 277 127 184   Especie Haltica Oleracea
## 11 175 291 125 215   Especie Haltica Oleracea
## 12 158 295 144 185   Especie Haltica Oleracea
## 13 221 265 127 186   Especie Haltica Oleracea
## 14 168 257 140 170   Especie Haltica Oleracea
## 15 175 284 145 227   Especie Haltica Oleracea
## 16 167 256 152 160   Especie Haltica Oleracea
## 17 174 266 181 211   Especie Haltica Oleracea
## 18 205 300 139 158   Especie Haltica Oleracea
## 19 207 313 162 190   Especie Haltica Oleracea
## 20 213 299 178 227 Especie Haltica  Carduorum
## 21 221 291 140 232 Especie Haltica  Carduorum
## 22 183 280 141 229 Especie Haltica  Carduorum
## 23 166 276 146 166 Especie Haltica  Carduorum
## 24 166 246 172 160 Especie Haltica  Carduorum
## 25 164 239 123 215 Especie Haltica  Carduorum
## 26 214 296 156 168 Especie Haltica  Carduorum
## 27 163 240 169 218   Especie Haltica Oleracea
## 28 190 262 179 218 Especie Haltica  Carduorum
## 29 216 296 154 188 Especie Haltica  Carduorum
## 30 213 258 138 219 Especie Haltica  Carduorum
## 31 189 303 125 187 Especie Haltica  Carduorum
## 32 169 249 174 225 Especie Haltica  Carduorum
## 33 218 301 172 203 Especie Haltica  Carduorum
## 34 158 252 126 235 Especie Haltica  Carduorum
## 35 184 252 146 232 Especie Haltica  Carduorum
## 36 179 317 183 206 Especie Haltica  Carduorum
## 37 182 271 173 190 Especie Haltica  Carduorum
## 38 197 259 168 205 Especie Haltica  Carduorum
## 39 177 251 137 222 Especie Haltica  Carduorum