2
I’m working out a little bit with the lists and trying to create statistical operations with them and I’m having a hard time calculating the covariance
Basically I’m trying to create separate elements and perform the calculation as a product between two summations of the same index i.
Basically, a list for samples X, ump for samples Y One to calculate the total sum of the length of each list (The sum of the list of X and the list Y gives the total N). I started the i in 1 counters to match the operation (n-1) And I basically tried to create the standard deviation for X and the standard deviation for Y, divide it by adding up the length of the lists X and Y and then display the covariance as a numerical result
This is my code
#Covariância
#Índice referente ao número da amostra.
n=int(input("Insira o número total de amostras"))
#Contador para percorrer os índices
i=1 #Amostras X e Amostras Y
Amostrax=[]
Amostray=[]
#Tamanho total da lista de cada variável
for i in range(n):
#Adiciona o valor da amostra X dentro da lista de amostras
Amostrasx.append(int(input("Insira o valor das amostras associadas a X")))
#Escreve a lista de amostras X na tela para o usuário
print(Amostrasx)
#Soma das variáveis para gerar as médias de X e Y
Xi = 0
Nx = len(Amostrax)
j=1
for j in range(n):
#Adiciona o valor da amostra X dentro da lista de amostras
Amostrasy.append(int(input("Insira o valor das amostras associadas a Y")))
#Escreve a lista de amostras X na tela para o usuário
print(Amostrasy)
Yi = 0
Ny = len(Amostray)
#Preenchendo as listas de amostras
for amostraix in Amostrax:
Xi +=amostraix
for amostraiy in Amostray:
Yi +=amostraiy
Médiax=Xi/Nx
Médiay=Yi/Ny
print ("Esse é o valor da soma das amostras", Xi)
print ("Esse é o valor da soma das amostras", Yi)
print ("Este é a quantidade de amostras X que você possui", Nx)
print ("Este é a quantidade de amostras Y que você possui", Ny)
print ("Esta é a média da variável X", Médiax)
print ("Esta é a média da variável Y", Médiay)
DesviosMédiosx=[]
DesviosMédiosy=[]
for i in range (n):
DesviosMédiosx.append(Amostrax[i]-Médiax)
XiMenosXmédio=0
for desviosmediosi in DesviosMédiosx:
XiMenosXmédio+=DesviosMédios[i]
for j in range (n):
DesviosMédiosy.append(Amostray[j]-Médiay)
YiMenosXmédio=0
for desviosmediosi in DesviosMédiosy:
YiMenosYmédio+=DesviosMédios[j]
Covariância=(XiMenosXmédio*YiMenosXmédio)/(Nx+Ny)
print ("Este é cada desvio médio individual:", DesviosMédiosx)
print ("Este é cada desvio médio individual:", DesviosMédiosy)
print ("Este é o desvio médio:",Covariância)
The problem was solved by Elton Nunes in the post below, just wanted to edit to attach an alternative solution using another formula that is mathematically equivalent and that I managed to develop (References - Estimates and Experimental Errors in Physics - Editora UERJ, 3 edição, page 26)
#Covariância
#Índice referente ao espaço amostral associadas as variáveis X e Y.
n=int(input("Insira o número total de amostras"))
#Contador para percorrer os índices
i=1 #Amostras X e Amostras Y
Amostrax=[]
Amostray=[]
Amostraxy=[]
#Tamanho total da lista de cada variável
for i in range(n):
#Adiciona o valor da amostra X dentro da lista de amostras
Amostrax.append(int(input("Insira o valor das amostras associadas a X")))
#Escreve a lista de amostras X na tela para o usuário
print("Estas são as amostras da variável X:", Amostrax)
#Soma das variáveis para gerar as médias de X e Y
Xi = 0
Nx = len(Amostrax)
j=1
for j in range(n):
#Adiciona o valor da amostra X dentro da lista de amostras
Amostray.append(int(input("Insira o valor das amostras associadas a Y")))
#Escreve a lista de amostras X na tela para o usuário
print(Amostray)
Yi = 0
Ny = len(Amostray)
#Preenchendo as listas de amostras
for amostraix in Amostrax:
Xi +=amostraix
for amostraiy in Amostray:
Yi +=amostraiy
Médiax=Xi/Nx
Médiay=Yi/Ny
for k in range(n):
Amostraxy.append(Amostrax[k]*Amostray[k])
Nxy=len(Amostraxy)
XiYi=0
for amostraixy in Amostraxy:
XiYi +=amostraixy
Médiaxy=XiYi/Nxy
Covariância=Médiaxy-(Médiax * Médiay)
print ("Esse é o valor da soma das amostras X", Xi)
print ("Esse é o valor da soma das amostras Y", Yi)
print ("Este é o produto das amostras X e Y:", Amostraxy)
print ("Este é a quantidade de amostras X que você possui", Nx)
print ("Este é a quantidade de amostras Y que você possui", Ny)
print ("Esta é a média da variável X", Médiax)
print ("Esta é a média da variável Y", Médiay)
print ("Esta é a média do produto X com Y:", Médiaxy)
print ("Esta é a covariância:", Covariância)
I’m taking a look at what the statement of 'Deviations' should look like'?
– Elton Nunes
The operation concerning the sum, of (Xi - Xmedio) / Nx is the mean deviation of X and (Yi-médiay) is the mean deviation of Y so I separated into 2 lists, Deviations and Deviations
– Kioolz
yes, but you are using before declaring, this generating an error is not?
– Elton Nunes
Yeah, I didn’t know that’s where that mistake was. ?
– Kioolz
before using them, however they will be empty and will give another error, index error out of range
– Elton Nunes