Modèle de différence 1ère

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

Ludovic CHANE-HIME
Messages : 17
Enregistré le : 23 Jan 2007, 10:47

Modèle de différence 1ère

Messagepar Ludovic CHANE-HIME » 24 Jan 2007, 20:59

bonsoir à tous

dans le cadre de mon diplome, j'étudie pour m'entrainer la base de donnée Cigarette présente dans la librairie Ecdat.

Mon scripte est le suivant:
library(Ecdat)
library(plm)
data(Cigarette)
fix(Cigarette)
summary(Cigarette)

#Pour présenter les données

m1 = pdata.frame(Cigarette,"state","year","cigaret")

#Création log de taxs, log de cpi, log avgprs, log packpc
table(Cigarette$year)
ltaxs=log(Cigarette$taxs)
lcpi=log(Cigarette$cpi)
lavgprs=log(Cigarette$avgprs)
lpackpc=log(Cigarette$packpc)
ltax=log(Cigarette$tax)

tapply(Cigarette$packpc,Cigarette$state,min)
tapply(Cigarette$packpc,Cigarette$state,max)
length(Cigarette$packpc)

#####################################################################################

#####test d'exogenéité de variable explicative#####

exo=packpc~ltaxs+ltax+lavgprs+pop
ht=plm(exo,data=cigaret, methode="ht")

##est ce que les taxes sont exogènes##
httaxs = plm(exo,~ltaxs,data=cigaret,model="ht")
phtest(ht,httaxs)
#
## est ce que les taxes(ltax) sont exogènes##
htax = plm(exo,~ltax,data=cigaret,model="ht")
phtest(ht,htax)
#
##est ce que le niveau des prix est exogène##
htcpi = plm(exo,~lcpi,data=cigaret,model="ht")
phtest(ht,htcpi)
#
##est ce que le niveau moyen des prix est exogène##
htavgprs = plm(exo,~lavgprs,data=cigaret,model="ht")
phtest(ht,htavgprs)
#
##est ce que la population est exogène##
htpop = plm(exo,~pop,data=cigaret,model="ht")
phtest(ht,htpop)
#
summary(ht)
###
###stat descriptive des variables###
summary(ltaxs)
summary(lcpi)
summary(lavgprs)
summary(lpackpc)

####On peut conclure que les données sont correctes.###

#################### Phase 1 Modèle à effets fixes ###############################
########
########## WithIn ##########################
##log DC = b0 + b1 logtaxs + b2 Logcpi + b3 Logavgprs + b4 logpackpc + b5 population + epsilon
zzw <- plm(packpc~ltaxs+ltax+lcpi+lavgprs+pop, data=cigaret, methode="Within")
summary(zzw)

#longueur des variables
length(diff(lag(Cigarette$packpc)))
length(diff(lag((log(Cigarette$taxs)))))
length(diff(lag((ltaxs))))
length(diff(lag((ltax))))
length(diff(lag((lcpi))))
length(diff(lag((lavgprs))))
length(diff(lag((Cigarette$pop))))
############Interprétation

########## Différences Premières #################
zzdp = lm(diff(lag(income))~diff(lag(ltaxs))+diff(lag(ltax))+diff(lag(lcpi))+diff(lag(lavgprs))+diff(lag(Cigarette$pop))+diff(lag(Cigarette$packpc)), data=cigaret)
summary(zzdp)
########Interprétation


######### Estimation du modèle par les MCO ##########

zzmco <- plm(packpc~ltaxs+ltax+lcpi+lavgprs+Cigarette$pop, data=cigaret, methode="pooling")
summary(zzmco)

########Interprétation

########### Test sur les effets ###################
##########Test d'Haussman###############
phtest(zzmco,zzw)

###Q= 5,1616
qchisq(0.95,df=5)
###khi²=11.07 > 5,1616 => on accepte H0

##Calcul des effets fixes
FE(zzw)
FE(zzw)- mean(FE(zzw))

##Test de Fisher d'abscence d'effets individuels
###Q=[(SCR0-SCR1)/SCR1]x[dl1/dl0-dl1]=

################## Phase 2 Modèle à Erreurs composés

## Between
zzbe <- plm(packpc~ltaxs+ltax+lcpi+lavgprs+pop, data=cigaret, methode="between")
summary(zzbe)

#########Interprétation


## mcqg swar

zzmcqg <- plm(packpc~ltaxs+ltax+lcpi+lavgprs+pop, data=cigaret, methode="random")
summary(zzmcqg)
#########Interprétation
####mcqg amemiya
zzmcqgam <- plm(packpc~ltaxs+ltax+lcpi+lavgprs+pop, data=cigaret, methode="random", theta.method="amemiya")
summary(zzmcqgam)
####mcqg amemiya
zzmcqgner <- plm(packpc~ltaxs+ltax+lcpi+lavgprs+pop, data=cigaret, methode="random", theta.method="nerlove")
summary(zzmcqgner)


####################################################################################

###### Test Hausman######
phtest(zzmcqg,zzbe)

####rejet de Ho, seulement zzmcqg est convergent####

phtest(zzmcqg,zzmco)
#######rejet Ho, seulement zzmcqg est convergent####

phtest(zzmcqg,zzw)
#######rejet Ho , zzmcqg est convergent###






###############test breusch-Pagan test d'hétéroscedastiité#######
plmtest(zzmco)
#######heteroscedasticité#######

#####honda####
plmtest (zzmco,type ="honda")


#ici on rejette H0 dc MCQG est optimal ->effets individuels


###test breusch-Pagan test d'hétéroscedastiité Time effect##########

plmtest (zzmco, effect ="time")

########Gourierroux, Holly et Monfort###########

plmtest (zzmco, type="ghm",effect ="twoways")

######Test de F#########

pFtest(zzmco$within,zzmco$pooling)


mais hélas mon estimateur en différence 1ère ne fonctionne pas
De plus, les tests d'exogéneité m'indique que toutes les variables du modèle sont exogènes. Ce qui me semble étrange. Ma variable serait-elle mal spécifié?

je vous remercie d'avance de vos réponses et vous souhaite une excellente nuit.

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 26 Jan 2007, 08:15

Désolé, pas le temps d'explorer ce listing. Pouvez-vous résumer le pb en 1 ou 2 lignes de code et un petit exemple numérique reproductible ?

Renaud

Ludovic CHANE-HIME
Messages : 17
Enregistré le : 23 Jan 2007, 10:47

Messagepar Ludovic CHANE-HIME » 29 Jan 2007, 11:07

je vous remercie pour votre réponse
j'ai simplifié mon scripte et vous indique que la différence première ne fonctionne pas.


library(Ecdat)
library(plm)
data(Cigarette)
#Création log de taxs, log de cpi, log avgprs, log packpc
table(Cigarette$year)
ltaxs=log(Cigarette$taxs)
lcpi=log(Cigarette$cpi)
lavgprs=log(Cigarette$avgprs)
lpackpc=log(Cigarette$packpc)
ltax=log(Cigarette$tax)
########## Différences Premières #################
zzdp = lm(packpc~diff(lag(ltaxs))+diff(lag(ltax))+diff(lag(lcpi))+diff(lag(lavgprs))+diff(lag(Cigarette$pop)), data=cigaret)
summary(zzdp)


merci d'avance pour le débuggage du scripte

bonne journée

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 29 Jan 2007, 18:04

Bonsoir,

Il y a différents problèmes:

1. package plm: je n'ai pas pu installer la version binaire (fichier zip) et j'ai dû repartir des sources: apparamment, il y a un problème avec ce fichier zip et ça vaudrait le coup de le signaler au respondable de la maintenance de ce package. NB: si vous voulez installer à partir des sources, il faut lire le manuel "R Installation and Administration" et suivre les instructions très précisément (ce n'est pas pour les débutants...).

2. Eviter d'utiliser le symbole "=" comme opérateur d'affectation: risque de confusion avec l'opérateur de comparaison "==". Il vaut mieux utiliser "<-".

3. Vous avez fait une faute de frappe dans l'appel de la fct lm: "cigaret" au lieu de "Cigarette".

4. Il y a un conflit possible entre la fct lag du package plm et celle du même nom dans le package stats (chargé automatiquement au démarrage de R).

5. Je ne comprends pas votre utilisation de la fct lag. A mon avis, c'est une erreur et il ne faut pas utiliser cette fonction.

6. La fct diff renvoie un vecteur de longueur n - 1 à partir d'un vecteur de longueur n. Sans comprendre exactement ce que vous voulez faire, je proposerais de transormer votre code en:

Code : Tout sélectionner

> install.packages(pkgs = "plm", lib = "C:/R/Rlibs", type = "source")
essai de l'URL 'http://cran.r-project.org/src/contrib/plm_0.1-2.tar.gz'
Content type 'application/x-tar' length 325383 bytes
URL ouverte
downloaded 317Kb


The downloaded packages are in
        C:\temp\RtmpTyLlrb\downloaded_packages
updating HTML package descriptions
>
> library(Ecdat)
> library(plm)
> data(Cigarette)
>
> ltaxs   <- diff(log(Cigarette$taxs))
> lcpi    <- diff(log(Cigarette$cpi))
> lavgprs <- diff(log(Cigarette$avgprs))
> lpackpc <- diff(log(Cigarette$packpc))
> ltax    <- diff(log(Cigarette$tax))
> dpackpc <- Cigarette$packpc[-1]
> dpop    <- Cigarette$pop[-1]
>
> zzdp <- lm(dpackpc ~ ltaxs + ltax + lcpi + lavgprs + dpop)
> summary(zzdp)

Call:
lm(formula = dpackpc ~ ltaxs + ltax + lcpi + lavgprs + dpop)

Residuals:
    Min      1Q  Median      3Q     Max
-64.355 -11.578  -1.363  12.035  85.697

Coefficients:
              Estimate Std. Error t value Pr(>|t|)   
(Intercept)  1.100e+02  1.299e+00  84.681  < 2e-16 ***
ltaxs        1.794e+01  1.073e+01   1.672  0.09510 . 
ltax        -1.818e+01  7.555e+00  -2.406  0.01646 * 
lcpi         2.325e+02  1.900e+02   1.224  0.22149   
lavgprs     -5.523e+01  1.896e+01  -2.912  0.00374 **
dpop        -7.052e-07  1.724e-07  -4.090    5e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 21.42 on 521 degrees of freedom
Multiple R-Squared: 0.1518,     Adjusted R-squared: 0.1437
F-statistic: 18.65 on 5 and 521 DF,  p-value: < 2.2e-16


Je vous conseille de décomposer le travail en étapes élémentaires et d'essayer de comprendre ce qui se passe à chacune de ces étapes.

Bon courage !

Renaud

Ludovic CHANE-HIME
Messages : 17
Enregistré le : 23 Jan 2007, 10:47

Messagepar Ludovic CHANE-HIME » 29 Jan 2007, 19:24

je vous remercie pour avoir trouvé les erreurs et aussi pour tous vos conseils et vous souhaite une excellente soirée

au plaisir

bien à vous

Ludovic CHANE-HIME


Retourner vers « Questions en cours »

Qui est en ligne

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