python R 空间自回归模型SAR 参数估计 统计模拟 实验

一、编写一次估计函数

1. 载入numpy、固定随机种子

import numpy as np 
np.random.seed(1)

2. 编写makeY函数,生成用于模拟实验的Y

def makeY(rho, sigma2true, Ysize):
    I = np.identity(Ysize)
    W = I/rho
   
   
# 使用while语句,必须保证I - rho * W可逆
    while np.linalg.det(I - rho * W) == 0:
   
       
# 生成一列epsilon
        epsilon = np.random.normal(0, sigma2true, Ysize)

        # 生成邻接矩阵 
        A = I
        for i in range(0 , Ysize) :
           for j in range(0 , Ysize) :
               if i < j:
                   A[i, j] = np.random.binomial(1, rho)
                   A[j, i] = A[i, j]

        # 标准化带权邻接矩阵A,得到W
        W = A/sum(A)

 
   
# 求所生成网络的密度,衡量其稀疏性
    Ydensity = sum(sum(A)) / (Ysize * (Ysize - 1))
 
     
   
# 利用输入参数和随机数生成样本Y
    Y = np.matmul(np.linalg.inv(I - rho * W), epsilon)
    return [Y, W, Ydensity]

 

3. 编写主函数SAR_MLE_newton

def SAR_MLE_newton (rho, sigma2true, Ysize):
    for i in range(1,1000):
        Y = makeY(rho, sigma2true, Ysize)[0]
        W = makeY(rho, sigma2true, Ysize)[1]
        Ydensity = makeY(rho, sigma2true, Ysize)[

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值