Пример #1
0
mod6 = stats.OLS(df6['Rate_9000'],X6)
mod7 = stats.OLS(df7['Rate_9000'],X7)

mods = [mod1, mod2, mod3, mod4, mod5, mod6, mod7]
res_list = []

for mod in mods:
    
    res = mod.fit(cov_type = 'HC1')
    res_list.append(res)
    print(res.summary())
    file = open('C:/Users/User/Documents/Data/Demoforestation/Replication/Model_' + str(mods.index(mod)+1) + '.txt', 'w')
    file.write(res.summary().as_text())
    file.close()
    
restab(res_list, 'C:/Users/User/Documents/Data/Demoforestation/Replication/restab_replication.txt')

# (3) Replicating the cluster analyses

# Recreate the statistics in Table (3) in the original paper

# Record group level statistics

Type6 = pd.DataFrame(np.zeros((2,6)), columns = data.Type6.unique(), index = ['Democracy', 'Rate_9000'])
Type3 = pd.DataFrame(np.zeros((2,3)), columns = data.Type3.unique(), index = ['Democracy', 'Rate_9000'])

for c in Type6.columns:
    
    df = data[data['Type6'] == c]
    Type6[c]['Democracy'] = np.mean(df['Democracy(20)_90'])
    Type6[c]['Rate_9000'] = np.mean(df['Rate_9000'])
# Running regressions and saving results

Ys = [df1['Rate'], df2['Rate'], df3['Rate'], df1['Rate'], df2['Rate'], df3['Rate']]
Xs = [X1, X2, X3, X4, X5, X6]
res_list = []

for i in range(len(Xs)):

    res = stats.OLS(Ys[i],Xs[i]).fit(cov_type = 'HC1')
    res_list.append(res)
    print(res.summary())
    file = open('C:/Users/User/Documents/Data/Demoforestation/Spatial/Differenced_Model_' + str(i+1) + '.txt', 'w')
    file.write(res.summary().as_text())
    file.close()

restab(res_list, 'C:/Users/User/Documents/Data/Demoforestation/Spatial/restab_differenced_spatial.txt')

# Create binary indicator for whether or not a nation's neighbors were, on average, more democratic

bi = [1 if (data['W*Demo'][i] > data['Democracy'][i]) else 0 for i in range(len(data))]
data = pd.concat([data, pd.DataFrame(bi, columns = ['W*D>D'])], axis = 1)

# Run second set of regressions with binary indicator

# Data prep

df11 = data[['Rate', 'W*D>D', 'Democracy', 'Democracy_2', 'Education', 'Rural_Pop', 'Ln_Land', 'GDP_per_capita', 'D X GDP', 'Continent']].dropna()
df12 = data[['Rate', 'W*D>D', 'Democracy', 'Democracy_2', 'Education', 'Rural_Pop', 'Ln_Land', 'GDP_per_capita', 'D X GDP', 'Ag_Land_Rate', 'Continent']].dropna()
df13 = data[['Rate', 'W*D>D', 'Democracy', 'Democracy_2', 'Education', 'Rural_Pop', 'Ln_Land', 'GDP_per_capita', 'D X GDP', 'Ag_Land_Rate', 'Tariff_Rate', 'Continent']].dropna()

d11 = pd.get_dummies(df11['Continent'])
Пример #3
0
X1 = X1.join(d1).drop('Oceania', axis=1)
X3 = X3.join(d3).drop('Oceania', axis=1)
X4 = X4.join(d4).drop('Oceania', axis=1)
X6 = X6.join(d6).drop('Oceania', axis=1)

# Running regressions and saving results

Ys = [
    df1['Rate'], df2['Rate'], df3['Rate'], df4['Rate'], df5['Rate'],
    df6['Rate']
]
Xs = [X1, X2, X3, X4, X5, X6]
res_list = []

for i in range(len(Xs)):

    res = stats.OLS(Ys[i], Xs[i]).fit(cov_type='HC1')
    res_list.append(res)
    print(res.summary())
    file = open(
        'C:/Users/User/Documents/Data/Demoforestation/Specified/Panel_Model_ROB2_'
        + str(i + 1) + '.txt', 'w')
    file.write(res.summary().as_text())
    file.close()

restab(
    res_list,
    'C:/Users/User/Documents/Data/Demoforestation/Specified/restab_panel_ROB2.txt'
)
d1 = pd.get_dummies(df1['Continent'])
d2 = pd.get_dummies(df2['Continent'])
d3 = pd.get_dummies(df3['Continent'])

X1 = stats.add_constant(df1[['Democracy', 'Democracy_2', 'Urbanization', 'Urbanization_2', 'Education', 'Rural_Pop', 'Ln_Land', 'GDP_per_capita', 'D X GDP']])
X2 = stats.add_constant(df2[['Democracy', 'Democracy_2', 'Urbanization', 'Urbanization_2', 'Education', 'Rural_Pop', 'Ln_Land', 'GDP_per_capita', 'D X GDP', 'Ag_Land_Rate']])
X3 = stats.add_constant(df3[['Democracy', 'Democracy_2', 'Urbanization', 'Urbanization_2', 'Education', 'Rural_Pop', 'Ln_Land', 'GDP_per_capita', 'D X GDP', 'Ag_Land_Rate', 'Tariff_Rate']])

X4 = X1.join(d1).drop('Oceania', axis = 1)
X5 = X2.join(d2).drop('Oceania', axis = 1)
X6 = X3.join(d3).drop('Oceania', axis = 1)

# Running regressions and saving results

Ys = [df1['Rate'], df2['Rate'], df3['Rate'], df1['Rate'], df2['Rate'], df3['Rate']]
Xs = [X1, X2, X3, X4, X5, X6]
res_list = []

for i in range(len(Xs)):

    res = stats.OLS(Ys[i],Xs[i]).fit(cov_type = 'HC1')
    res_list.append(res)
    print(res.summary())
    file = open('C:/Users/User/Documents/Data/Demoforestation/Specified/Differenced_Model_ROB_' + str(i+1) + '.txt', 'w')
    file.write(res.summary().as_text())
    file.close()

restab(res_list, 'C:/Users/User/Documents/Data/Demoforestation/Specified/restab_differenced_ROB.txt')

models = [co2_mod, ch4_mod, nox_mod, ghg_mod]
names = ['CO2', 'CH4', 'NOx', 'GHG']
res_list = []

for mod in models:

    res = mod.fit(cov_type='HC1')
    res_list.append(res)
    print(res.summary())
    file = open(
        'C:/Users/User/Documents/Data/Pollution/' + names[models.index(mod)] +
        '_kp.txt', 'w')
    file.write(res.summary().as_text())
    file.close()

restab(res_list, 'C:/Users/User/Documents/Data/Pollution/restab_kp.txt')

# Next we run gdp models to check coefficients

gdp_data = data[[
    'ln_Income', 'ln_Income_lag', 'ln_sk', 'ln_n5', 'Country', 'Year'
]].dropna()

gdp_national_dummies = pd.get_dummies(gdp_data['Country'])
gdp_year_dummies = pd.get_dummies(gdp_data['Year'])

gdp_data = pd.concat([gdp_data, gdp_national_dummies, gdp_year_dummies],
                     axis=1)
gdp_data = gdp_data.drop(['Country', 'Year', 1993, 'Canada'], axis=1)

Y = gdp_data['ln_Income']
Xs = [X1, X2, X3, X4, X5, X6]
res_list = []

for i in range(len(Xs)):

    res = stats.OLS(Ys[i], Xs[i]).fit(cov_type='HC1')
    res_list.append(res)
    print(res.summary())
    file = open(
        'C:/Users/User/Documents/Data/Demoforestation/Spatial/Panel_Model_ROB_'
        + str(i + 1) + '.txt', 'w')
    file.write(res.summary().as_text())
    file.close()

restab(
    res_list,
    'C:/Users/User/Documents/Data/Demoforestation/Spatial/restab_panel_ROB.txt'
)

# Create binary indicator for whether or not a nation's neighbors were, on average, more democratic

bi = [
    1 if (data['W*Demo'][i] > data['Democracy'][i]) else 0
    for i in range(len(data))
]
data = pd.concat([data, pd.DataFrame(bi, columns=['W*D>D'])], axis=1)

# Run second set of regressions with binary indicator

# Data prep

df11 = data[[
models = [co2_mod, ch4_mod, nox_mod]
names = ['CO2', 'CH4', 'NOx']
res_list = []

for mod in models:

    res = mod.fit(cov_type='HC1')
    res_list.append(res)
    print(res.summary())
    file = open(
        'C:/Users/User/Documents/Data/Pollution/' + names[models.index(mod)] +
        '.txt', 'w')
    file.write(res.summary().as_text())
    file.close()

restab(res_list, 'C:/Users/User/Documents/Data/Pollution/restab.txt')

# After running the conditional convergence models, we set up the network effects models

# Compute technology growth rate

# \widetilde{g} = \left(\frac{1}{T}\right)\sum\limits_{t=1}^{T}\left(\frac{\eta_{t}}{t-\gamma(t-1)}\right)

g_co2 = (1 / 23) * sum([(co2_mod.fit().params[i] /
                         ((i - 1971) - (co2_mod.fit().params['ln_co2_lag'] *
                                        (i - 1972))))
                        for i in range(1972, 2015)])
g_ch4 = (1 / 21) * sum([(ch4_mod.fit().params[i] /
                         ((i - 1971) - (ch4_mod.fit().params['ln_ch4_lag'] *
                                        (i - 1972))))
                        for i in range(1972, 2013)])
Пример #8
0
print(res3.summary())
print(resT.summary())
print(resE.summary())

res_list = [res1, res2, res3, resT, resE]
names = ['Stage1', 'Stage2', 'Stage3', 'Total', 'Editor']

for r in range(len(res_list)):

    file = open(
        'C:/Users/User/Documents/Data/COVID-19/results_' + names[r] + '.txt',
        'w')
    file.write(res_list[r].summary().as_text())
    file.close()

restab(res_list, 'C:/Users/User/Documents/Data/COVID-19/restab_main.txt')

# Before running any more models, the text mining component needs to be done

# Defining a function for extracting the keywords from the dataframe


def clean_keys(key):

    key_list = []  # Initialize a list
    idx = 0

    # Data preprocessing prior to identifying individual keywords

    key = key.lower()  # convert to lowercase
    key = key.replace(',', ' ')  # replace certain characters with a space