Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #### Faire une corrélation linéaire et regression linéaire
- ### Afin de regarder le lien 1. regarder si il existe un lien linéaire entre deux variables quantivatives,
- ### 2. si ce lien existe, on peut avoir un deuxieme objectif qui sera de prédir la variable y a aprtir de la variable x
- ### au moyen d'une droite de regression linéaire
- # étape 0 : lecture des données
- attach(nbgenes)
- # Etape 1 description des données
- #Y le nombre de gene, X la taille
- # Séparer les eucaryote des procaryote qui sont des sytemes biologiques différents
- pro=nbgenes[Domaine=="Procaryote",]
- View(pro)
- eu=nbgenes[Domaine=="Eucaryote",]
- View(eu)
- #Procaryote
- plot(pro$NbGenes ~ pro$ValeurC)
- # on remarque qu'il y a une valeur en position 18 est fausse,on va l'enlever
- plot(pro$NbGenes[-18] ~ pro$ValeurC[-18])
- # Calcul de coefficient de corrélation linéaire
- cor.test(pro$NbGenes[-18],pro$ValeurC[-18])
- # commentaire : r = 0.97
- # IC (intervalle de confiance) = [0.94 ; 0.99] au niveau de confiance 0.95
- # Test sur le coefficient de corrélation
- # H0 : r=0 <=> pas de corrélation linéaire entre les variables
- # et H1 : r différent de 0, ce qui equivat a dire que corrélation linéaire entre x et y
- # Pour ce etst la on peut en conclure : au seuil 5%, la pvalue est bien inférieur a 0.05, on rejtte H0, il existe une corrélation linéaire entre les variables
- # J'ai calculé mmon r, j'ai fait mon test, est ce que sttaitistuqmeent on est tout bon ici?
- # On peut pas encore valider le test totalement encore
- # Conditio,ns d'applicatio,n du test
- # vérifier la normalité des deonnées
- # il faut faire un shapiro.test sur x et sur y
- shap(ro.test(pro$NbGenes[-18])
- shapiro.test(pro$ValeurC[-18])
- ### Passons a l'étued des eucaryotes
- plot(eu$NbGenes ~ eu$ValeurC)
- cor.test(eu$NbGenes,eu$ValeurC)
- # ICi on propose un changement en log10, pour garder mles mammiferes
- Y=log10(eu$NbGenes)
- X=log10(eu$ValeurC)
- plot(X~Y)
- cor.test(Y,X)
- Ce qu'on objecverse en log10 c'est que nos données graphiquement vont s'aligne rsur une droite, et le coef de corrélation a 0.86 bien plus important avec un pvalue significative, et on va vérifier la normalkité des données pour savoir si on peut faire confiance a notre pvalue ici
- shapiro sur y et shapiro sur x'
- shapiro.test(Y)
- shapiro.test(X)
- # commentaire : r = 0.86
- # IC (intervalle de confiance) = [0.63 ; 0.96] au niveau de confiance 0.95
- # Test sur le coefficient de corrélation
- # H0 : r=0 <=> pas de corrélation linéaire entre les variables
- # et H1 : r différent de 0, ce qui equivat a dire que corrélation linéaire entre x et y
- # Pour ce etst la on peut en conclure : au seuil 5%, la pvalue est bien inférieur a 0.05, on rejtte H0, il existe une corrélation linéaire entre les variables
- ### On va pouvoir a commencer a anbalyse rles données. L'étape 2 c'est le calcul de la droite qu'on va ajuster dessus
- # Etape 2 : calcul de la droite
- # calcul de la droite
- droite=lm(Y~X)
- # afficher les résultats
- summary(droite)
- # Y = 0.36413x+2.27495
- # Etape 3 : validation du modèle, 4 choses a vérifier (voir cours)
- # i) Calculer le R²
- # R²=0.73 (c'est pas mal sur des données réelles)
- # H0 : r²=0 <=> X n'expliquye pas Y
- #H1 : r² est différent de 0 <=< X explique Y
- #a) test de Wald
- # H0 : a=0
- #H1 : a différent de 0 (on veut etre sous h1 ici)
- (test conservateur)
- # b) Test du rapport de vraisemblance
- (principe)
- H1 : Y = aX+b
- H0 : Y = b
- P[droiteH1] - P[droiteH0]
- #H0 : Y=B
- #H1 : Y=AX+B
- anova(droite,test="Chisq")
- #conclusion : au seuilm 5%, pvalue = 3.303e-05
- #on rejette H0
- #a différent de 0
- # iii) validation des erreurs Résidus
- plot(rstudent(droite))
- abline(h=c(-2,0,2))
- # iv) calcul de la distance de cook
- plot(cooks.distance(droite))
- d=4/(length(Y)-1-1)
- abline(h=d)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement