#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Feb  3 15:47:38 2024

@author: matthieu
"""
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import numpy.random as rd



#un test exccat on obtient  50 fois 1 lors de 600 lancers d'un dé probabilité d'obtenir ce résultat avec un de non truqué
from scipy.special import comb

p=0
N=600
for i in range(0,51):
    p+=comb(N,i,exact=True)*pow(1/6,i)*pow(5/6,(N-i))
print(p)

#%% AVC avec fisher
from scipy.stats import fisher_exact
Donnees=[[176, 230], [21035, 21018]]
res=fisher_exact(Donnees)
print(res)



#%% AVC avec chi^2
from scipy.stats import chi2_contingency
Donnees=[[176, 230], [21035, 21018]]
res=chi2_contingency(Donnees)
print(res.pvalue)



#%% Oiseuax
from scipy.stats import chi2_contingency
Oiseaux=[
    [677   ,    198],
	[408   ,   260],
	[270   ,   187],
	[300   ,	89],
	[198   ,	91],
	[150   ,	50],
	[137   ,	32],
	[106   ,	48],
	[119   ,	24],
	[34    ,	39],
	[57    ,	15],
	[457   ,	125	]]
res=chi2_contingency(Oiseaux)
print(res.pvalue)

#%% Anova dahut  levrogyre
from scipy.stats import f_oneway
X1=np.array([43.6, 56.3, 57.1, 63.3, 63.8, 56.7, 64.3, 68.8, 82.4, 54.3, 70.3,
       50. , 60.1, 63.8, 44.3, 54.4])
X2=np.array([58.8, 60.8, 61. , 61.7, 60.8, 62.2, 59.4, 62.8, 60. , 62.2, 62.1,
       59.9, 60.7, 61.8, 62.2])

_,pvalue=f_oneway(X1,X2)
print(pvalue)

#%%ù anova multiple

B=np.array([53.3, 60.6, 52.9, 60.8, 57.8, 54. , 55. , 57.7, 58.1, 51.8, 45.2,57. ])
V=np.array([56.5, 61.9, 65.3, 61.5, 60.2, 56.1, 59.3, 53.7, 62.2, 57.2, 57.9,70.8, 58.7, 61.1])
O=np.array([59.1, 62. , 55.5, 55.5, 53.3, 58.6, 61.4, 65.4, 59.8, 64.7, 61.7,58.7, 53.8, 62.9, 56.5, 69.2])
C=np.array([53.3, 60.6, 52.9, 60.8, 57.8, 54. , 55. , 57.7, 58.1, 51.8, 45.2,57. ])

from scipy.stats import f_oneway
_,pvalue=f_oneway(B,V,O,C)
print(pvalue)


#%% mercure
Mercure=pd.read_csv('données/mercure_poissons/poissons_simplifie.csv')
#%%

import scipy.stats as stats
X=list(Mercure['Total_Hg(nano g/g)'])
I=stats.norm.interval(confidence=0.95,loc=np.mean(X),scale=stats.sem(X))
print(I)

#%% Naseux noirs
D=[76,102,12,39,55,93,98,53,102]

stats.t.interval(confidence=0.95, df= len(D)-1, loc=np.mean(D), scale=stats.sem(D))