经济学论文
一、下载python:地址,https://www.python.org/
二、下载pycharm: 地址 ,https://www.jetbrains.com/pycharm/download/
三、设置环境变量:电脑(右键属性)->高级系统设置->环境变量->path
下载python和pycharm参考百度,设置环境变量(很重要,环境变量是下载python的地址,每个人都不一样)
四、安装依赖包:file->settings->Python Interpreter
需要安装pandas,numpy,matplotlib,statsmodels,如果还需要安装其他包,根据pycharm的提示安装就行了
运行代码:
需要修改file_path:地址为数据在电脑中的地址
修改变量:修改变量data.columns[n] n代表改列数据,家庭总收入的n=0,为什么不是1?因为在python中下标是从0开始的
import pandas as pd
import statsmodels.api as sm
# 加载数据
file_path = 'C:\\Users\\戴森球\\Desktop\\master.xlsx'
data = pd.read_excel(file_path)
# 提取相关列并重新命名
data = data.rename(columns={
data.columns[3]: '家庭总负债', # 第4列:家庭总负债
data.columns[41]: '持有股票数量', # 第42列:持有股票的数量
data.columns[66]: '股票账户现金余额', # 第67列:股票账户现金余额
data.columns[107]: '股票的风险和收益' # 第108列:股票的风险和收益
})
# 查看修改后的数据,确保列名已更改
print(data[['家庭总负债', '持有股票数量', '股票账户现金余额', '股票的风险和收益']].head())
# 创建一个二元变量,表示是否投资股票
# 假设持有股票数量大于 0 的家庭为投资者
data['invest_in_stock'] = data['持有股票数量'].apply(lambda x: 1 if x > 0 else 0)
# 创建自变量 DataFrame
X = data[['家庭总负债', '股票账户现金余额', '股票的风险和收益']]
# 处理缺失值和无穷大值
if X.isnull().values.any():
print("Data contains NaN values. Filling NaN values with the column mean...")
X = X.fillna(X.mean()) # 用均值填充缺失值
if (X == float('inf')).values.any() or (X == float('-inf')).values.any():
print("Data contains infinite values. Replacing inf with a large value...")
X = X.replace([float('inf'), float('-inf')], 1e10) # 将无穷大值替换为一个很大的数
# 为自变量添加常数项(截距)
X = sm.add_constant(X)
# 因变量:是否投资股票(1=投资,0=不投资)
y = data['invest_in_stock']
# 拟合 Probit 模型
model = sm.Probit(y, X)
result = model.fit()
# 打印模型摘要
print(result.summary())
安转包完成以后,运行即可,等待运行结果