Análise Fatorial

Author

Paulo Manoel da Silva Junior

Análise Fatorial

Este trabalho tem como objetivo fazer a utilização do método de análise fatorial a um banco de câncer de mama, que possui 30 variáveis para diminuir a dimensão e conseguir agrupar em alguns fatores possíveis variáveis correlacionadas, diminuindo a dimensão sem contudo perder boa parte da explicação da variabilidade dos dados. Estará sendo realizado o trabalho de parte por partes.

Carregando o banco de dados

rm(list=ls(all=T))
setwd("C:/Users/Pessoal/Desktop/ESTATÍSTICA/UFPB/8º PERÍODO/ANÁLISE MULTIVARIADA II/AULAS/ANÁLISE FATORIAL")
dados <- read.csv2("breast_cancer.csv", sep = "," ,header = F, col.names = c("raio médio", "textura média", "perímetro médio", "área média", "suavidade média", "compacidade média", "concavidade média", "pontos côncavos médios", "simetria média", "dimensão fractal média", "erro de raio", "erro de textura", "erro de perímetro", "erro de área", "erro de suavidade", "erro de compacidade", "erro de concavidade", "erro de pontos côncavos", "erro de simetria", "erro de dimensão fractal", "pior raio", "pior textura", "pior perímetro", "pior área", "pior suavidade", "pior compacidade", "pior concavidade", "piores pontos côncavos", "pior simetria", "pior dimensão fractal"), stringsAsFactors = F)
str(dados)
'data.frame':   570 obs. of  30 variables:
 $ raio.médio              : num  NA 18 20.6 19.7 11.4 ...
 $ textura.média           : num  NA 10.4 17.8 21.2 20.4 ...
 $ perímetro.médio         : num  NA 122.8 132.9 130 77.6 ...
 $ área.média              : num  NA 1001 1326 1203 386 ...
 $ suavidade.média         : num  NA 0.1184 0.0847 0.1096 0.1425 ...
 $ compacidade.média       : num  NA 0.2776 0.0786 0.1599 0.2839 ...
 $ concavidade.média       : num  NA 0.3001 0.0869 0.1974 0.2414 ...
 $ pontos.côncavos.médios  : num  NA 0.1471 0.0702 0.1279 0.1052 ...
 $ simetria.média          : num  NA 0.242 0.181 0.207 0.26 ...
 $ dimensão.fractal.média  : num  NA 0.0787 0.0567 0.06 0.0974 ...
 $ erro.de.raio            : num  NA 1.095 0.543 0.746 0.496 ...
 $ erro.de.textura         : num  NA 0.905 0.734 0.787 1.156 ...
 $ erro.de.perímetro       : num  NA 8.59 3.4 4.58 3.44 ...
 $ erro.de.área            : num  NA 153.4 74.1 94 27.2 ...
 $ erro.de.suavidade       : num  NA 0.0064 0.00522 0.00615 0.00911 ...
 $ erro.de.compacidade     : num  NA 0.049 0.0131 0.0401 0.0746 ...
 $ erro.de.concavidade     : num  NA 0.0537 0.0186 0.0383 0.0566 ...
 $ erro.de.pontos.côncavos : num  NA 0.0159 0.0134 0.0206 0.0187 ...
 $ erro.de.simetria        : num  NA 0.03 0.0139 0.0225 0.0596 ...
 $ erro.de.dimensão.fractal: num  NA 0.00619 0.00353 0.00457 0.00921 ...
 $ pior.raio               : num  NA 25.4 25 23.6 14.9 ...
 $ pior.textura            : num  NA 17.3 23.4 25.5 26.5 ...
 $ pior.perímetro          : num  NA 184.6 158.8 152.5 98.9 ...
 $ pior.área               : num  NA 2019 1956 1709 568 ...
 $ pior.suavidade          : num  NA 0.162 0.124 0.144 0.21 ...
 $ pior.compacidade        : num  NA 0.666 0.187 0.424 0.866 ...
 $ pior.concavidade        : num  NA 0.712 0.242 0.45 0.687 ...
 $ piores.pontos.côncavos  : num  NA 0.265 0.186 0.243 0.258 ...
 $ pior.simetria           : num  NA 0.46 0.275 0.361 0.664 ...
 $ pior.dimensão.fractal   : num  NA 0.1189 0.089 0.0876 0.173 ...

Visualizando os dados

head(dados)
  raio.médio textura.média perímetro.médio área.média suavidade.média
1         NA            NA              NA         NA              NA
2      17.99         10.38          122.80     1001.0         0.11840
3      20.57         17.77          132.90     1326.0         0.08474
4      19.69         21.25          130.00     1203.0         0.10960
5      11.42         20.38           77.58      386.1         0.14250
6      20.29         14.34          135.10     1297.0         0.10030
  compacidade.média concavidade.média pontos.côncavos.médios simetria.média
1                NA                NA                     NA             NA
2           0.27760            0.3001                0.14710         0.2419
3           0.07864            0.0869                0.07017         0.1812
4           0.15990            0.1974                0.12790         0.2069
5           0.28390            0.2414                0.10520         0.2597
6           0.13280            0.1980                0.10430         0.1809
  dimensão.fractal.média erro.de.raio erro.de.textura erro.de.perímetro
1                     NA           NA              NA                NA
2                0.07871       1.0950          0.9053             8.589
3                0.05667       0.5435          0.7339             3.398
4                0.05999       0.7456          0.7869             4.585
5                0.09744       0.4956          1.1560             3.445
6                0.05883       0.7572          0.7813             5.438
  erro.de.área erro.de.suavidade erro.de.compacidade erro.de.concavidade
1           NA                NA                  NA                  NA
2       153.40          0.006399             0.04904             0.05373
3        74.08          0.005225             0.01308             0.01860
4        94.03          0.006150             0.04006             0.03832
5        27.23          0.009110             0.07458             0.05661
6        94.44          0.011490             0.02461             0.05688
  erro.de.pontos.côncavos erro.de.simetria erro.de.dimensão.fractal pior.raio
1                      NA               NA                       NA        NA
2                 0.01587          0.03003                 0.006193     25.38
3                 0.01340          0.01389                 0.003532     24.99
4                 0.02058          0.02250                 0.004571     23.57
5                 0.01867          0.05963                 0.009208     14.91
6                 0.01885          0.01756                 0.005115     22.54
  pior.textura pior.perímetro pior.área pior.suavidade pior.compacidade
1           NA             NA        NA             NA               NA
2        17.33         184.60    2019.0         0.1622           0.6656
3        23.41         158.80    1956.0         0.1238           0.1866
4        25.53         152.50    1709.0         0.1444           0.4245
5        26.50          98.87     567.7         0.2098           0.8663
6        16.67         152.20    1575.0         0.1374           0.2050
  pior.concavidade piores.pontos.côncavos pior.simetria pior.dimensão.fractal
1               NA                     NA            NA                    NA
2           0.7119                 0.2654        0.4601               0.11890
3           0.2416                 0.1860        0.2750               0.08902
4           0.4504                 0.2430        0.3613               0.08758
5           0.6869                 0.2575        0.6638               0.17300
6           0.4000                 0.1625        0.2364               0.07678
tail(dados)
    raio.médio textura.média perímetro.médio área.média suavidade.média
565      20.92         25.09          143.00     1347.0         0.10990
566      21.56         22.39          142.00     1479.0         0.11100
567      20.13         28.25          131.20     1261.0         0.09780
568      16.60         28.08          108.30      858.1         0.08455
569      20.60         29.33          140.10     1265.0         0.11780
570       7.76         24.54           47.92      181.0         0.05263
    compacidade.média concavidade.média pontos.côncavos.médios simetria.média
565           0.22360           0.31740                0.14740         0.2149
566           0.11590           0.24390                0.13890         0.1726
567           0.10340           0.14400                0.09791         0.1752
568           0.10230           0.09251                0.05302         0.1590
569           0.27700           0.35140                0.15200         0.2397
570           0.04362           0.00000                0.00000         0.1587
    dimensão.fractal.média erro.de.raio erro.de.textura erro.de.perímetro
565                0.06879       0.9622           1.026             8.758
566                0.05623       1.1760           1.256             7.673
567                0.05533       0.7655           2.463             5.203
568                0.05648       0.4564           1.075             3.425
569                0.07016       0.7260           1.595             5.772
570                0.05884       0.3857           1.428             2.548
    erro.de.área erro.de.suavidade erro.de.compacidade erro.de.concavidade
565       118.80          0.006399             0.04310             0.07845
566       158.70          0.010300             0.02891             0.05198
567        99.04          0.005769             0.02423             0.03950
568        48.55          0.005903             0.03731             0.04730
569        86.22          0.006522             0.06158             0.07117
570        19.15          0.007189             0.00466             0.00000
    erro.de.pontos.côncavos erro.de.simetria erro.de.dimensão.fractal pior.raio
565                 0.02624          0.02057                 0.006213    24.290
566                 0.02454          0.01114                 0.004239    25.450
567                 0.01678          0.01898                 0.002498    23.690
568                 0.01557          0.01318                 0.003892    18.980
569                 0.01664          0.02324                 0.006185    25.740
570                 0.00000          0.02676                 0.002783     9.456
    pior.textura pior.perímetro pior.área pior.suavidade pior.compacidade
565        29.41         179.10    1819.0        0.14070          0.41860
566        26.40         166.10    2027.0        0.14100          0.21130
567        38.25         155.00    1731.0        0.11660          0.19220
568        34.12         126.70    1124.0        0.11390          0.30940
569        39.42         184.60    1821.0        0.16500          0.86810
570        30.37          59.16     268.6        0.08996          0.06444
    pior.concavidade piores.pontos.côncavos pior.simetria pior.dimensão.fractal
565           0.6599                 0.2542        0.2929               0.09873
566           0.4107                 0.2216        0.2060               0.07115
567           0.3215                 0.1628        0.2572               0.06637
568           0.3403                 0.1418        0.2218               0.07820
569           0.9387                 0.2650        0.4087               0.12400
570           0.0000                 0.0000        0.2871               0.07039

Algumas Estatísticas Descritivas

skimr::skim(dados)
Data summary
Name dados
Number of rows 570
Number of columns 30
_______________________
Column type frequency:
numeric 30
________________________
Group variables None

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
raio.médio 1 1 14.13 3.52 6.98 11.70 13.37 15.78 28.11 ▂▇▃▁▁
textura.média 1 1 19.29 4.30 9.71 16.17 18.84 21.80 39.28 ▃▇▃▁▁
perímetro.médio 1 1 91.97 24.30 43.79 75.17 86.24 104.10 188.50 ▃▇▃▁▁
área.média 1 1 654.89 351.91 143.50 420.30 551.10 782.70 2501.00 ▇▃▂▁▁
suavidade.média 1 1 0.10 0.01 0.05 0.09 0.10 0.11 0.16 ▁▇▇▁▁
compacidade.média 1 1 0.10 0.05 0.02 0.06 0.09 0.13 0.35 ▇▇▂▁▁
concavidade.média 1 1 0.09 0.08 0.00 0.03 0.06 0.13 0.43 ▇▃▂▁▁
pontos.côncavos.médios 1 1 0.05 0.04 0.00 0.02 0.03 0.07 0.20 ▇▃▂▁▁
simetria.média 1 1 0.18 0.03 0.11 0.16 0.18 0.20 0.30 ▁▇▅▁▁
dimensão.fractal.média 1 1 0.06 0.01 0.05 0.06 0.06 0.07 0.10 ▆▇▂▁▁
erro.de.raio 1 1 0.41 0.28 0.11 0.23 0.32 0.48 2.87 ▇▁▁▁▁
erro.de.textura 1 1 1.22 0.55 0.36 0.83 1.11 1.47 4.88 ▇▅▁▁▁
erro.de.perímetro 1 1 2.87 2.02 0.76 1.61 2.29 3.36 21.98 ▇▁▁▁▁
erro.de.área 1 1 40.34 45.49 6.80 17.85 24.53 45.19 542.20 ▇▁▁▁▁
erro.de.suavidade 1 1 0.01 0.00 0.00 0.01 0.01 0.01 0.03 ▇▃▁▁▁
erro.de.compacidade 1 1 0.03 0.02 0.00 0.01 0.02 0.03 0.14 ▇▃▁▁▁
erro.de.concavidade 1 1 0.03 0.03 0.00 0.02 0.03 0.04 0.40 ▇▁▁▁▁
erro.de.pontos.côncavos 1 1 0.01 0.01 0.00 0.01 0.01 0.01 0.05 ▇▇▁▁▁
erro.de.simetria 1 1 0.02 0.01 0.01 0.02 0.02 0.02 0.08 ▇▃▁▁▁
erro.de.dimensão.fractal 1 1 0.00 0.00 0.00 0.00 0.00 0.00 0.03 ▇▁▁▁▁
pior.raio 1 1 16.27 4.83 7.93 13.01 14.97 18.79 36.04 ▆▇▃▁▁
pior.textura 1 1 25.68 6.15 12.02 21.08 25.41 29.72 49.54 ▃▇▆▁▁
pior.perímetro 1 1 107.26 33.60 50.41 84.11 97.66 125.40 251.20 ▇▇▃▁▁
pior.área 1 1 880.58 569.36 185.20 515.30 686.50 1084.00 4254.00 ▇▂▁▁▁
pior.suavidade 1 1 0.13 0.02 0.07 0.12 0.13 0.15 0.22 ▂▇▇▂▁
pior.compacidade 1 1 0.25 0.16 0.03 0.15 0.21 0.34 1.06 ▇▅▁▁▁
pior.concavidade 1 1 0.27 0.21 0.00 0.11 0.23 0.38 1.25 ▇▅▂▁▁
piores.pontos.côncavos 1 1 0.11 0.07 0.00 0.06 0.10 0.16 0.29 ▅▇▅▃▁
pior.simetria 1 1 0.29 0.06 0.16 0.25 0.28 0.32 0.66 ▅▇▁▁▁
pior.dimensão.fractal 1 1 0.08 0.02 0.06 0.07 0.08 0.09 0.21 ▇▃▁▁▁

Removendo as linhas com os valores ausentes, em nosso estudo só temos uma.

dados <- dados[complete.cases(dados),]

Verificando a matriz de correlações amostrais

rho_hat <- cor(dados)
corrplot::corrplot(rho_hat, method = "number")

Podemos ver a formação de possíveis grupos, que estaram interligados através dos fatores. E possíveís variáveis que não serão utilizadas.

Verificando a possibilidade de se usar Análise Fatorial nesse conjunto de dados

Consideraremos a medida de Kaiser, Meyer & Olkin de adequaçao da amostra para analise fatorial. Um limiar comumente adotado para esta medida é igual a 60%.

rho_estimado <- cor(dados)
psych::KMO(rho_estimado)
Kaiser-Meyer-Olkin factor adequacy
Call: psych::KMO(r = rho_estimado)
Overall MSA =  0.83
MSA for each item = 
              raio.médio            textura.média          perímetro.médio 
                    0.83                     0.64                     0.85 
              área.média          suavidade.média        compacidade.média 
                    0.86                     0.81                     0.88 
       concavidade.média   pontos.côncavos.médios           simetria.média 
                    0.89                     0.90                     0.83 
  dimensão.fractal.média             erro.de.raio          erro.de.textura 
                    0.83                     0.83                     0.48 
       erro.de.perímetro             erro.de.área        erro.de.suavidade 
                    0.84                     0.85                     0.64 
     erro.de.compacidade      erro.de.concavidade  erro.de.pontos.côncavos 
                    0.87                     0.83                     0.84 
        erro.de.simetria erro.de.dimensão.fractal                pior.raio 
                    0.58                     0.81                     0.82 
            pior.textura           pior.perímetro                pior.área 
                    0.60                     0.88                     0.82 
          pior.suavidade         pior.compacidade         pior.concavidade 
                    0.75                     0.85                     0.90 
  piores.pontos.côncavos            pior.simetria    pior.dimensão.fractal 
                    0.89                     0.69                     0.81 

Como, podemos observar que o resultado do geral foi igual a 0.83, podemos neste caso utilizar a análise fatorial para resumir o conjunto de variáveis.

Consideraremos também o teste de esfericidade de Bartlett sobre a matriz de correlações amostrais, que testa a hipótese nula de que a matriz de correlações é igual a uma matriz identidade. Valores pequenos do p-valor indicam que uma análise fatorial pode ser útil aos dados.

psych::cortest.bartlett(rho_estimado, n = nrow(dados))
$chisq
[1] 39362.12

$p.value
[1] 0

$df
[1] 435

Como o p-valor foi igual a zero a utilização da análise fatorial neste caso pode ser útil.

Investigando o número de fatores

eigv <- eigen(rho_estimado)
eigv <- data.frame(nfact = 1:ncol(dados), eigval = eigv$values)
ggplot2::ggplot(data = eigv, mapping = ggplot2::aes(nfact, eigval)) +
  ggplot2::geom_line() +
  ggplot2::geom_point() +
  ggplot2::geom_abline(slope = 0, intercept = 1, color = "red") +
  ggplot2::labs(x = "Número de fatores",
       y = "Autovalor",
       title = "Scree plot") +
  ggplot2::theme_bw()

Neste caso podemos ver que um número de 6 fatores parece ser bem adequado para ser utilizado.

Obtendo o modelo fatorial ortogonal

Inicialmente, vamos obter o modelo fatorial ortogonal sem considerar rotação de fatores. Observe que o p-valor do teste de hipótese sobre o número de fatores não corrobora com a informação de que 6 fatores são suficientes para explicar a estrutura de covariância do conjunto de dados, embora tenhamos que aproximadamente 82,4% da variação total é explicada por 6 fatores. Contudo, não é possível obter uma interpretação satisfatória dos fatores e devemos investigar se uma rotação ortogonal pode fornecer uma estrutura fatorial mais clara.

mfo1 <- factanal(dados, 6, rotation = "none", lower = 0.01)
mfo1

Call:
factanal(x = dados, factors = 6, rotation = "none", lower = 0.01)

Uniquenesses:
              raio.médio            textura.média          perímetro.médio 
                   0.010                    0.119                    0.010 
              área.média          suavidade.média        compacidade.média 
                   0.015                    0.109                    0.073 
       concavidade.média   pontos.côncavos.médios           simetria.média 
                   0.074                    0.050                    0.562 
  dimensão.fractal.média             erro.de.raio          erro.de.textura 
                   0.189                    0.012                    0.417 
       erro.de.perímetro             erro.de.área        erro.de.suavidade 
                   0.038                    0.065                    0.551 
     erro.de.compacidade      erro.de.concavidade  erro.de.pontos.côncavos 
                   0.140                    0.277                    0.326 
        erro.de.simetria erro.de.dimensão.fractal                pior.raio 
                   0.635                    0.328                    0.010 
            pior.textura           pior.perímetro                pior.área 
                   0.010                    0.010                    0.027 
          pior.suavidade         pior.compacidade         pior.concavidade 
                   0.177                    0.099                    0.119 
  piores.pontos.côncavos            pior.simetria    pior.dimensão.fractal 
                   0.089                    0.558                    0.181 

Loadings:
                         Factor1 Factor2 Factor3 Factor4 Factor5 Factor6
raio.médio                0.970  -0.189                                 
textura.média             0.402          -0.229   0.800   0.153         
perímetro.médio           0.977  -0.141                                 
área.média                0.974  -0.134          -0.106                 
suavidade.média           0.266   0.549   0.388          -0.415   0.442 
compacidade.média         0.610   0.547   0.494                         
concavidade.média         0.765   0.436   0.351           0.152         
pontos.côncavos.médios    0.881   0.268   0.278                   0.158 
simetria.média            0.245   0.520   0.278          -0.111   0.131 
dimensão.fractal.média   -0.176   0.766   0.426                         
erro.de.raio              0.786   0.425  -0.397  -0.172                 
erro.de.textura                   0.357  -0.391   0.395   0.252   0.288 
erro.de.perímetro         0.782   0.449  -0.350  -0.157                 
erro.de.área              0.820   0.295  -0.371  -0.183                 
erro.de.suavidade        -0.142   0.545  -0.120                   0.335 
erro.de.compacidade       0.307   0.647   0.327           0.460  -0.146 
erro.de.concavidade       0.279   0.564   0.269           0.488  -0.121 
erro.de.pontos.côncavos   0.450   0.541   0.176           0.370         
erro.de.simetria                  0.518  -0.114           0.225   0.156 
erro.de.dimensão.fractal          0.673   0.224           0.397         
pior.raio                 0.982  -0.126                                 
pior.textura              0.388          -0.124   0.908                 
pior.perímetro            0.986                                         
pior.área                 0.971                          -0.111         
pior.suavidade            0.228   0.399   0.470   0.213  -0.549   0.212 
pior.compacidade          0.513   0.388   0.601   0.268          -0.233 
pior.concavidade          0.616   0.347   0.539   0.222          -0.188 
piores.pontos.côncavos    0.807   0.205   0.444   0.113                 
pior.simetria             0.241   0.248   0.445   0.216  -0.250  -0.121 
pior.dimensão.fractal     0.130   0.540   0.609   0.277  -0.107  -0.228 

               Factor1 Factor2 Factor3 Factor4 Factor5 Factor6
SS loadings     11.654   5.294   3.431   2.075   1.528   0.747
Proportion Var   0.388   0.176   0.114   0.069   0.051   0.025
Cumulative Var   0.388   0.565   0.679   0.749   0.799   0.824

Test of the hypothesis that 6 factors are sufficient.
The chi square statistic is 10182.43 on 270 degrees of freedom.
The p-value is 0 
psych::fa.diagram(mfo1$loadings, digits = 3)

Conforme a representação gráfica acima, podemos observar que o sexto fator não tem muita representatividade e os fatores não são de simples interpretação, neste caso ainda com seis fatores vamos rotacionar de acordo com o método varimax para ver se os fatores se tornam interpretáveis.

mfo2 <- factanal(dados, 6, rotation = "varimax", lower = 0.01)
mfo2

Call:
factanal(x = dados, factors = 6, rotation = "varimax", lower = 0.01)

Uniquenesses:
              raio.médio            textura.média          perímetro.médio 
                   0.010                    0.119                    0.010 
              área.média          suavidade.média        compacidade.média 
                   0.015                    0.109                    0.073 
       concavidade.média   pontos.côncavos.médios           simetria.média 
                   0.074                    0.050                    0.562 
  dimensão.fractal.média             erro.de.raio          erro.de.textura 
                   0.189                    0.012                    0.417 
       erro.de.perímetro             erro.de.área        erro.de.suavidade 
                   0.038                    0.065                    0.551 
     erro.de.compacidade      erro.de.concavidade  erro.de.pontos.côncavos 
                   0.140                    0.277                    0.326 
        erro.de.simetria erro.de.dimensão.fractal                pior.raio 
                   0.635                    0.328                    0.010 
            pior.textura           pior.perímetro                pior.área 
                   0.010                    0.010                    0.027 
          pior.suavidade         pior.compacidade         pior.concavidade 
                   0.177                    0.099                    0.119 
  piores.pontos.côncavos            pior.simetria    pior.dimensão.fractal 
                   0.089                    0.558                    0.181 

Loadings:
                         Factor1 Factor2 Factor3 Factor4 Factor5 Factor6
raio.médio                0.966                  -0.146          -0.161 
textura.média             0.251                           0.900         
perímetro.médio           0.964           0.106  -0.129          -0.160 
área.média                0.978                                  -0.102 
suavidade.média           0.191   0.814           0.393  -0.119  -0.142 
compacidade.média         0.460   0.614   0.568                         
concavidade.média         0.641   0.429   0.553           0.101         
pontos.côncavos.médios    0.801   0.429   0.307                  -0.145 
simetria.média            0.155   0.515   0.295   0.248                 
dimensão.fractal.média   -0.307   0.608   0.496   0.294                 
erro.de.raio              0.808           0.161   0.419           0.359 
erro.de.textura                  -0.116   0.136   0.543   0.501         
erro.de.perímetro         0.791           0.238   0.405           0.332 
erro.de.área              0.851           0.102   0.315           0.315 
erro.de.suavidade        -0.147   0.140   0.167   0.616                 
erro.de.compacidade       0.166   0.226   0.867   0.153                 
erro.de.concavidade       0.163   0.129   0.808   0.153                 
erro.de.pontos.côncavos   0.375   0.166   0.644   0.295                 
erro.de.simetria                          0.337   0.495                 
erro.de.dimensão.fractal          0.170   0.750   0.274                 
pior.raio                 0.957   0.147          -0.194   0.128         
pior.textura              0.205   0.177                   0.954         
pior.perímetro            0.949   0.176          -0.187   0.130         
pior.área                 0.955   0.132          -0.150   0.119         
pior.suavidade                    0.895                                 
pior.compacidade          0.317   0.629   0.560  -0.248   0.169         
pior.concavidade          0.437   0.530   0.578  -0.214   0.172         
piores.pontos.côncavos    0.680   0.538   0.332  -0.168   0.116         
pior.simetria             0.107   0.589   0.194  -0.182                 
pior.dimensão.fractal             0.703   0.528  -0.135           0.118 

               Factor1 Factor2 Factor3 Factor4 Factor5 Factor6
SS loadings     10.080   4.920    4.80   2.232   2.189   0.509
Proportion Var   0.336   0.164    0.16   0.074   0.073   0.017
Cumulative Var   0.336   0.500    0.66   0.734   0.807   0.824

Test of the hypothesis that 6 factors are sufficient.
The chi square statistic is 10182.43 on 270 degrees of freedom.
The p-value is 0 

Tentando observar possíveis grupos nos fatores de acordo com a visualização gráfica

psych::fa.diagram(mfo2$loadings, digits = 3)

Conforme fica evidente no gráfico acima, a utilização de um sexto fator não traz muito ganho, sendo assim testaremos um modelo ortonogonal fatorial com cinco fatores e método de rotação varimax.

mfo3 <- factanal(dados, factors = 5 ,rotation = "varimax", lower = 0.01)
mfo3

Call:
factanal(x = dados, factors = 5, rotation = "varimax", lower = 0.01)

Uniquenesses:
              raio.médio            textura.média          perímetro.médio 
                   0.010                    0.121                    0.010 
              área.média          suavidade.média        compacidade.média 
                   0.015                    0.537                    0.077 
       concavidade.média   pontos.côncavos.médios           simetria.média 
                   0.074                    0.079                    0.599 
  dimensão.fractal.média             erro.de.raio          erro.de.textura 
                   0.202                    0.013                    0.443 
       erro.de.perímetro             erro.de.área        erro.de.suavidade 
                   0.038                    0.065                    0.635 
     erro.de.compacidade      erro.de.concavidade  erro.de.pontos.côncavos 
                   0.259                    0.389                    0.352 
        erro.de.simetria erro.de.dimensão.fractal                pior.raio 
                   0.643                    0.404                    0.010 
            pior.textura           pior.perímetro                pior.área 
                   0.010                    0.010                    0.026 
          pior.suavidade         pior.compacidade         pior.concavidade 
                   0.467                    0.124                    0.145 
  piores.pontos.côncavos            pior.simetria    pior.dimensão.fractal 
                   0.093                    0.557                    0.193 

Loadings:
                         Factor1 Factor2 Factor3 Factor4 Factor5
raio.médio                0.972                           0.171 
textura.média             0.253                   0.898         
perímetro.médio           0.969   0.126                   0.173 
área.média                0.982                                 
suavidade.média           0.166   0.584   0.280  -0.103         
compacidade.média         0.465   0.745   0.365           0.134 
concavidade.média         0.651   0.582   0.362           0.161 
pontos.côncavos.médios    0.800   0.471   0.203           0.122 
simetria.média            0.147   0.515   0.333                 
dimensão.fractal.média   -0.309   0.666   0.497                 
erro.de.raio              0.800           0.406          -0.418 
erro.de.textura                  -0.153   0.487   0.534         
erro.de.perímetro         0.787           0.445          -0.363 
erro.de.área              0.844           0.294          -0.362 
erro.de.suavidade        -0.152           0.570          -0.126 
erro.de.compacidade       0.194   0.529   0.622           0.179 
erro.de.concavidade       0.192   0.416   0.598           0.203 
erro.de.pontos.côncavos   0.393   0.338   0.599           0.145 
erro.de.simetria                          0.589                 
erro.de.dimensão.fractal          0.404   0.653                 
pior.raio                 0.955   0.201  -0.165   0.112         
pior.textura              0.201   0.218  -0.111   0.943         
pior.perímetro            0.949   0.250  -0.124   0.113         
pior.área                 0.951   0.179  -0.140   0.107         
pior.suavidade                    0.716                  -0.113 
pior.compacidade          0.326   0.850   0.101   0.128   0.143 
pior.concavidade          0.450   0.758   0.145   0.136   0.194 
piores.pontos.côncavos    0.681   0.644                   0.141 
pior.simetria                     0.652                         
pior.dimensão.fractal             0.877   0.172                 

               Factor1 Factor2 Factor3 Factor4 Factor5
SS loadings     10.119   6.561   3.785   2.140   0.810
Proportion Var   0.337   0.219   0.126   0.071   0.027
Cumulative Var   0.337   0.556   0.682   0.753   0.780

Test of the hypothesis that 5 factors are sufficient.
The chi square statistic is 11651.42 on 295 degrees of freedom.
The p-value is 0 

Observe novamente que o p-valor do teste de hipótese sobre o número de fatores não corrobora com a informação de que 5 fatores são suficientes para explicar a estrutura de covariância do conjunto de dados. Temos que aproximadamente 78,0% da variação total é explicada por 5 fatores.

psych::fa.diagram(mfo3$loadings, digits = 3)

Para que não tenhamos percas mais severas, e um número bom de fatores, cerca de 20% da quantidade das variáveis, utilizaremos o modelo ortogonal fatorial com 6 fatores, no qual foi utilizado o método de rotação varimax com a finalidade de melhores interpretações para os fatores obtidos.

Comunalidades

O objetivo das comunalidades é resumir o percentual de explicação do modelo obtido para as variáveis descritas no banco.

comunalidades <- rowSums(mfo2$loadings^2)
comunalidades
              raio.médio            textura.média          perímetro.médio 
               0.9943210                0.8806988                0.9946491 
              área.média          suavidade.média        compacidade.média 
               0.9845705                0.8905366                0.9272098 
       concavidade.média   pontos.côncavos.médios           simetria.média 
               0.9261193                0.9503734                0.4383931 
  dimensão.fractal.média             erro.de.raio          erro.de.textura 
               0.8108031                0.9875143                0.5828919 
       erro.de.perímetro             erro.de.área        erro.de.suavidade 
               0.9621720                0.9345068                0.4487247 
     erro.de.compacidade      erro.de.concavidade  erro.de.pontos.côncavos 
               0.8597695                0.7228020                0.6738134 
        erro.de.simetria erro.de.dimensão.fractal                pior.raio 
               0.3643258                0.6725375                0.9921037 
            pior.textura           pior.perímetro                pior.área 
               0.9902164                0.9920916                0.9734008 
          pior.suavidade         pior.compacidade         pior.concavidade 
               0.8233128                0.9006581                0.8812001 
  piores.pontos.côncavos            pior.simetria    pior.dimensão.fractal 
               0.9106250                0.4415090                0.8188108 

Segue abaixo uma tabela com o percentual da explicação da variabilidade das variáveis com o uso dos seis fatores:

Variável Percentual (%) Variável Percentual (%)
raio.médio 99.43 erro.de.compacidade 85.98
textura.média 88.07 erro.de.concavidade 72.28
perímetro.médio 99.46 erro.de.pontos.côncavos 67.38
área.média 98.46 erro.de.simetria 36.43
suavidade.média 89.05 erro.de.dimensão.fractal 67.25
compacidade.média 92.72 pior.raio 99.21
concavidade.média 92.61 pior.textura 99.02
pontos.côncavos.médios 95.04 pior.perímetro 99.21
simetria.média 43.84 pior.área 97.34
dimensão.fractal.média 81.08 pior.suavidade 82.33
erro.de.raio 98.75 pior.compacidade 90.07
erro.de.textura 58.29 pior.concavidade 88.12
erro.de.perímetro 96.22 piores.pontos.côncavos 91.06
erro.de.área 93.45 pior.simetria 44.15
erro.de.suavidade 44.87 pior.dimensão.fractal 81.88

Matriz Residual

rho_til <- mfo2$loadings%*%t(mfo2$loadings)+diag(mfo2$uniquenesses)
U <- rho_hat - rho_til
round(U, 4)
                         raio.médio textura.média perímetro.médio área.média
raio.médio                  -0.0043        0.0004          0.0050     0.0019
textura.média                0.0004        0.0000          0.0013    -0.0009
perímetro.médio              0.0050        0.0013         -0.0046     0.0019
área.média                   0.0019       -0.0009          0.0019     0.0000
suavidade.média              0.0014        0.0012          0.0004    -0.0031
compacidade.média            0.0002        0.0140          0.0056    -0.0054
concavidade.média           -0.0046       -0.0047         -0.0027     0.0040
pontos.côncavos.médios      -0.0029        0.0002         -0.0015    -0.0020
simetria.média               0.0004        0.0039          0.0012    -0.0080
dimensão.fractal.média      -0.0034        0.0124         -0.0013     0.0121
erro.de.raio                 0.0009        0.0019          0.0001    -0.0021
erro.de.textura             -0.0032       -0.0772         -0.0038    -0.0038
erro.de.perímetro           -0.0002       -0.0009          0.0025    -0.0012
erro.de.área                -0.0004       -0.0070          0.0007     0.0156
erro.de.suavidade           -0.0055        0.0225         -0.0082     0.0147
erro.de.compacidade          0.0003        0.0014         -0.0002    -0.0009
erro.de.concavidade         -0.0047       -0.0166         -0.0100     0.0016
erro.de.pontos.côncavos     -0.0020        0.0030         -0.0066    -0.0214
erro.de.simetria             0.0002        0.0057          0.0005    -0.0013
erro.de.dimensão.fractal     0.0004        0.0019         -0.0036     0.0062
pior.raio                    0.0005       -0.0004         -0.0005    -0.0031
pior.textura                 0.0000        0.0013          0.0000     0.0002
pior.perímetro              -0.0005       -0.0001          0.0003    -0.0032
pior.área                   -0.0047       -0.0003         -0.0049     0.0089
pior.suavidade               0.0001       -0.0152         -0.0023     0.0085
pior.compacidade             0.0047        0.0010          0.0063     0.0014
pior.concavidade            -0.0004       -0.0105         -0.0013     0.0036
piores.pontos.côncavos      -0.0002       -0.0099         -0.0015    -0.0071
pior.simetria                0.0037       -0.0239          0.0025    -0.0025
pior.dimensão.fractal        0.0051        0.0012          0.0039     0.0139
                         suavidade.média compacidade.média concavidade.média
raio.médio                        0.0014            0.0002           -0.0046
textura.média                     0.0012            0.0140           -0.0047
perímetro.médio                   0.0004            0.0056           -0.0027
área.média                       -0.0031           -0.0054            0.0040
suavidade.média                   0.0000            0.0048           -0.0101
compacidade.média                 0.0048            0.0000           -0.0086
concavidade.média                -0.0101           -0.0086            0.0000
pontos.côncavos.médios           -0.0074            0.0041            0.0284
simetria.média                   -0.0039            0.0272           -0.0013
dimensão.fractal.média            0.0107            0.0365           -0.0101
erro.de.raio                      0.0002           -0.0018            0.0002
erro.de.textura                   0.0145           -0.0029           -0.0020
erro.de.perímetro                -0.0044            0.0117           -0.0056
erro.de.área                     -0.0015           -0.0046            0.0097
erro.de.suavidade                -0.0072           -0.0305           -0.0085
erro.de.compacidade               0.0128            0.0159           -0.0307
erro.de.concavidade               0.0173           -0.0591            0.0659
erro.de.pontos.côncavos           0.0164           -0.0284           -0.0147
erro.de.simetria                 -0.0069            0.0161           -0.0162
erro.de.dimensão.fractal          0.0178           -0.0189           -0.0229
pior.raio                         0.0027           -0.0026           -0.0023
pior.textura                     -0.0003           -0.0008            0.0003
pior.perímetro                    0.0007            0.0043           -0.0015
pior.área                         0.0021           -0.0065            0.0062
pior.suavidade                    0.0271           -0.0292           -0.0013
pior.compacidade                 -0.0056            0.0307           -0.0215
pior.concavidade                 -0.0062           -0.0302            0.0554
piores.pontos.côncavos           -0.0128           -0.0142            0.0052
pior.simetria                    -0.0239            0.0040           -0.0087
pior.dimensão.fractal            -0.0046            0.0020           -0.0240
                         pontos.côncavos.médios simetria.média
raio.médio                              -0.0029         0.0004
textura.média                            0.0002         0.0039
perímetro.médio                         -0.0015         0.0012
área.média                              -0.0020        -0.0080
suavidade.média                         -0.0074        -0.0039
compacidade.média                        0.0041         0.0272
concavidade.média                        0.0284        -0.0013
pontos.côncavos.médios                   0.0000         0.0094
simetria.média                           0.0094         0.0001
dimensão.fractal.média                  -0.0059        -0.0070
erro.de.raio                             0.0011         0.0041
erro.de.textura                          0.0088         0.0305
erro.de.perímetro                       -0.0004        -0.0023
erro.de.área                            -0.0073        -0.0226
erro.de.suavidade                       -0.0136        -0.0642
erro.de.compacidade                     -0.0190        -0.0132
erro.de.concavidade                     -0.0113        -0.0246
erro.de.pontos.côncavos                  0.0136        -0.0130
erro.de.simetria                        -0.0054         0.2279
erro.de.dimensão.fractal                -0.0182        -0.0381
pior.raio                                0.0003         0.0020
pior.textura                            -0.0002        -0.0007
pior.perímetro                           0.0010         0.0027
pior.área                                0.0009        -0.0056
pior.suavidade                          -0.0176        -0.0638
pior.compacidade                        -0.0141        -0.0015
pior.concavidade                         0.0010        -0.0214
piores.pontos.côncavos                   0.0269        -0.0063
pior.simetria                           -0.0051         0.3684
pior.dimensão.fractal                   -0.0195        -0.0350
                         dimensão.fractal.média erro.de.raio erro.de.textura
raio.médio                              -0.0034       0.0009         -0.0032
textura.média                            0.0124       0.0019         -0.0772
perímetro.médio                         -0.0013       0.0001         -0.0038
área.média                               0.0121      -0.0021         -0.0038
suavidade.média                          0.0107       0.0002          0.0145
compacidade.média                        0.0365      -0.0018         -0.0029
concavidade.média                       -0.0101       0.0002         -0.0020
pontos.côncavos.médios                  -0.0059       0.0011          0.0088
simetria.média                          -0.0070       0.0041          0.0305
dimensão.fractal.média                   0.0000      -0.0051          0.0268
erro.de.raio                            -0.0051       0.0000         -0.0019
erro.de.textura                          0.0268      -0.0019          0.0000
erro.de.perímetro                       -0.0023       0.0015          0.0001
erro.de.área                            -0.0005       0.0004         -0.0348
erro.de.suavidade                        0.0065      -0.0029          0.0564
erro.de.compacidade                      0.0026      -0.0026          0.0279
erro.de.concavidade                     -0.0227       0.0015          0.0011
erro.de.pontos.côncavos                 -0.0451       0.0015          0.0259
erro.de.simetria                         0.0051      -0.0004          0.1118
erro.de.dimensão.fractal                 0.1110       0.0021          0.0492
pior.raio                                0.0012       0.0019          0.0066
pior.textura                            -0.0008      -0.0002          0.0064
pior.perímetro                          -0.0010      -0.0012          0.0060
pior.área                                0.0192      -0.0028          0.0157
pior.suavidade                          -0.0165      -0.0002         -0.0361
pior.compacidade                        -0.0208       0.0003         -0.0245
pior.concavidade                        -0.0495       0.0018         -0.0271
piores.pontos.côncavos                  -0.0420       0.0017         -0.0242
pior.simetria                           -0.0319       0.0029         -0.0271
pior.dimensão.fractal                    0.0948       0.0007         -0.0154
                         erro.de.perímetro erro.de.área erro.de.suavidade
raio.médio                         -0.0002      -0.0004           -0.0055
textura.média                      -0.0009      -0.0070            0.0225
perímetro.médio                     0.0025       0.0007           -0.0082
área.média                         -0.0012       0.0156            0.0147
suavidade.média                    -0.0044      -0.0015           -0.0072
compacidade.média                   0.0117      -0.0046           -0.0305
concavidade.média                  -0.0056       0.0097           -0.0085
pontos.côncavos.médios             -0.0004      -0.0073           -0.0136
simetria.média                     -0.0023      -0.0226           -0.0642
dimensão.fractal.média             -0.0023      -0.0005            0.0065
erro.de.raio                        0.0015       0.0004           -0.0029
erro.de.textura                     0.0001      -0.0348            0.0564
erro.de.perímetro                   0.0000       0.0052           -0.0234
erro.de.área                        0.0052       0.0000           -0.0084
erro.de.suavidade                  -0.0234      -0.0084            0.0001
erro.de.compacidade                -0.0042      -0.0050            0.0921
erro.de.concavidade                -0.0263       0.0008            0.0464
erro.de.pontos.côncavos             0.0033      -0.0415            0.0710
erro.de.simetria                    0.0073      -0.0315            0.0440
erro.de.dimensão.fractal           -0.0344      -0.0158            0.1028
pior.raio                          -0.0060      -0.0087            0.0067
pior.textura                        0.0001       0.0010           -0.0030
pior.perímetro                      0.0056      -0.0072            0.0008
pior.área                          -0.0097       0.0108            0.0325
pior.suavidade                     -0.0097       0.0140            0.1542
pior.compacidade                    0.0129       0.0129           -0.0342
pior.concavidade                   -0.0023       0.0167           -0.0293
piores.pontos.côncavos              0.0052      -0.0040           -0.0275
pior.simetria                       0.0029      -0.0075           -0.0922
pior.dimensão.fractal              -0.0053       0.0168           -0.0088
                         erro.de.compacidade erro.de.concavidade
raio.médio                            0.0003             -0.0047
textura.média                         0.0014             -0.0166
perímetro.médio                      -0.0002             -0.0100
área.média                           -0.0009              0.0016
suavidade.média                       0.0128              0.0173
compacidade.média                     0.0159             -0.0591
concavidade.média                    -0.0307              0.0659
pontos.côncavos.médios               -0.0190             -0.0113
simetria.média                       -0.0132             -0.0246
dimensão.fractal.média                0.0026             -0.0227
erro.de.raio                         -0.0026              0.0015
erro.de.textura                       0.0279              0.0011
erro.de.perímetro                    -0.0042             -0.0263
erro.de.área                         -0.0050              0.0008
erro.de.suavidade                     0.0921              0.0464
erro.de.compacidade                   0.0000              0.0172
erro.de.concavidade                   0.0172              0.0000
erro.de.pontos.côncavos               0.0428              0.1232
erro.de.simetria                      0.0336             -0.0305
erro.de.dimensão.fractal              0.0804              0.0665
pior.raio                             0.0041              0.0089
pior.textura                         -0.0004              0.0008
pior.perímetro                        0.0032             -0.0020
pior.área                             0.0088              0.0200
pior.suavidade                        0.0118              0.0396
pior.compacidade                      0.0229             -0.0709
pior.concavidade                     -0.0339              0.0797
piores.pontos.côncavos               -0.0208              0.0104
pior.simetria                        -0.0223             -0.0292
pior.dimensão.fractal                -0.0038             -0.0503
                         erro.de.pontos.côncavos erro.de.simetria
raio.médio                               -0.0020           0.0002
textura.média                             0.0030           0.0057
perímetro.médio                          -0.0066           0.0005
área.média                               -0.0214          -0.0013
suavidade.média                           0.0164          -0.0069
compacidade.média                        -0.0284           0.0161
concavidade.média                        -0.0147          -0.0162
pontos.côncavos.médios                    0.0136          -0.0054
simetria.média                           -0.0130           0.2279
dimensão.fractal.média                   -0.0451           0.0051
erro.de.raio                              0.0015          -0.0004
erro.de.textura                           0.0259           0.1118
erro.de.perímetro                         0.0033           0.0073
erro.de.área                             -0.0415          -0.0315
erro.de.suavidade                         0.0710           0.0440
erro.de.compacidade                       0.0428           0.0336
erro.de.concavidade                       0.1232          -0.0305
erro.de.pontos.côncavos                   0.0002          -0.0312
erro.de.simetria                         -0.0312           0.0007
erro.de.dimensão.fractal                  0.0421          -0.0266
pior.raio                                 0.0123           0.0032
pior.textura                             -0.0010          -0.0023
pior.perímetro                            0.0077           0.0038
pior.área                                 0.0023           0.0002
pior.suavidade                            0.0165          -0.0497
pior.compacidade                         -0.0558           0.0065
pior.concavidade                         -0.0127          -0.0301
piores.pontos.côncavos                    0.0878          -0.0257
pior.simetria                            -0.0627           0.4130
pior.dimensão.fractal                    -0.0733          -0.0455
                         erro.de.dimensão.fractal pior.raio pior.textura
raio.médio                                 0.0004    0.0005       0.0000
textura.média                              0.0019   -0.0004       0.0013
perímetro.médio                           -0.0036   -0.0005       0.0000
área.média                                 0.0062   -0.0031       0.0002
suavidade.média                            0.0178    0.0027      -0.0003
compacidade.média                         -0.0189   -0.0026      -0.0008
concavidade.média                         -0.0229   -0.0023       0.0003
pontos.côncavos.médios                    -0.0182    0.0003      -0.0002
simetria.média                            -0.0381    0.0020      -0.0007
dimensão.fractal.média                     0.1110    0.0012      -0.0008
erro.de.raio                               0.0021    0.0019      -0.0002
erro.de.textura                            0.0492    0.0066       0.0064
erro.de.perímetro                         -0.0344   -0.0060       0.0001
erro.de.área                              -0.0158   -0.0087       0.0010
erro.de.suavidade                          0.1028    0.0067      -0.0030
erro.de.compacidade                        0.0804    0.0041      -0.0004
erro.de.concavidade                        0.0665    0.0089       0.0008
erro.de.pontos.côncavos                    0.0421    0.0123      -0.0010
erro.de.simetria                          -0.0266    0.0032      -0.0023
erro.de.dimensão.fractal                  -0.0001    0.0133      -0.0003
pior.raio                                  0.0133   -0.0021       0.0000
pior.textura                              -0.0003    0.0000      -0.0002
pior.perímetro                            -0.0011    0.0038      -0.0001
pior.área                                  0.0253    0.0055      -0.0001
pior.suavidade                             0.0187    0.0009       0.0016
pior.compacidade                          -0.0541   -0.0078       0.0003
pior.concavidade                          -0.0606   -0.0043       0.0008
piores.pontos.côncavos                    -0.0403    0.0007       0.0008
pior.simetria                             -0.0831    0.0000       0.0020
pior.dimensão.fractal                      0.1029   -0.0030       0.0006
                         pior.perímetro pior.área pior.suavidade
raio.médio                      -0.0005   -0.0047         0.0001
textura.média                   -0.0001   -0.0003        -0.0152
perímetro.médio                  0.0003   -0.0049        -0.0023
área.média                      -0.0032    0.0089         0.0085
suavidade.média                  0.0007    0.0021         0.0271
compacidade.média                0.0043   -0.0065        -0.0292
concavidade.média               -0.0015    0.0062        -0.0013
pontos.côncavos.médios           0.0010    0.0009        -0.0176
simetria.média                   0.0027   -0.0056        -0.0638
dimensão.fractal.média          -0.0010    0.0192        -0.0165
erro.de.raio                    -0.0012   -0.0028        -0.0002
erro.de.textura                  0.0060    0.0157        -0.0361
erro.de.perímetro                0.0056   -0.0097        -0.0097
erro.de.área                    -0.0072    0.0108         0.0140
erro.de.suavidade                0.0008    0.0325         0.1542
erro.de.compacidade              0.0032    0.0088         0.0118
erro.de.concavidade             -0.0020    0.0200         0.0396
erro.de.pontos.côncavos          0.0077    0.0023         0.0165
erro.de.simetria                 0.0038    0.0002        -0.0497
erro.de.dimensão.fractal        -0.0011    0.0253         0.0187
pior.raio                        0.0038    0.0055         0.0009
pior.textura                    -0.0001   -0.0001         0.0016
pior.perímetro                  -0.0021    0.0023        -0.0035
pior.área                        0.0023    0.0000         0.0053
pior.suavidade                  -0.0035    0.0053         0.0000
pior.compacidade                -0.0012   -0.0160         0.0001
pior.concavidade                -0.0044   -0.0040         0.0237
piores.pontos.côncavos           0.0008   -0.0094         0.0129
pior.simetria                   -0.0005   -0.0178        -0.0268
pior.dimensão.fractal           -0.0083    0.0001         0.0173
                         pior.compacidade pior.concavidade
raio.médio                         0.0047          -0.0004
textura.média                      0.0010          -0.0105
perímetro.médio                    0.0063          -0.0013
área.média                         0.0014           0.0036
suavidade.média                   -0.0056          -0.0062
compacidade.média                  0.0307          -0.0302
concavidade.média                 -0.0215           0.0554
pontos.côncavos.médios            -0.0141           0.0010
simetria.média                    -0.0015          -0.0214
dimensão.fractal.média            -0.0208          -0.0495
erro.de.raio                       0.0003           0.0018
erro.de.textura                   -0.0245          -0.0271
erro.de.perímetro                  0.0129          -0.0023
erro.de.área                       0.0129           0.0167
erro.de.suavidade                 -0.0342          -0.0293
erro.de.compacidade                0.0229          -0.0339
erro.de.concavidade               -0.0709           0.0797
erro.de.pontos.côncavos           -0.0558          -0.0127
erro.de.simetria                   0.0065          -0.0301
erro.de.dimensão.fractal          -0.0541          -0.0606
pior.raio                         -0.0078          -0.0043
pior.textura                       0.0003           0.0008
pior.perímetro                    -0.0012          -0.0044
pior.área                         -0.0160          -0.0040
pior.suavidade                     0.0001           0.0237
pior.compacidade                   0.0000           0.0157
pior.concavidade                   0.0157           0.0000
piores.pontos.côncavos             0.0028           0.0237
pior.simetria                      0.0383           0.0078
pior.dimensão.fractal              0.0400          -0.0046
                         piores.pontos.côncavos pior.simetria
raio.médio                              -0.0002        0.0037
textura.média                           -0.0099       -0.0239
perímetro.médio                         -0.0015        0.0025
área.média                              -0.0071       -0.0025
suavidade.média                         -0.0128       -0.0239
compacidade.média                       -0.0142        0.0040
concavidade.média                        0.0052       -0.0087
pontos.côncavos.médios                   0.0269       -0.0051
simetria.média                          -0.0063        0.3684
dimensão.fractal.média                  -0.0420       -0.0319
erro.de.raio                             0.0017        0.0029
erro.de.textura                         -0.0242       -0.0271
erro.de.perímetro                        0.0052        0.0029
erro.de.área                            -0.0040       -0.0075
erro.de.suavidade                       -0.0275       -0.0922
erro.de.compacidade                     -0.0208       -0.0223
erro.de.concavidade                      0.0104       -0.0292
erro.de.pontos.côncavos                  0.0878       -0.0627
erro.de.simetria                        -0.0257        0.4130
erro.de.dimensão.fractal                -0.0403       -0.0831
pior.raio                                0.0007        0.0000
pior.textura                             0.0008        0.0020
pior.perímetro                           0.0008       -0.0005
pior.área                               -0.0094       -0.0178
pior.suavidade                           0.0129       -0.0268
pior.compacidade                         0.0028        0.0383
pior.concavidade                         0.0237        0.0078
piores.pontos.côncavos                   0.0000        0.0120
pior.simetria                            0.0120        0.0000
pior.dimensão.fractal                   -0.0211       -0.0123
                         pior.dimensão.fractal
raio.médio                              0.0051
textura.média                           0.0012
perímetro.médio                         0.0039
área.média                              0.0139
suavidade.média                        -0.0046
compacidade.média                       0.0020
concavidade.média                      -0.0240
pontos.côncavos.médios                 -0.0195
simetria.média                         -0.0350
dimensão.fractal.média                  0.0948
erro.de.raio                            0.0007
erro.de.textura                        -0.0154
erro.de.perímetro                      -0.0053
erro.de.área                            0.0168
erro.de.suavidade                      -0.0088
erro.de.compacidade                    -0.0038
erro.de.concavidade                    -0.0503
erro.de.pontos.côncavos                -0.0733
erro.de.simetria                       -0.0455
erro.de.dimensão.fractal                0.1029
pior.raio                              -0.0030
pior.textura                            0.0006
pior.perímetro                         -0.0083
pior.área                               0.0001
pior.suavidade                          0.0173
pior.compacidade                        0.0400
pior.concavidade                       -0.0046
piores.pontos.côncavos                 -0.0211
pior.simetria                          -0.0123
pior.dimensão.fractal                   0.0000
summary(U)
   raio.médio         textura.média        perímetro.médio     
 Min.   :-5.495e-03   Min.   :-0.0772062   Min.   :-9.993e-03  
 1st Qu.:-2.660e-03   1st Qu.:-0.0037305   1st Qu.:-2.628e-03  
 Median : 4.355e-05   Median : 0.0003097   Median :-8.852e-05  
 Mean   :-3.927e-04   Mean   :-0.0031385   Mean   :-7.026e-04  
 3rd Qu.: 4.928e-04   3rd Qu.: 0.0017530   3rd Qu.: 1.272e-03  
 Max.   : 5.116e-03   Max.   : 0.0224912   Max.   : 6.305e-03  
   área.média         suavidade.média     compacidade.média   
 Min.   :-0.0214183   Min.   :-0.023853   Min.   :-0.0591187  
 1st Qu.:-0.0029308   1st Qu.:-0.005322   1st Qu.:-0.0080727  
 Median :-0.0004268   Median : 0.000122   Median :-0.0004281  
 Mean   : 0.0009426   Mean   : 0.001076   Mean   :-0.0022211  
 3rd Qu.: 0.0038650   3rd Qu.: 0.004242   3rd Qu.: 0.0053889  
 Max.   : 0.0156171   Max.   : 0.027067   Max.   : 0.0364607  
 concavidade.média    pontos.côncavos.médios simetria.média     
 Min.   :-0.0307314   Min.   :-0.0195365     Min.   :-0.064207  
 1st Qu.:-0.0097635   1st Qu.:-0.0073573     1st Qu.:-0.013151  
 Median :-0.0025169   Median :-0.0009212     Median :-0.001894  
 Mean   :-0.0008980   Mean   :-0.0018468     Mean   : 0.011506  
 3rd Qu.: 0.0002621   3rd Qu.: 0.0010023     3rd Qu.: 0.002513  
 Max.   : 0.0658917   Max.   : 0.0284026     Max.   : 0.368389  
 dimensão.fractal.média  erro.de.raio        erro.de.textura     
 Min.   :-0.0495306     Min.   :-0.0051188   Min.   :-7.721e-02  
 1st Qu.:-0.0093298     1st Qu.:-0.0009911   1st Qu.:-1.253e-02  
 Median :-0.0009237     Median : 0.0002581   Median : 5.424e-05  
 Mean   : 0.0024237     Mean   : 0.0001221   Mean   : 3.455e-03  
 3rd Qu.: 0.0096498     3rd Qu.: 0.0015429   3rd Qu.: 1.539e-02  
 Max.   : 0.1109682     Max.   : 0.0041465   Max.   : 1.118e-01  
 erro.de.perímetro     erro.de.área        erro.de.suavidade  
 Min.   :-0.0344146   Min.   :-0.0414860   Min.   :-0.092232  
 1st Qu.:-0.0050523   1st Qu.:-0.0074718   1st Qu.:-0.012445  
 Median :-0.0006399   Median :-0.0009944   Median :-0.002942  
 Mean   :-0.0026742   Mean   :-0.0034526   Mean   : 0.009434  
 3rd Qu.: 0.0027921   3rd Qu.: 0.0041489   3rd Qu.: 0.030002  
 Max.   : 0.0128776   Max.   : 0.0167538   Max.   : 0.154228  
 erro.de.compacidade  erro.de.concavidade  erro.de.pontos.côncavos
 Min.   :-0.0339372   Min.   :-0.0709251   Min.   :-0.0733428     
 1st Qu.:-0.0040738   1st Qu.:-0.0212038   1st Qu.:-0.0197380     
 Median : 0.0008201   Median : 0.0008184   Median : 0.0008758     
 Mean   : 0.0073605   Mean   : 0.0047527   Mean   : 0.0020112     
 3rd Qu.: 0.0151292   3rd Qu.: 0.0172859   3rd Qu.: 0.0157358     
 Max.   : 0.0920618   Max.   : 0.1232021   Max.   : 0.1232021     
 erro.de.simetria     erro.de.dimensão.fractal   pior.raio         
 Min.   :-0.0497392   Min.   :-0.0830809       Min.   :-0.0086879  
 1st Qu.:-0.0233265   1st Qu.:-0.0219312       1st Qu.:-0.0022480  
 Median : 0.0002031   Median : 0.0001369       Median : 0.0006038  
 Mean   : 0.0192091   Mean   : 0.0074254       Mean   : 0.0011251  
 3rd Qu.: 0.0063209   3rd Qu.: 0.0236761       3rd Qu.: 0.0036259  
 Max.   : 0.4129508   Max.   : 0.1109682       Max.   : 0.0132523  
  pior.textura        pior.perímetro         pior.área         
 Min.   :-3.002e-03   Min.   :-8.310e-03   Min.   :-0.0178454  
 1st Qu.:-3.088e-04   1st Qu.:-1.396e-03   1st Qu.:-0.0045461  
 Median :-3.195e-05   Median :-9.945e-05   Median : 0.0005618  
 Mean   : 1.907e-04   Mean   : 1.766e-04   Mean   : 0.0028098  
 3rd Qu.: 7.612e-04   3rd Qu.: 2.591e-03   3rd Qu.: 0.0081870  
 Max.   : 6.401e-03   Max.   : 7.733e-03   Max.   : 0.0325055  
 pior.suavidade       pior.compacidade     pior.concavidade   
 Min.   :-0.0638494   Min.   :-0.0709251   Min.   :-0.060586  
 1st Qu.:-0.0138440   1st Qu.:-0.0154928   1st Qu.:-0.019265  
 Median : 0.0001059   Median : 0.0002047   Median :-0.003175  
 Mean   : 0.0026709   Mean   :-0.0043644   Mean   :-0.003432  
 3rd Qu.: 0.0137000   3rd Qu.: 0.0064720   3rd Qu.: 0.003145  
 Max.   : 0.1542278   Max.   : 0.0400287   Max.   : 0.079708  
 piores.pontos.côncavos pior.simetria       pior.dimensão.fractal
 Min.   :-0.0420343     Min.   :-0.092232   Min.   :-0.073343    
 1st Qu.:-0.0138512     1st Qu.:-0.023878   1st Qu.:-0.014659    
 Median :-0.0008583     Median :-0.003790   Median :-0.003399    
 Mean   :-0.0025354     Mean   : 0.012663   Mean   :-0.001186    
 3rd Qu.: 0.0046012     3rd Qu.: 0.002897   3rd Qu.: 0.003426    
 Max.   : 0.0877942     Max.   : 0.412951   Max.   : 0.102893    

Vemos que um modelo com seis fatores está bem selecionado.

Escores Fatoriais

Vamos obter os scores faoriais por Regressão

mfo4 <- factanal(dados, factors = 6, 
                 rotation = "varimax", scores = "regression", lower = 0.01)
mfo4

Call:
factanal(x = dados, factors = 6, scores = "regression", rotation = "varimax",     lower = 0.01)

Uniquenesses:
              raio.médio            textura.média          perímetro.médio 
                   0.010                    0.119                    0.010 
              área.média          suavidade.média        compacidade.média 
                   0.015                    0.109                    0.073 
       concavidade.média   pontos.côncavos.médios           simetria.média 
                   0.074                    0.050                    0.562 
  dimensão.fractal.média             erro.de.raio          erro.de.textura 
                   0.189                    0.012                    0.417 
       erro.de.perímetro             erro.de.área        erro.de.suavidade 
                   0.038                    0.065                    0.551 
     erro.de.compacidade      erro.de.concavidade  erro.de.pontos.côncavos 
                   0.140                    0.277                    0.326 
        erro.de.simetria erro.de.dimensão.fractal                pior.raio 
                   0.635                    0.328                    0.010 
            pior.textura           pior.perímetro                pior.área 
                   0.010                    0.010                    0.027 
          pior.suavidade         pior.compacidade         pior.concavidade 
                   0.177                    0.099                    0.119 
  piores.pontos.côncavos            pior.simetria    pior.dimensão.fractal 
                   0.089                    0.558                    0.181 

Loadings:
                         Factor1 Factor2 Factor3 Factor4 Factor5 Factor6
raio.médio                0.966                  -0.146          -0.161 
textura.média             0.251                           0.900         
perímetro.médio           0.964           0.106  -0.129          -0.160 
área.média                0.978                                  -0.102 
suavidade.média           0.191   0.814           0.393  -0.119  -0.142 
compacidade.média         0.460   0.614   0.568                         
concavidade.média         0.641   0.429   0.553           0.101         
pontos.côncavos.médios    0.801   0.429   0.307                  -0.145 
simetria.média            0.155   0.515   0.295   0.248                 
dimensão.fractal.média   -0.307   0.608   0.496   0.294                 
erro.de.raio              0.808           0.161   0.419           0.359 
erro.de.textura                  -0.116   0.136   0.543   0.501         
erro.de.perímetro         0.791           0.238   0.405           0.332 
erro.de.área              0.851           0.102   0.315           0.315 
erro.de.suavidade        -0.147   0.140   0.167   0.616                 
erro.de.compacidade       0.166   0.226   0.867   0.153                 
erro.de.concavidade       0.163   0.129   0.808   0.153                 
erro.de.pontos.côncavos   0.375   0.166   0.644   0.295                 
erro.de.simetria                          0.337   0.495                 
erro.de.dimensão.fractal          0.170   0.750   0.274                 
pior.raio                 0.957   0.147          -0.194   0.128         
pior.textura              0.205   0.177                   0.954         
pior.perímetro            0.949   0.176          -0.187   0.130         
pior.área                 0.955   0.132          -0.150   0.119         
pior.suavidade                    0.895                                 
pior.compacidade          0.317   0.629   0.560  -0.248   0.169         
pior.concavidade          0.437   0.530   0.578  -0.214   0.172         
piores.pontos.côncavos    0.680   0.538   0.332  -0.168   0.116         
pior.simetria             0.107   0.589   0.194  -0.182                 
pior.dimensão.fractal             0.703   0.528  -0.135           0.118 

               Factor1 Factor2 Factor3 Factor4 Factor5 Factor6
SS loadings     10.080   4.920    4.80   2.232   2.189   0.509
Proportion Var   0.336   0.164    0.16   0.074   0.073   0.017
Cumulative Var   0.336   0.500    0.66   0.734   0.807   0.824

Test of the hypothesis that 6 factors are sufficient.
The chi square statistic is 10182.43 on 270 degrees of freedom.
The p-value is 0 
head(mfo4$scores)
     Factor1    Factor2    Factor3     Factor4    Factor5    Factor6
2  1.7288595  2.4531129  1.2777904 -0.43687487 -2.3426240  3.2626232
3  1.7282102 -0.6578609 -0.6726333 -1.44719264 -0.7322082 -0.3072519
4  1.5324033  0.5814115  0.3013718  0.17712126 -0.4080242 -0.6639204
5 -0.9200642  4.1455832  1.9997781  0.58309911 -0.3599088  0.7518071
6  1.8454308 -0.5501883  0.3186203  0.59492660 -1.7475615 -1.2129584
7 -0.5098009  2.5890584  0.1764559 -0.08240137 -0.7117288  0.2147492

K-nn para Regressão

  • Vamos fazer uma aplicação de k-vizinhos próximos para prever valores do meu banco de dados, vamos utilizar a variável resposta perímetro.médio e usar as outras covariaveis.

Modelo básico

Realizando o ajuste de k vizinhos próximos através do método básico com a função knnreg da biblioteca caret, lembrando que por default é feito com 5 vizinhos mais próximos.

fit1 <- caret::knnreg(perímetro.médio~., data = dados)
fit1
5-nearest neighbor regression model

Treinando o modelo com a biblioteca caret

Podemos utilizar a função train da biblioteca caret para treinar o modelo de K-NN.

fit2 <- caret::train(perímetro.médio~.,
                     data = dados,
                     method = "knn")
Carregando pacotes exigidos: ggplot2
Carregando pacotes exigidos: lattice
fit2
k-Nearest Neighbors 

569 samples
 29 predictor

No pre-processing
Resampling: Bootstrapped (25 reps) 
Summary of sample sizes: 569, 569, 569, 569, 569, 569, ... 
Resampling results across tuning parameters:

  k  RMSE      Rsquared   MAE     
  5  3.592740  0.9791554  2.070163
  7  3.711423  0.9780132  2.101150
  9  3.812619  0.9769091  2.121743

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was k = 5.

Podemos ver de acordo com a saída que o melhor valor para o k, foi igual a 5, tendo um bom pseudo \(R^2\), e um erro quadrático médio baixo.

plot(fit2)

Como podemos ver o melhor valor de k parece ser 5.

Pré-Processamento

Em alguns momentos precisa-se realizar o pré-processamento, pois em algumas ocasiões as escalas acabam interferindo bastante no resultado.

fit3 <- caret::train(perímetro.médio~.,
                     data = dados,
                     method = "knn", 
                     preProcess = c("center", "scale"))
fit3
k-Nearest Neighbors 

569 samples
 29 predictor

Pre-processing: centered (29), scaled (29) 
Resampling: Bootstrapped (25 reps) 
Summary of sample sizes: 569, 569, 569, 569, 569, 569, ... 
Resampling results across tuning parameters:

  k  RMSE      Rsquared   MAE     
  5  8.070353  0.8981331  5.964822
  7  7.908674  0.9058284  5.794071
  9  7.779467  0.9118861  5.672658

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was k = 9.

Padronizando é observado que o melhor valor para k é igual a 7

plot(fit3)

Avaliando o modelo com holdout

Precisamos dividir nosso conjunto de dados em um conjunto de treinamento, onde os modelos serão ajustados, e um conjunto de teste, que será utilizado para avaliar o modelo. Utilizaremos aqui a função createDataPartition para a divisão do conjunto de dados.

holdout <- caret::createDataPartition(dados$perímetro.médio, p = 0.80, list = F)
treino <- dados[holdout,]
teste <- dados[-holdout,]
fit4 <- caret::train(perímetro.médio~.,
                     data = treino, 
                     preProcess = c("center", "scale"),
                     method = "knn")
fit4
k-Nearest Neighbors 

457 samples
 29 predictor

Pre-processing: centered (29), scaled (29) 
Resampling: Bootstrapped (25 reps) 
Summary of sample sizes: 457, 457, 457, 457, 457, 457, ... 
Resampling results across tuning parameters:

  k  RMSE      Rsquared   MAE     
  5  8.015162  0.9008997  5.881954
  7  7.853036  0.9075358  5.774026
  9  7.815003  0.9109550  5.735265

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was k = 9.
plot(fit4)

O melhor valor de k = 9.

Vamos agora aplicar no conjunto de teste para ver como está o ajuste. Precisamos retirar a variável resposta do conjunto de teste, e após isso realizar o cálculo do \(R^2\) e do RMSE.

teste.features <- subset(teste, select = -c(perímetro.médio))
teste.target <- subset(teste, select = perímetro.médio)[,1]


predictions <- predict(fit4, newdata = teste.features)
  • Calculando o RMSE
sqrt(mean((teste.target-predictions)^2))
[1] 7.36615
  • Calculando o \(R^2\)
cor(teste.target,predictions)^2
[1] 0.9147878

Podemos observar que foi muito bom os valores do modelo preditivo ajustado através de holdout.

Avaliando o modelo com validação cruzada

Na biblioteca caret, podemos utilizar a função trainControl para definir parâmetros de treinamento. No caso de 10-fold cross-validation, passamos os argumentos method = "cv" e number = 10.

controle <- caret::trainControl(method = "cv",
                                number = 10)

fit5 <- caret::train(perímetro.médio~.,
                     data = treino,
                     method = "knn",
                     preProcess = c("center", "scale"),
                     trControl = controle)
fit5
k-Nearest Neighbors 

457 samples
 29 predictor

Pre-processing: centered (29), scaled (29) 
Resampling: Cross-Validated (10 fold) 
Summary of sample sizes: 413, 413, 411, 413, 410, 412, ... 
Resampling results across tuning parameters:

  k  RMSE      Rsquared   MAE     
  5  7.277717  0.9159251  5.393223
  7  7.368890  0.9163806  5.378811
  9  7.437837  0.9184780  5.509509

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was k = 5.

Utilizando o método de validação cruzada, é observado que o melhor valor de k = 7.

plot(fit5)

predictions2 <- predict(fit5, newdata = teste.features)
  • Calculando o RMSE
sqrt(mean((teste.target-predictions2)^2))
[1] 7.276594
  • Calculando o \(R^2\)
cor(teste.target,predictions2)^2
[1] 0.9136107

É observado que através de validação cruzada temos resultados melhores, mais precisos através do pseudo \(R^2\) e do RMSE.

Tunning do número de vizinhos

Uma estratégia para escolha do melhor número de vizinhos é variar o valor desse parâmetro em um grid.

tunegrid <- expand.grid(k = seq(5,11, by = 1))
fit6 <- caret::train(perímetro.médio~.,
                     data = treino, 
                     method = "knn",
                     preProcess = c("center", "scale"),
                     trControl = controle,
                     tuneGrid = tunegrid)
fit6
k-Nearest Neighbors 

457 samples
 29 predictor

Pre-processing: centered (29), scaled (29) 
Resampling: Cross-Validated (10 fold) 
Summary of sample sizes: 410, 410, 411, 413, 411, 413, ... 
Resampling results across tuning parameters:

  k   RMSE      Rsquared   MAE     
   5  7.198116  0.9215971  5.340789
   6  7.250916  0.9219637  5.368308
   7  7.325585  0.9217172  5.443864
   8  7.422808  0.9200252  5.497716
   9  7.393251  0.9226273  5.491161
  10  7.394359  0.9237557  5.501378
  11  7.465179  0.9239968  5.525425

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was k = 5.
plot(fit6)

O melhor valor de k é igual a 5.

Avaliando no conjunto de teste

predictions3 <- predict(fit6, newdata = teste.features)
  • Calculando o RMSE
sqrt(mean((teste.target-predictions3)^2))
[1] 7.276594
  • Calculando o \(R^2\)
cor(teste.target,predictions3)^2
[1] 0.9136107

Conclusão

Devido a aplicação do método K-NN para a regressão com o objetivo de predizer alguns valores da variável perímetro médio, obtivemos que o melhor método foi o com validação cruzada e k = 7, tendo um pseudo coeficiente de determinação de 91.36%, e um RMSE de 7.2766. Sendo assim o método utilizado de para prever possíveis valores.

Árvore de Regressão

Modelo básico

Para o ajuste do modelo básico de árvore de regressão, podemos usar a função rpart da biblioteca rpart. Precisamos passar apenas três argumentos, a equação, o conjunto de dados e o método.

fit7 <- rpart::rpart(perímetro.médio~.,
                     data = dados,
                     method = "anova")
fit7
n= 569 

node), split, n, deviance, yval
      * denotes terminal node

 1) root 569 335370.2000  91.96903  
   2) raio.médio< 15.29 408  54943.5000  79.33843  
     4) raio.médio< 12.305 195  11107.5000  69.48795  
       8) raio.médio< 10.46 61   1537.5800  59.94148 *
       9) raio.médio>=10.46 134   1479.9730  73.83373 *
     5) raio.médio>=12.305 213   7592.4940  88.35648  
      10) raio.médio< 13.705 119    952.4389  83.86294 *
      11) raio.médio>=13.705 94   1195.3360  94.04511 *
   3) raio.médio>=15.29 161  50391.3000 123.97700  
     6) raio.médio< 19.045 91   4671.7970 111.87360  
      12) raio.médio< 17.015 44    383.8043 105.43860 *
      13) raio.médio>=17.015 47    760.2898 117.89790 *
     7) raio.médio>=19.045 70  15058.7100 139.71140  
      14) raio.médio< 22.14 57   1748.9260 133.69120 *
      15) raio.médio>=22.14 13   2186.0290 166.10770 *
summary(fit7)
Call:
rpart::rpart(formula = perímetro.médio ~ ., data = dados, method = "anova")
  n= 569 

          CP nsplit  rel error     xerror        xstd
1 0.68591483      0 1.00000000 1.00420029 0.072311359
2 0.10807014      1 0.31408517 0.32294582 0.025951727
3 0.09142374      2 0.20601502 0.20853654 0.024664683
4 0.03316859      3 0.11459128 0.12525605 0.012710062
5 0.02412243      4 0.08142269 0.11005892 0.010604271
6 0.01623495      5 0.05730026 0.06619568 0.004259971
7 0.01051883      6 0.04106531 0.04801982 0.003839565
8 0.01000000      7 0.03054647 0.04221059 0.003551602

Variable importance
            raio.médio             área.média              pior.raio 
                    20                     19                     16 
             pior.área         pior.perímetro           erro.de.área 
                    16                     16                     10 
pontos.côncavos.médios      erro.de.suavidade 
                     1                      1 

Node number 1: 569 observations,    complexity param=0.6859148
  mean=91.96903, MSE=589.4028 
  left son=2 (408 obs) right son=3 (161 obs)
  Primary splits:
      raio.médio     < 15.29     to the left,  improve=0.6859148, (0 missing)
      área.média     < 729.75    to the left,  improve=0.6857838, (0 missing)
      pior.raio      < 19.27     to the left,  improve=0.6691834, (0 missing)
      pior.área      < 1160.5    to the left,  improve=0.6689590, (0 missing)
      pior.perímetro < 119.6     to the left,  improve=0.6684549, (0 missing)
  Surrogate splits:
      área.média     < 726.85    to the left,  agree=0.996, adj=0.988, (0 split)
      pior.raio      < 17.69     to the left,  agree=0.963, adj=0.870, (0 split)
      pior.área      < 974.15    to the left,  agree=0.963, adj=0.870, (0 split)
      pior.perímetro < 119.25    to the left,  agree=0.961, adj=0.863, (0 split)
      erro.de.área   < 43.45     to the left,  agree=0.916, adj=0.702, (0 split)

Node number 2: 408 observations,    complexity param=0.1080701
  mean=79.33843, MSE=134.6654 
  left son=4 (195 obs) right son=5 (213 obs)
  Primary splits:
      raio.médio     < 12.305    to the left,  improve=0.6596505, (0 missing)
      área.média     < 467.25    to the left,  improve=0.6576341, (0 missing)
      pior.área      < 569.3     to the left,  improve=0.6374670, (0 missing)
      pior.raio      < 13.455    to the left,  improve=0.6373706, (0 missing)
      pior.perímetro < 87.3      to the left,  improve=0.6279011, (0 missing)
  Surrogate splits:
      área.média        < 466.6     to the left,  agree=0.990, adj=0.979, (0 split)
      pior.raio         < 13.455    to the left,  agree=0.934, adj=0.862, (0 split)
      pior.área         < 569.3     to the left,  agree=0.929, adj=0.851, (0 split)
      pior.perímetro    < 87.8      to the left,  agree=0.914, adj=0.821, (0 split)
      erro.de.suavidade < 0.006535  to the right, agree=0.691, adj=0.354, (0 split)

Node number 3: 161 observations,    complexity param=0.09142374
  mean=123.977, MSE=312.9895 
  left son=6 (91 obs) right son=7 (70 obs)
  Primary splits:
      raio.médio     < 19.045    to the left,  improve=0.6084541, (0 missing)
      área.média     < 1103      to the left,  improve=0.6019915, (0 missing)
      pior.raio      < 23.2      to the left,  improve=0.5000142, (0 missing)
      pior.perímetro < 157.35    to the left,  improve=0.4974496, (0 missing)
      pior.área      < 1470      to the left,  improve=0.4710607, (0 missing)
  Surrogate splits:
      área.média             < 1103      to the left,  agree=0.981, adj=0.957, (0 split)
      pior.raio              < 23.2      to the left,  agree=0.888, adj=0.743, (0 split)
      pior.perímetro         < 151.65    to the left,  agree=0.876, adj=0.714, (0 split)
      pior.área              < 1616.5    to the left,  agree=0.870, adj=0.700, (0 split)
      pontos.côncavos.médios < 0.092635  to the left,  agree=0.758, adj=0.443, (0 split)

Node number 4: 195 observations,    complexity param=0.02412243
  mean=69.48795, MSE=56.96153 
  left son=8 (61 obs) right son=9 (134 obs)
  Primary splits:
      raio.médio     < 10.46     to the left,  improve=0.7283319, (0 missing)
      área.média     < 331.6     to the left,  improve=0.7283319, (0 missing)
      pior.perímetro < 75.935    to the left,  improve=0.6990720, (0 missing)
      pior.raio      < 11.315    to the left,  improve=0.6832267, (0 missing)
      pior.área      < 391.3     to the left,  improve=0.6832267, (0 missing)
  Surrogate splits:
      área.média        < 331.6     to the left,  agree=1.000, adj=1.000, (0 split)
      pior.área         < 395.95    to the left,  agree=0.954, adj=0.852, (0 split)
      pior.raio         < 11.315    to the left,  agree=0.949, adj=0.836, (0 split)
      pior.perímetro    < 71.995    to the left,  agree=0.944, adj=0.820, (0 split)
      erro.de.suavidade < 0.0095425 to the right, agree=0.774, adj=0.279, (0 split)

Node number 5: 213 observations,    complexity param=0.01623495
  mean=88.35648, MSE=35.64551 
  left son=10 (119 obs) right son=11 (94 obs)
  Primary splits:
      raio.médio     < 13.705    to the left,  improve=0.7171187, (0 missing)
      área.média     < 593.95    to the left,  improve=0.7111919, (0 missing)
      pior.área      < 683.95    to the left,  improve=0.5490839, (0 missing)
      pior.perímetro < 99.955    to the left,  improve=0.5460101, (0 missing)
      pior.raio      < 15.685    to the left,  improve=0.5431383, (0 missing)
  Surrogate splits:
      área.média             < 576.7     to the left,  agree=0.981, adj=0.957, (0 split)
      pior.área              < 743.45    to the left,  agree=0.840, adj=0.638, (0 split)
      pior.raio              < 15.235    to the left,  agree=0.836, adj=0.628, (0 split)
      pior.perímetro         < 99.955    to the left,  agree=0.817, adj=0.585, (0 split)
      pontos.côncavos.médios < 0.03519   to the left,  agree=0.676, adj=0.266, (0 split)

Node number 6: 91 observations,    complexity param=0.01051883
  mean=111.8736, MSE=51.33843 
  left son=12 (44 obs) right son=13 (47 obs)
  Primary splits:
      raio.médio     < 17.015    to the left,  improve=0.7551062, (0 missing)
      área.média     < 908.65    to the left,  improve=0.7413634, (0 missing)
      pior.raio      < 20.325    to the left,  improve=0.4809188, (0 missing)
      pior.área      < 1300.5    to the left,  improve=0.4681144, (0 missing)
      pior.perímetro < 132.75    to the left,  improve=0.4377254, (0 missing)
  Surrogate splits:
      área.média     < 890.65    to the left,  agree=0.978, adj=0.955, (0 split)
      pior.raio      < 20.325    to the left,  agree=0.857, adj=0.705, (0 split)
      pior.perímetro < 130.8     to the left,  agree=0.835, adj=0.659, (0 split)
      pior.área      < 1278      to the left,  agree=0.835, adj=0.659, (0 split)
      erro.de.área   < 48.725    to the left,  agree=0.725, adj=0.432, (0 split)

Node number 7: 70 observations,    complexity param=0.03316859
  mean=139.7114, MSE=215.1244 
  left son=14 (57 obs) right son=15 (13 obs)
  Primary splits:
      raio.médio             < 22.14     to the left,  improve=0.7386924, (0 missing)
      área.média             < 1608      to the left,  improve=0.7276027, (0 missing)
      pontos.côncavos.médios < 0.15785   to the left,  improve=0.6054126, (0 missing)
      concavidade.média      < 0.28405   to the left,  improve=0.5263107, (0 missing)
      pior.perímetro         < 188.25    to the left,  improve=0.5242046, (0 missing)
  Surrogate splits:
      área.média             < 1500      to the left,  agree=0.986, adj=0.923, (0 split)
      pior.perímetro         < 200.95    to the left,  agree=0.929, adj=0.615, (0 split)
      pontos.côncavos.médios < 0.15785   to the left,  agree=0.914, adj=0.538, (0 split)
      pior.raio              < 27.955    to the left,  agree=0.914, adj=0.538, (0 split)
      pior.área              < 2400.5    to the left,  agree=0.900, adj=0.462, (0 split)

Node number 8: 61 observations
  mean=59.94148, MSE=25.20623 

Node number 9: 134 observations
  mean=73.83373, MSE=11.04458 

Node number 10: 119 observations
  mean=83.86294, MSE=8.003688 

Node number 11: 94 observations
  mean=94.04511, MSE=12.71634 

Node number 12: 44 observations
  mean=105.4386, MSE=8.722825 

Node number 13: 47 observations
  mean=117.8979, MSE=16.17638 

Node number 14: 57 observations
  mean=133.6912, MSE=30.68291 

Node number 15: 13 observations
  mean=166.1077, MSE=168.1561 
plot(fit7) +
  text(fit7, cex = 1.25)
Error in plot(fit7) + text(fit7, cex = 1.25): argumento não-numérico para operador binário

Treinando o modelo com a biblioteca caret

set.seed(2023)
fit8 <- caret::train(perímetro.médio~.,
                     data = dados,
                     method = "rpart")
Warning in nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo,
: There were missing values in resampled performance measures.
fit8
CART 

569 samples
 29 predictor

No pre-processing
Resampling: Bootstrapped (25 reps) 
Summary of sample sizes: 569, 569, 569, 569, 569, 569, ... 
Resampling results across tuning parameters:

  cp          RMSE      Rsquared   MAE      
  0.09142374  10.97567  0.8024879   8.063808
  0.10807014  12.06318  0.7618080   8.931768
  0.68591483  19.27910  0.6749348  15.082394

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was cp = 0.09142374.
plot(fit8)

Pré-Processamento

  • Realizando o pré-processamento, onde padronizaremos as variáveis
fit9 <- caret::train(perímetro.médio~.,
                     data = dados, 
                     preProcess = c("center", "scale"),
                     method = "rpart")
Warning in nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo,
: There were missing values in resampled performance measures.
fit9
CART 

569 samples
 29 predictor

Pre-processing: centered (29), scaled (29) 
Resampling: Bootstrapped (25 reps) 
Summary of sample sizes: 569, 569, 569, 569, 569, 569, ... 
Resampling results across tuning parameters:

  cp          RMSE      Rsquared   MAE      
  0.09142374  10.05929  0.8249522   7.502874
  0.10807014  11.79070  0.7591914   8.915633
  0.68591483  19.05394  0.6734306  15.040888

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was cp = 0.09142374.
plot(fit9)

Podemos observar que o pseudo \(R^2\) houve uma melhora, e o parâmetro de complexidade permanece o mesmo.

Avaliando o modelo com holdout

  • Neste caso como já separamos os bancos utilizaremos os que já foram separados, pois o objetivo é aplicar ao mesmo conjunto de teste e ver o que foi melhor ajustado.
fit10 <- caret::train(perímetro.médio~.,
                      data = treino, 
                      method = "rpart", 
                      preProcess = c("center", "scale"))
Warning in nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo,
: There were missing values in resampled performance measures.
fit10
CART 

457 samples
 29 predictor

Pre-processing: centered (29), scaled (29) 
Resampling: Bootstrapped (25 reps) 
Summary of sample sizes: 457, 457, 457, 457, 457, 457, ... 
Resampling results across tuning parameters:

  cp          RMSE      Rsquared   MAE      
  0.08514093  10.17472  0.8297123   7.548917
  0.11439362  12.79752  0.7323413   9.539386
  0.68460884  17.68209  0.6726753  13.656217

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was cp = 0.08514093.
plot(fit10)

Calculando o RMSE e coeficiente de determinação

O objetivo é analisar o desempenho do método para regressão

predic4 <- predict(fit10,newdata = teste.features)
  • Calculando o RMSE
sqrt(mean((teste.target-predic4)^2))
[1] 9.668827
  • Calculando o \(R^2\)
cor(teste.target,predic4)^2
[1] 0.8308839

Podemos observar que o método para regressão baseado em K-NN foi bem melhor na predição dos valores.

Avaliando o modelo com validação cruzada

controle1 <- caret::trainControl(method = "repeatedcv", 
                                 number = 10, 
                                 repeats = 10)
fit11 <- caret::train(perímetro.médio~.,
                      data = treino,
                      method = "rpart",
                      preProcess = c("center","scale"),
                      trControl = controle1)
Warning in nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo,
: There were missing values in resampled performance measures.
fit11
CART 

457 samples
 29 predictor

Pre-processing: centered (29), scaled (29) 
Resampling: Cross-Validated (10 fold, repeated 10 times) 
Summary of sample sizes: 411, 411, 410, 411, 410, 412, ... 
Resampling results across tuning parameters:

  cp          RMSE      Rsquared   MAE      
  0.08514093  10.04970  0.8380151   7.527505
  0.11439362  12.60432  0.7399381   9.566289
  0.68460884  19.57475  0.6513747  15.402152

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was cp = 0.08514093.
plot(fit11)

  • Vamos avaliar o poder preditivo no conjunto de teste.
predic5 <- predict(fit11, newdata = teste.features)
  • Calculando o RMSE
sqrt(mean((teste.target-predic5)^2))
[1] 9.668827
  • Calculando o \(R^2\)
cor(teste.target,predic5)^2
[1] 0.8308839

Tunning do parâmetro de complexidade

Uma estratégia para escolha do melhor valor para o parâmetro de complexidade é variar o valor desse parâmetro em um grid.

tunegrid2 <- expand.grid(cp = seq(0,1, by= 0.01))
fit12 <- caret::train(perímetro.médio~.,
                      data = treino, 
                      method = "rpart",
                      trControl = controle1,
                      preProcess = c("center","scale"),
                      tuneGrid = tunegrid2)
Warning in nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo,
: There were missing values in resampled performance measures.
fit12
CART 

457 samples
 29 predictor

Pre-processing: centered (29), scaled (29) 
Resampling: Cross-Validated (10 fold, repeated 10 times) 
Summary of sample sizes: 412, 410, 412, 413, 410, 413, ... 
Resampling results across tuning parameters:

  cp    RMSE       Rsquared   MAE      
  0.00   3.152805  0.9848763   1.877292
  0.01   5.063422  0.9602391   3.810418
  0.02   6.507816  0.9312560   5.125201
  0.03   7.988958  0.8971524   6.361693
  0.04   8.817843  0.8766934   6.828139
  0.05   8.806650  0.8766587   6.823837
  0.06   8.806650  0.8766587   6.823837
  0.07   8.806650  0.8766587   6.823837
  0.08   9.118079  0.8658225   7.013314
  0.09  10.798392  0.8142961   7.855215
  0.10  10.947646  0.8099123   7.920758
  0.11  11.212026  0.7979419   8.180569
  0.12  13.717898  0.6941487  10.746822
  0.13  13.806239  0.6906580  10.873601
  0.14  13.806239  0.6906580  10.873601
  0.15  13.806239  0.6906580  10.873601
  0.16  13.806239  0.6906580  10.873601
  0.17  13.806239  0.6906580  10.873601
  0.18  13.806239  0.6906580  10.873601
  0.19  13.806239  0.6906580  10.873601
  0.20  13.806239  0.6906580  10.873601
  0.21  13.806239  0.6906580  10.873601
  0.22  13.806239  0.6906580  10.873601
  0.23  13.806239  0.6906580  10.873601
  0.24  13.806239  0.6906580  10.873601
  0.25  13.806239  0.6906580  10.873601
  0.26  13.806239  0.6906580  10.873601
  0.27  13.806239  0.6906580  10.873601
  0.28  13.806239  0.6906580  10.873601
  0.29  13.806239  0.6906580  10.873601
  0.30  13.806239  0.6906580  10.873601
  0.31  13.806239  0.6906580  10.873601
  0.32  13.806239  0.6906580  10.873601
  0.33  13.806239  0.6906580  10.873601
  0.34  13.806239  0.6906580  10.873601
  0.35  13.806239  0.6906580  10.873601
  0.36  13.806239  0.6906580  10.873601
  0.37  13.806239  0.6906580  10.873601
  0.38  13.806239  0.6906580  10.873601
  0.39  13.806239  0.6906580  10.873601
  0.40  13.806239  0.6906580  10.873601
  0.41  13.806239  0.6906580  10.873601
  0.42  13.806239  0.6906580  10.873601
  0.43  13.806239  0.6906580  10.873601
  0.44  13.806239  0.6906580  10.873601
  0.45  13.806239  0.6906580  10.873601
  0.46  13.806239  0.6906580  10.873601
  0.47  13.806239  0.6906580  10.873601
  0.48  13.806239  0.6906580  10.873601
  0.49  13.806239  0.6906580  10.873601
  0.50  13.806239  0.6906580  10.873601
  0.51  13.806239  0.6906580  10.873601
  0.52  13.806239  0.6906580  10.873601
  0.53  13.806239  0.6906580  10.873601
  0.54  13.806239  0.6906580  10.873601
  0.55  13.806239  0.6906580  10.873601
  0.56  13.806239  0.6906580  10.873601
  0.57  13.806239  0.6906580  10.873601
  0.58  13.806239  0.6906580  10.873601
  0.59  13.806239  0.6906580  10.873601
  0.60  13.806239  0.6906580  10.873601
  0.61  13.806239  0.6906580  10.873601
  0.62  13.806239  0.6906580  10.873601
  0.63  13.806239  0.6906580  10.873601
  0.64  13.806239  0.6906580  10.873601
  0.65  13.806239  0.6906580  10.873601
  0.66  13.806239  0.6906580  10.873601
  0.67  13.806239  0.6906580  10.873601
  0.68  15.251344  0.6815618  11.994796
  0.69  22.672301  0.6322528  17.789005
  0.70  24.289772  0.5715743  19.010858
  0.71  24.388356        NaN  19.071390
  0.72  24.388356        NaN  19.071390
  0.73  24.388356        NaN  19.071390
  0.74  24.388356        NaN  19.071390
  0.75  24.388356        NaN  19.071390
  0.76  24.388356        NaN  19.071390
  0.77  24.388356        NaN  19.071390
  0.78  24.388356        NaN  19.071390
  0.79  24.388356        NaN  19.071390
  0.80  24.388356        NaN  19.071390
  0.81  24.388356        NaN  19.071390
  0.82  24.388356        NaN  19.071390
  0.83  24.388356        NaN  19.071390
  0.84  24.388356        NaN  19.071390
  0.85  24.388356        NaN  19.071390
  0.86  24.388356        NaN  19.071390
  0.87  24.388356        NaN  19.071390
  0.88  24.388356        NaN  19.071390
  0.89  24.388356        NaN  19.071390
  0.90  24.388356        NaN  19.071390
  0.91  24.388356        NaN  19.071390
  0.92  24.388356        NaN  19.071390
  0.93  24.388356        NaN  19.071390
  0.94  24.388356        NaN  19.071390
  0.95  24.388356        NaN  19.071390
  0.96  24.388356        NaN  19.071390
  0.97  24.388356        NaN  19.071390
  0.98  24.388356        NaN  19.071390
  0.99  24.388356        NaN  19.071390
  1.00  24.388356        NaN  19.071390

RMSE was used to select the optimal model using the smallest value.
The final value used for the model was cp = 0.
plot(fit12)

  • Vamos avaliar o poder preditivo no conjunto de teste.
predic6 <- predict(fit12, newdata = teste.features)
  • Calculando o RMSE
sqrt(mean((teste.target-predic6)^2))
[1] 2.478303
  • Calculando o \(R^2\)
cor(teste.target,predic6)^2
[1] 0.9897916

Conclusão

O método árvore de Regressão se mostrou mais eficiente para o conjunto de dados, tendo bom valores preditos cada vez mais próximos dos valores verdadeiros, quando utilizamos o valor do parâmetro de complexidade igual a 0, o coeficiente de determinação no conjunto de teste foi aproximadamente 1.