Fonction segmented

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Cyrielle Jac
Messages : 55
Enregistré le : 13 Mar 2017, 08:30

Fonction segmented

Messagepar Cyrielle Jac » 28 Juin 2019, 14:17

Bonjour à tous,

J'aimerais savoir si il est possible de contraindre les pentes des segments avec la fonction segmented.
Je m'explique, je souhaiterais qu'une des pente de mes segments (soit celui avant soit celui après du breakpoint) soit nulle.
Quelqu'un sait-il si c'est possible?

Bonne canicule à tous


Cyrielle JAC

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: Fonction segmented

Messagepar Serge Rapenne » 28 Juin 2019, 14:35

Bonjour,

Un exemple de données serait le bienvenue, parce que là ta question ressemble un peu à du serbo-croate pour moi

Serge

Cyrielle Jac
Messages : 55
Enregistré le : 13 Mar 2017, 08:30

Re: Fonction segmented

Messagepar Cyrielle Jac » 02 Juil 2019, 18:24

Bonjour,

Je vais essayer de mieux expliquer ma situation. Alors du coup j'ai un jeu de données x et y.
Et je cherche quel modèle segmenté colle le mieux. Donc j'ai trouvé comment codé un modèle avec un seul breakpoint et une pente nulle avant ce breakpoint :

a <- lm(y~x)
g<- segmented(a, seg.Z = ~ y, psi = 1)
g
fit.glm<-update(a,.~. -y)
fit.seg1 <- segmented.lm(fit.glm, seg.Z = ~y, psi=1)
summary(fit.seg1)

J'ai aussi trouvé comment codé un modèle avec un seul breakpoint et une pente nulle après ce breakpoint :

g<- segmented.lm(a, seg.Z = ~ y)
g
o<-lm(y~1)
xx<- -x
o2<-segmented(o,seg.Z=~xx,psi= -1)

Mais je n'ai pas trouvé comment codé un modèle avec 2 breakpoints et 2 pente nulle. Je souhaite avoir un modèle où slope 1 = 0, slope 2 = -..... et slope 3 = 0.
Savez vous comment faire cela avec la fonction segmented?

Bonne soirée

Cyrielle

Cyrielle Jac
Messages : 55
Enregistré le : 13 Mar 2017, 08:30

Re: Fonction segmented

Messagepar Cyrielle Jac » 03 Juil 2019, 15:54

Personne n'a d'idée pour m'aider?

Cyrielle Jac
Messages : 55
Enregistré le : 13 Mar 2017, 08:30

Re: Fonction segmented

Messagepar Cyrielle Jac » 04 Juil 2019, 08:35

Voila ce que ca donne avec un exemple de données :
#Example data
y <- c(4.5,4.3,2.57,4.40,4.52,1.39,4.15,3.55,2.49,4.27,4.42,4.10,2.21,2.90,1.42,1.50,1.45,1.7,4.6,3.8,1.9)
x <- c(320,419,650,340,400,800,300,570,720,480,425,460,675,600,850,920,975,1022,450,520,780)
plot(x, y, col="black",pch=16)

# slope =0 before the first breakpoint
a<-lm(y~x)
g<- segmented(a, seg.Z = ~ x, psi=c(400,800))
g
fit.glm<-update(a,.~. -x)
fit.seg1 <- segmented.lm(fit.glm, seg.Z = ~x, psi=c(441.8,817.4))
points(x,fitted(fit.seg1),col=2)
summary(fit.seg1)


# slope = 0 after the second breakpoin
o<-lm(y~1)
xx<- -x
o2<-segmented(o,seg.Z=~xx,psi=c(-817.4,-441.8))
slope(o2)
points(x,fitted(o2),col=3)

Mais je n'arrive pas à coder pour avoir slope1 = 0 et slope 3 =0. Quelqu'un aurais une solution?

Cyrielle

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Fonction segmented

Messagepar Pierre-Yves Berrard » 04 Juil 2019, 09:54

Bonjour,
De quelle package provient cette fonction 'segmented' ?
PY


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité