I am using the code below and have encountered two problems which I could not solve.
The first of these is: How can I define the local upports and downports as a variable selection of variables based on the characters included in the variable names? For instance I tried:
Code:
local upports ds VWES*A6
Code:
foreach varname of varlist _all {
quietly sum `varname'
if `r(N)'==0 {
if `varname' has VWES*A6 {
local upports ds`varname'
}
}
}
set more off
My second problem is, I need to run a conditional test (besides the two tests already in the code). Specifically, while I first test:
Code:
test (_b[_cons]=0)
Code:
_b[`:word `i' of `upports'']=1
Code:
_b[_cons]=0
This is not the same as the joint test:
Code:
test (_b[_cons]=0) (_b[`:word `i' of `upports'']=1)
Code:
clear
cls
use "I:\dta files\FINAL.dta", clear
local upports VWESTOA6 VWIAMIA6 VWSOWEA6 EWWAEAA6 EWENSOA6 ///
VWESAFA6 VWIANOA6 VWGOTOA6 EWWAMIA6 EWENWEA6 ///
VWESASA6 VWIAPAA6 VWGOAFA6 EWWANOA6 EWSOTOA6 ///
VWESEAA6 VWIASOA6 VWGOASA6 EWWAPAA6 EWSOAFA6 ///
VWESMIA6 VWIAWEA6 VWGOEAA6 EWWASOA6 EWSOASA6 ///
VWESNOA6 VWENTOA6 VWGOMIA6 EWWAWEA6 EWSOEAA6 ///
VWESPAA6 VWENAFA6 VWGONOA6 EWIATOA6 EWSOMIA6 ///
VWESSOA6 VWENASA6 VWGOPAA6 EWIAAFA6 EWSONOA6 ///
VWESWEA6 VWENEAA6 VWGOSOA6 EWIAASA6 EWSOPAA6 ///
VWWATOA6 VWENMIA6 VWGOWEA6 EWIAEAA6 EWSOSOA6 ///
VWWAAFA6 VWENNOA6 EWESTOA6 EWIAMIA6 EWSOWEA6 ///
VWWAASA6 VWENPAA6 EWESAFA6 EWIANOA6 EWGOTOA6 ///
VWWAEAA6 VWENSOA6 EWESASA6 EWIAPAA6 EWGOAFA6 ///
VWWAMIA6 VWENWEA6 EWESEAA6 EWIASOA6 EWGOASA6 ///
VWWANOA6 VWSOTOA6 EWESMIA6 EWIAWEA6 EWGOEAA6 ///
VWWAPAA6 VWSOAFA6 EWESNOA6 EWENTOA6 EWGOMIA6 ///
VWWASOA6 VWSOASA6 EWESPAA6 EWENAFA6 EWGONOA6 ///
VWWAWEA6 VWSOEAA6 EWESSOA6 EWENASA6 EWGOPAA6 ///
VWIATOA6 VWSOMIA6 EWESWEA6 EWENEAA6 EWGOSOA6 ///
VWIAAFA6 VWSONOA6 EWWATOA6 EWENMIA6 EWGOWEA6 ///
VWIAASA6 VWSOPAA6 EWWAAFA6 EWENNOA6 ///
VWIAEAA6 VWSOSOA6 EWWAASA6 EWENPAA6
local downports VWESTOL6 VWIAMIL6 VWSOWEL6 EWWAEAL6 EWENSOL6 ///
VWESAFL6 VWIANOL6 VWGOTOL6 EWWAMIL6 EWENWEL6 ///
VWESASL6 VWIAPAL6 VWGOAFL6 EWWANOL6 EWSOTOL6 ///
VWESEAL6 VWIASOL6 VWGOASL6 EWWAPAL6 EWSOAFL6 ///
VWESMIL6 VWIAWEL6 VWGOEAL6 EWWASOL6 EWSOASL6 ///
VWESNOL6 VWENTOL6 VWGOMIL6 EWWAWEL6 EWSOEAL6 ///
VWESPAL6 VWENAFL6 VWGONOL6 EWIATOL6 EWSOMIL6 ///
VWESSOL6 VWENASL6 VWGOPAL6 EWIAAFL6 EWSONOL6 ///
VWESWEL6 VWENEAL6 VWGOSOL6 EWIAASL6 EWSOPAL6 ///
VWWATOL6 VWENMIL6 VWGOWEL6 EWIAEAL6 EWSOSOL6 ///
VWWAAFL6 VWENNOL6 EWESTOL6 EWIAMIL6 EWSOWEL6 ///
VWWAASL6 VWENPAL6 EWESAFL6 EWIANOL6 EWGOTOL6 ///
VWWAEAL6 VWENSOL6 EWESASL6 EWIAPAL6 EWGOAFL6 ///
VWWAMIL6 VWENWEL6 EWESEAL6 EWIASOL6 EWGOASL6 ///
VWWANOL6 VWSOTOL6 EWESMIL6 EWIAWEL6 EWGOEAL6 ///
VWWAPAL6 VWSOAFL6 EWESNOL6 EWENTOL6 EWGOMIL6 ///
VWWASOL6 VWSOASL6 EWESPAL6 EWENAFL6 EWGONOL6 ///
VWWAWEL6 VWSOEAL6 EWESSOL6 EWENASL6 EWGOPAL6 ///
VWIATOL6 VWSOMIL6 EWESWEL6 EWENEAL6 EWGOSOL6 ///
VWIAAFL6 VWSONOL6 EWWATOL6 EWENMIL6 EWGOWEL6 ///
VWIAASL6 VWSOPAL6 EWWAAFL6 EWENNOL6 ///
VWIAEAL6 VWSOSOL6 EWWAASL6 EWENPAL6 ///
local n_upports: word count `upports'
capture postutil clear
tempfile results
postfile handle str20(downportname upportsname) float(alph beta) ///
float(Fintersection pintersection) float(Fspanning pspanning) ///
using `results'
forvalues i = 1/`n_upports' {
reg `:word `i' of `downports'' `:word `i' of `upports''
test (_b[_cons]=0)
local F_intersection = r(F)
local p_intersection = r(p)
test (_b[_cons]=0) (_b[`:word `i' of `upports'']=1)
local F_spanning = r(F)
local p_spanning = r(p)
post handle ("`:word `i' of `downports''") ("`:word `i' of `upports''") (_b[_cons]) ///
(_b[`:word `i' of `upports'']) (`F_intersection') (`p_intersection') ///
(`F_spanning') (`p_spanning')
}
set more off
postclose handle
use `results', clear
export excel using "I:\Spanning tests\Spanningtests - Above 60.xls", sheetreplace firstrow(variables)
0 Response to Defining variables based on characters included and conditional F tests using a step down procedure (Spanning tests)
Post a Comment