Bonjour ,
J'ai une base de données de vins de 10 lignes (produits) et 60 colonnes(consommateurs) de laquelle je veux effectuer 500 tirages d'un échantillon de 30 colonnes que j'appelle vin1, appliquer une régression, calculer les prédictions en chaque point d'un espace discrétisé que j'ai posé et récupérer les notes ainsi que les % des consos, et puis refaire ceci pour l'échantillon complémentaire vin2 restant après extraction de vin1.
Dans ce programme, je veux calculer l'écart moyen entre les notes2 de ech2 et les notes1 de ech1 ainsi que l'écart entre % conso.
J'ai posé le programme suivant, je ne sais pas comment je peux récupérer ces écarts en un tableau directement .
D'abord pouvez-vous m'aider à m'assurer de la validité de mon programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
n=500
for (i in (1:n)) {
    vin1=sample(hedovin,30)
    colnames(vin1)
    {
        # Estimation 
        # discretspace espace déjà défini de 50*50 points auxquels je vais affecter les notes ainsi que nbconsos
        notes=rep(0,nrow(discretspace)) 
        nbconsos=rep(0,nrow(discretspace))
 
        for (nom in names(vin1))
        {
            modele=as.formula(paste(nom,"~I(F1*F1)+I(F2*F2)+F1*F2"))
            reg=lm(modele,data=vin1)
            pr=predict(reg,newdata=discretspace)
            preference=(pr> mean(vin1[[nom]])) # Les préférences sont définies telles que les pr sont supérieurs au moyennes des notes par conso
            notes=notes+pr
            nbconsos=nbconsos+preference
        }
 
        nb.conso=length(colnames(vin1))
        nb.conso
        notes1=notes/nb.conso
        nbconsos1=nbconsos*100/nb.conso
 
    }
 
    vin2=hedovin[-c(vin1[,]),-c(vin1[,])]
    {
 
 
        for (nom in names(vin2))
        {
            modele=as.formula(paste(nom,"~I(F1*F1)+I(F2*F2)+F1*F2"))
            reg=lm(modele,data=vin1)
            pr=predict(reg,newdata=discretspace)
            preference=(pr> mean(vin2[[nom]]))
            notes=notes+pr
            nbconsos=nbconsos+preference
        }
 
        nb.conso=length(colnames(vin1))
        nb.conso
        notes2=notes/nb.conso
        nbconsos2=nbconsos*100/nb.conso
        summary(nbconsos)
 
    }
 
    Ecartnote[i]=sum((notes2-notes1)^2)/(nbpoints^2)
    Ecartconso[i]=sum((nbconsos2-nbconsos1)^2)/(nbpoints^2)
}
Merci d'avance