[R-br] Matriz de correlação entre vetores de diferentes tamanhos
ASANTOS
alexandresantosbr em yahoo.com.br
Quinta Março 17 15:56:28 BRT 2016
Caros Listeiros,
Eu consegui avançar um pouco na questão, mas eu estou com
dificuldades em criar um objeto com todos os testes das matrizes de
correlação, sendo que o output desejado é:
s_var1 s_var2 s_var3 s_var4
s_var1 1 1.0000 0.7665 0.2913 0.2681
s_var2 1 -0.0301 1.0000 0.9630 0.8734
s_var3 1 0.1066 -0.0047 1.0000 0.6261
s_var4 1 0.1118 -0.0161 0.0493 1.0000
...
s_var1 99 1.0000 0.7665 0.2913 0.2681
s_var2 99 -0.0301 1.0000 0.9630 0.8734
s_var3 99 0.1066 -0.0047 1.0000 0.6261
s_var4 99 0.1118 -0.0161 0.0493 1.0000
Dessa maneira em um único objeto e que esse objeto não fosse um list.
Alguém poderia me ajudar? Meu novo CRM é:
## Dados
-----------------------------------------------------------------------
var1<-rnorm(200,5,0.25)## Tamanho do vetor: 200 valores
var2<-1:500 ## Tamanho do vetor: 500 valores
var3<-rnorm(100,5,0.25)## Tamanho do vetor: 100 valores
var4<-500:1## Tamanho do vetor: 500 valores
###
#Função by Walmes
pn <- function(X){crossprod(!is.na(X))}
cor.prob <- function(X){
pair.SampSize <- pn(X)
above1 <- row(pair.SampSize) < col(pair.SampSize)
pair.df <- pair.SampSize[above1] - 2
R <- cor(X, use="pair")
above2 <- row(R) < col(R)
r2 <- R[above2]^2
Fstat <- (r2 * pair.df)/(1 - r2)
R[above2] <- 1 - pf(Fstat, 1, pair.df)
R
}
#
# Deixando os vetores com mesmo tamanho
tam=100 #tamanho da amostra
n_sim<-99#numero de simulações
RES<-NULL
for(i in length(n_sim)){
s_var1<-sample(var1,tam)
s_var2<-sample(var2,tam)
s_var3<-sample(var3,tam)
s_var4<-sample(var4,tam)
dados<-cbind(s_var1,s_var2,s_var3,s_var4)
correla <- round(cor.prob(dados),4)
res=cbind(n_sim[i],correla)
RES=cbind(RES,res)
}
#
Obrigado
--
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT CEP: 78.200-000
Fone: (+55) 65 8132-8112 (TIM) (+55) 65 9686-6970 (VIVO)
e-mails:alexandresantosbr em yahoo.com.br
alexandre.santos em cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
OrcID: orcid.org/0000-0001-8232-6722
Researchgate: https://www.researchgate.net/profile/Alexandre_Santos10
LinkedIn: https://br.linkedin.com/in/alexandre-dos-santos-87961635
======================================================================
Em 16/03/2016 14:58, ASANTOS escreveu:
> correla <- round(cor.prob(var1,var2,var3,var4),4)
Mais detalhes sobre a lista de discussão R-br