Bonjour, j'ai un projet a rendre pour bientot je suis en galère si quelqu'un peut m'aider merci :
On souhaite obtenir un meilleur estimateur des coefficients d’un modèle linéaire en
partant de l’estimateur des moindres carrés usuel.
Utiliser un jeu de données noté D de votre choix comportant 2 variables, l’une
dépendante, l’ autre explicative, (de taille n environ égal 30 ).
Donner les estimations des coefficients du modèle linéaire de la régression.
Un échantillon bootstrap B est un échantillon de taille n tiré aléatoirement avec remise
dans D.
Estimer les coefficients du modèle linéaire à partir des données de B.
Reconstruire de façon similaire K=50 autres jeux de données B, et recalculer les
estimateurs des coefficients du modèle linéaire.
On tracera sur le même graphe le nuage de points initial ainsi que toutes les droites de
régréssion obtenues. Commenter.
Cette procédure permet d’obtenir K estimateurs pour chaque coefficient. La moyenne des K
estimateurs fournit un nouvel estimateur appelé estimateur par bootstrap pour chaque
coefficient.
On donnera des illustrations de la distribution des K valeurs de chaque coefficient.
Comparer les estimateurs obtenus à partir de D aux estimateurs bootstrap.
Que se passerait-il si on réalisait la même procédure avec K=500 plutôt que 50 ?
Voila ce que l'on a déja fait:
library(MASS)
data()
D=data.frame(Orange)
D
# Tree age(days) circumference(mm)
#1 1 118 30
#2 1 484 58
#3 1 664 87
#4 1 1004 115
#5 1 1231 120
#6 1 1372 142
#7 1 1582 145
#8 2 118 33
#9 2 484 69
#10 2 664 111
#11 2 1004 156
#12 2 1231 172
#13 2 1372 203
#14 2 1582 203
#15 3 118 30
#16 3 484 51
#17 3 664 75
#18 3 1004 108
#19 3 1231 115
#20 3 1372 139
#21 3 1582 140
#22 4 118 32
#23 4 484 62
#24 4 664 112
#25 4 1004 167
#26 4 1231 179
#27 4 1372 209
#28 4 1582 214
#29 5 118 30
#30 5 484 49
#31 5 664 81
#32 5 1004 125
#33 5 1231 142
#34 5 1372 174
#35 5 1582 177
summary(Orange)
# Tree age circumference
# 3:7 Min. : 118,0 Min. : 30,0
# 1:7 1st Qu.: 484,0 1st Qu.: 65,5
# 5:7 Median :1004,0 Median :115,0
# 2:7 Mean : 922,1 Mean :115,9
# 4:7 3rd Qu.:1372,0 3rd Qu.:161,5
# Max. :1582,0 Max. :214,0
attach(Orange)
X=age
Y=circumference
res.reg=lm(Y~X)
res.reg
#Call:
#lm(formula = Y ~ X)
#
#Coefficients:
#(Intercept) X
# 17,3997 0,1068
#Soit a=0.1068
# b=17.3997
# tel que Y=aX+b
b=sample(1:35,35,replace=TRUE)
b
[1] 34 13 28 3 31 1 31 20 26 35 18 5 34 34 28 5 25 4 20 24 30 13 2 3 7
[26] 16 23 16 7 31 4 28 24 16 26
B=D[b, ]
B
Tree age circumference
34 5 1372 174
13 2 1372 203
28 4 1582 214
3 1 664 87
31 5 664 81
1 1 118 30
31.1 5 664 81
20 3 1372 139
26 4 1231 179
35 5 1582 177
18 3 1004 108
5 1 1231 120
34.1 5 1372 174
34.2 5 1372 174
28.1 4 1582 214
5.1 1 1231 120
25 4 1004 167
4 1 1004 115
20.1 3 1372 139
24 4 664 112
30 5 484 49
13.1 2 1372 203
2 1 484 58
3.1 1 664 87
7 1 1582 145
16 3 484 51
23 4 484 62
16.1 3 484 51
7.1 1 1582 145
31.2 5 664 81
4.1 1 1004 115
28.2 4 1582 214
24.1 4 664 112
16.2 3 484 51
26.1 4 1231 179
detach(Orange)
attach(B)
X=age
Y=circumference
res.reg=lm(Y~X)
res.reg> > > >
Call:
lm(formula = Y ~ X)
Coefficients:
(Intercept) X
7,8803 0,1158
On est donc bloqué au moment ou on doit faire une boucle pour réitérer l'opération K=50 fois.
Merci de votre aide.
Partager