关于#python#的问题,如何解决?

本人正在学python,奈何基础太差,要是直接写还行,但是题目要求用类函数写,我对类运用实在不行,求指点

下列所需数据用下列代码模拟生成。
import random
n=30
x=list(range(n))
e=[random.gauss(mu=1.5,sigma=1) for k in range(n)]
y=[1+0.5*x[i]+e[i] for i in range(n)]


1、设计一个回归分析类并举例说明
(1)包含初始实例属性ydata(输入变量),xdata(输出变量),nsample(样本容量)
(2)包含实例方法:
(a)fitlm(输入:xdata,ydata; 输出:回归方程表达式,参数估计表
(包含参数点估计,区间估计,t统计量),方差分析表。)
(b)predict(输入:fitlm的结果,alpha值;输出:y的预测值,y的预测区间,残差序列)

我的代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import random
n=30
x=list(range(n))
e=[random.gauss(mu=1.5,sigma=1) for k in range(n)]
y=[1+0.5*x[i]+e[i] for i in range(n)]

class regression:
def init(self,x,y,n):
self.xdata = x
self.ydata = y
self.nsample = n

def regremoudle(self,x,y):
    X_mean=np.mean(self.xdata)
    Y_mean=np.mean(self.ydata)
    S_xy=0
    S_xx=0
    S_yy=0
    for i in range(len(x)):
        S_xy = S_xy+(self.xdata[i]-x_mean)*(self.ydata[i]-y_mean)
        S_xx = S_xx+pow(self.xdata[i]-x_mean,2)
        S_yy = S_yy+pow(self.ydata[i]-y_mean,2)
    b1=S_xy/S_xx
    b0=Y_mean-b1*X_mean
    print('b1:'+str(b1)+'  b0:'+str(b0))

    def fitlm(x,y):

        return b1*x + b0

s=regression(x,y,len(x))