1. Trang chủ
  2. » Luận Văn - Báo Cáo

hồi qui phi tham số và mô hình tuyến tính tổng quát 8_2

12 361 1
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hồi qui phi tham số và mô hình tuyến tính tổng quát
Trường học University of Science
Chuyên ngành Statistics
Thể loại Luận án
Thành phố Ho Chi Minh
Định dạng
Số trang 12
Dung lượng 2,58 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

luận văn giới thiệu về phương pháp hồi qui phi tham số và mô hình tuyến tính tổng quát. các trường hợp một chiều, hàm Spiline riêng phần trong hồi qui phi tham số.

Trang 1

PHU LUCA ,

SO LIEU SU DUNG TRONG LUAN AN

Bộ số liệu 1

Nghiên cứu về công dụng của gió trong việc sản xuất điện, người ta thu được dữ

liệu dòng điện một chiều sinh ra (DC output) từ một cối xay gió tương ứng với vận tốc gió.(A.Peck trang 83)

Bộ số liệu 2

Lượng điện tiêu thụ theo tháng ghi nhận trong hóa đơn của hộ 258/6§- Trần Hưng

Đạo Q1 Tp Hồ chí Minh, nhiệt độ trung bình trong tháng được báo bởi đài quan

sát khí tượng và thủy văn

Lượng điện tiêu thụ (Kwg)_ Nhiệt độ (°C)_ Tháng

76

Trang 2

Bộ số liệu 3

Số liệu thu được từ một mỏ ở Cobar, NSW, Australia (Silverman & Green,

trang 145)

-16 -15 17 40 4 13.5

-14 -4 18 40 -61 18

-13 4 17.5 44 -29 19.4

-7 5 19 48 -65 13

-6 -43 22 48 -7 14

-6 -36 24 49 -32 19.5

1 -50 17.4 55 -71 16

2 -39 23 56 -14 16

2 -8 23.5 59 -38 19

2 -51 15 62 7 19

9 -16 2335 62 -3 21:5

9 -42 25 64 -29 22

17 -37 16.5 69 -28 20.5

18 -12 19.5 70 -72 11

24 -57 12 T1 -19 26

25 -29 18.5 78 -53 22

26 -40 18 79 -37 26

32 7 14 84 -52 16

33 -35 19 84 -16 16

Bộ số liệu 4

Nghiên cứu về tỉ lệ chết theo độ tuổi (Green and Silverman, trang 101)

69 422 25840 86 171 1388

71 413 21412 88 86 578

Trang 3

PHU LUCB

MOT SO DOAN CHUONG TRINH MINH HOA

SU DUNG NGON NGU MAPLE

I Trường hợp một chiều

Khai báo đầu chương trình

> restart: with(linalg):with(stats):

1.1 Đoạn chương trình con khởi tạo ma trận Q,R

> initH:=proc(t)

> local i:

> fori from | to n-1 do

> h[ï]:=t[i+1]-t[];

> od;

> end:

KHOI TAO Q

> initQ := proc(t,h)

> local Q,i,j,_Q:

> Q:=array(sparse, l n,2 n- 1):

> fori from I ton do

> for j from 2 to n-1 do

> if i-j>=2 or i-j<=-2 then Q[i,j]:=0;

> elif j-i=1 then Q[i,j]:= 1/h[1];

> elifi=j then QI7,j]:= -L/h[j-1]-L/h[];

> od; od;

> _Q:=array(sparse, l n,1 n-2):

> for i from | to n do

> forj from | to n-2 do _Q[i,j]:=Q[i,j+1] odsod;

>_Q:

> end:

78

Trang 4

KHỞI TẠO R

> initR := proc(t,h)

> local j,i,Q,P,n;

> n:=nops(t):

> fori from 2 to n-1 do

> for j from 2 to n-1 do

> if i-j>=2 or i-j<=-2 then Q[i,j]:=0;

> else Q{j,j+1]:= h{j]/6;

> Q(j+Lj]:= hUM6;

> od; od;

> P:=array(sparse,1 n-2,1 n-2):

> fori from | to n-2 do

bộ for j from 1 to n-2 do P[i,j]:=Q[i+1,j+1]; od; od;

> P:

> end:

1.2 Đoạn chương trình tìm tham số trơn œ

t là dãy thời điểm quan sát phân biệt có thứ tự

Y là dãy quan sát tương ứng

> h:=initH(t)

> Q:=initQ(t,h):

> R:=initR(t,h):

> K:=evalm(Q &* R^(-1) &* transpose(Q)):

> A:=evalm((1+ alpha * K)^(-1)):

> g:=evalm(A &* Y):

> _gamma:=evalm(R^(-1) &* transpose(Q) &* g ): # véctơ y

> vetA:=sum(A[iJ],T=1 n):

> tuso:= sum((Y{i,1]-g[1,1])^2',7=1 n):

> mauso:=(I-vetA/n)^2:

> GCV := n^(-1)*tuso/mauso: #Hầm Cross-validation tổng quát

> GCVdh := diff(GCV,alpha):GCVdh:=simplify(GCVdh):

> fsolve(GCVdh=0,alpha,maxsols=7); # Tìm nhiều nhất 7 nghiệm

Trang 5

13

nút

Đoạn chương trình xây dựng và vẽ hàm STNB3 khi biết giá trị tại các nút

và các giá trị đạo hàm cấp hai tại các nút của nó

Thủ tục tạo hàm g

> ham_g:= proc(tl,tr,gl,gr,dl,dr)

> local h,kq:

> hrs tr-th:

> — kq:=((x-tl)*gr+(tr-x)*gl)/h- 1/6*(x-tl)* (tr-x)*

((1+(x-tl)/h) *dr+(1+(tr-x)/h)*dl);

> expand(");

> RETURN(");

> end:

> ga:=table(): ga[1]:=0: ga[n]:=0:

> fori from 2 to n-1 do gafi]:=_gammali-1,1] od

> a:=ag: b := bạ:

> hg:=tableQ:

> g1:=(g[2,!]-g[1,1D/(2]-1[1))-({2]-t[1])*ga[21/6:

> gn:=(g[n,1]-g[n-1, cake -t[n-1])+([n]-t[n-1])*ga[n-1]/6:

> hg[0]:=g[1,1]-([1]-x)*g1l:

> hg[n]:=g[n,!]+(x-t[n])*gn:

> for I from | to n-1 do

>_ hg[il:=ham g(tï],t(i+1],g[i,1].g[i+1,1],ga[il,gali+L:

>od:

> dt:=table():

> m:=nops(k):

> fori from 1 to n-1 do

> dt[i]:=plot(hg[i],x=t[i] t[i+1]): od:

> Ydat:=convert(Y,vector):

> Xdat:=convert(t,vector):

> Ydata:=convert(Ydat,list):

> Xdata:=convert(Xdat,list):

> diem:=statplots[scatter2d](Xdata, Ydata):

80

Trang 6

> tap:=convert(dt,set):

> tap:=tap union {diem}:

> plots[display](tap, view=[a b, Ymin Ymax]);

1.4 Dự đoán giá trị mới tại t = tmới

t[0]=a; t[n+l]=b:

for ¡ from 0 to n do

if tmoi >=t[i] and tmoi<=t[i+1] then g_est:=subs(body=nhanho[i],x->body); i:=no-1:

fi: od:

1.5 Thuật toán Speckman cho mô hình bán tham số

X là ma trận có hàng là x¿

> S:=evalm((d+alpha * K)^(-L)):

> si:=evalm(S &* x):

> Yn:=evalm((1-S) &* Y):

> Xn:=evalm((1-S) &* x):

> nghich:=evalm((transpose(Xn) &* Xn)“(-1)):

> beta:= evalm(nghich &* transpose(Xn) &* Yn):

> XB:=evalm(x &* beta):

> TB:=sum(‘XB[i,1]',''=1 n)/n:

> YY := evalm(Y-XB):

> g:=evalm(S &* YY):

1.6 Ham Fisher

Sử dụng hàm liên kết logit cho GLM phi tham số

t là dãy các mốc quan sát

nx là dãy các số cá thể được quan sát

dx là dãy các số cá thể có dấu hiệu cần quan sát

> n:=nops(t):

> Y:=matrix(n,1,[]):

> fori from | ton do Y{i,1]:=dx[i]/nx[i] od:

>alpha:= alpha’:

Trang 7

> g:=matrix(n,1,[]):

> for i from | to ndo

>_ g[il]:=log(Y[i11/-Y[11]):

> g[i]:=Y([i1] od:

Tinh véc to z -

> tiep:=1:

> solap:=3:

> while tiep<=solap do

> z:=matrix(n,1,[]):

> fori from 1 ton do

> Z[1,1]:= evalf(g[i,1]+(dx[i]-nx[i]*a[i)/(nx[ï]*q[i]*(1-g[i])):

> od:

> tlep:=tiep+1:

> foritondo

> _w[iI]:=evalf(nx[i]*q[]*#(1-q[i])) od:

> g_new:=evalm(non &* _w &* z);

> `g`:=evalm(g);

> g:=g_new:

> forifrom 1 tondo

> q[ï]:=evalf(exp(g[i,1])/(1+exp(g[i,!])),3): od:

>od:

1.7 Vẽ đường cong có nhánh

đatax[i] lưu các điểm nút của đường cong xử lý

datay[i] luu cdc quan sát của đường cong xử lý, (i=1, ,sốnhánh)

đatax[0] lưu các điểm nút của đường cong kiểm soát

đatay[0] lưu các quan sát của đường cong kiểm soát

> tap:={ }:gluu:=matrix(4, 1,[]):sonhanh:=4:

> alpha:=870:

> for nhanh from 0 to sonhanh do

> tr=datax[nhanh]:

> n:=nops(t):

> Y:=matrix(n,1,datay[nhanh]):

> if nhanh >0 then Y[1,1]:=gluu[nhanh, 1] fi:

82

Trang 8

VVVVVV

>

Q:=initQ(t,h):

R:=initR(t,h):

K:=evalm(Q &* R^(-1) &* transpose(Q)):

A:=evalm((I+alpha * K)(-1)):

g:=evalm(A &* Y):

if nhanh >0 then g[1,1]:=gluu[nhanh, 1]; fi:

_gamma:=evalm(R‘(-1) &* transpose(Q) &* g ):

ga:=table():ga[1]:=0: ga[n]:=0:

for i from 2 ton -1 do ga[i]:=_gammaf[i-1,1]

od:

hg:stable():

for i from | to n-1 do

hg[i]:=ham_g(t[i],t{i+1],g[i,1],g[i+1,1],gali],gafit1]):

od:

if nhanh=0 then nhanho:=hg: no:=n:

for j from 1 to sonhanh do

tmoi:=datax[j][1];

fori from 1 to no-1 do

if tmoi >=t[i] and tmoi<=t[i+1] then

g_est:=subs(body=nhanhof[i],x->body); i:=no-1:

fi: od:

gluu[j,1]:=g_est(tmoi):od:

fi:

b:=table(): a:=20: c:=110:

for i from | to n-1 do

b[ï]:=plot(hg[i].x=t[] t[i+1]):

od:

Y dat:=convert(Y,vector):

Xdat:=convert(t,vector):

Y data:=convert(Y dat,list):

Xdata:=convert(Xdat,list):

diem:=statplots[scatter2d](Xdata, Y data):

tap |:=convert(b,set):

tapl:=tap! union {diem}:

tap:=tap union tap1:

> od:

> plots[display](tap,view=[a b,0 4]);

Trang 9

II Trường hợp nhiều chiều

H1 Đoạn chương trình tìm tham số trơn

v] là n-véctơ gồm toàn số l

v2 là n-véctơ các tọa x của các quan sát

v3 là n-véctơ các tọa y của các quan sát

>T := matrix([v1,v2,v3]):

> T:= evalm(transpose(T)):t:=matrix([v2,v3]):t:=transpose(t):

> G := QRdecomp(T, Q='F’, rank="'r'):

> F2 := submatrix(F,I n,4 n):

> Fl := submatrix(F,1 n,1 3):

TT:

> mE:=matrix(n,n,[]):

> fori from | tondo

> for j from 1 ton do

> if i<>j then mE[i,j]:= evalf(1/(16*3.14)*norm(evalm(row(t,i)-

row(t,J)),2)^2* log(norm(evalm(row(t,1)-row(t,J)),2)^2)) else mE[i,j]:=0 fi

> fef:=evalm(transpose(F2) &* mE &* F2):

> V:= QRdecomp(L,Q='Ư',rank=r):

> D2:=evalm(transpose(U) &* fef &* U):

> gtrD2:=vector(n-3,[0]):

> for i from 1 to n-3 do gtrD2[i]:=D2[i,i]: od:

= D2:='D2»

> fef:='fef:

> Y l:=matrix([Y]): Y l:=transpose(Y 1):

> W2:=evalm(transpose(F2) &* Y1):

> Z:= evalm(transpose(U) &* W2):Z:=transpose(Z):

> Z:=convert(Z,vector):

> tuso:=sum(‘(gtrD2[j] +alpha)^(-2)*Z]^2',7=1 n-3):

> mauso:=sum('(gtrD2[j] +alpha)(-1)','j'=1 n-3):

> GCV := n*tuso/(mauso)^2:

> GCVdh:= diff(GCV,alpha):

> fsolve(GCVdh,alpha,maxsols=3);

84

Trang 10

1.2 Đoạn chương trình vẽ mặt MSTN g

tla dãy các điểm có toa dé (x,y)

= Taint lO:

> e:=initE(t):

> mdv:=matrix(n,n,(i,j)->0): for i from 1 to n do mdyv[i,iJ:=1 od:

> m0:=matrix(3,3,(i,j)->0):

> e:= evalm(e+alpha*mdv):

> khoiET:=blockmatrix(2,2,e,transpose(T),T,m0):

> khoiET_1:=evalm(khoiET^(-1)):

> my0:=matrix(3,1,(1,j)->0):

> gt:=blockmatrix(2,1,Y,my0):

> ng:=evalm(khoiET_1 &* gt):

> for i from | to n do del[i,1]:=ng[i,1] od:

> for i from | to 3 do a[i,1]:=ng[i+n,1] od:

> tt:=convert(t,matrix):

> tong := 0:

> for i from | to ndo

ty tong := tong + del[i,1]* 1/(16*Pi)*((x-row/(tt,i)[1])*2+(y-

row(tt,)[2])^2)* log((x- row(t,)[1])^2+(y-row(t,){2])^2)

>od:

> tong :=tong+ a[1,1]+a[2,1]*x+a[2,1]*y:

> g:=subs(body=tong,(x,y)->body):

> plot3d(g,Xmin Xmax,Ymin Y max);

> contourplot (g, Xmin Xmax,Ymin Ymax,contours=19) ;

Trang 11

PHU LUCC

NGON NGU MAPLE

Phần này tóm tắt một số hàm, thủ tục của ngôn ngữ Maple sử dụng trong luận án

1 Các phép toán và thủ tục về ma trận

- matrix(m,n,[ ])

- submatrix(A,i p,j q)

- trace(A)

- transpose(A)

- evalm(A)

- evalm(A &* B)

- Id:= alias()

- A^n

- A*(-1)

- bloekmatrix(m,n, )

- QRdecomp(A, Q='Q', rank='r')

- convert(y,matrix)

2 Một số thủ tục về đồ thị

- plot(f, Xị Xz)

- plot3d(g, X1 X2) Yi Y2)

- contourplot(g, x; X2, Y1 Y2)

Tạo ma trận cỡ mxn

Tao ma tran con ti ma tran A tl dong i dén dong p, va từ cột j đến cột q

Vết của ma trận A

Chuyển vị của ma trận A

Hiển thị ma trận A

Nhân hai ma trận A và B

Tạo ma trận đơn vị Id

Ma trận A lũy thừa n

Ma trận nghịch đảo của ma trận A

Tạo ma trận khối gồm mxn ma trận

Phân tích QR ma trận A Trả lại Q là ma trận trong phân tích, r là hạng của A

Chuyển véctơ v thành dạng ma trận

Vẽ hàm f từ x¡ đến x;

Vẽ mặt g trong không gian với x từ x¡ đến

Xa, y từ y¡ đến y›

Vẽ mặt g dạng đường viền

- plots[display](tap,view=[a b,c d])Vẽ tập hợp các đồ thị lên cùng một hệ trục

- statplots[scatter2d](Xdata,Y data) Vẽ các điểm có tọa độ trong Xdata, Ydata

86

Trang 12

3 Một số thủ tục và cấu trúc lệnh khác

- sum('bt[i]',i'=a b)

- subs(body=bt,x->body)

- diff(f,bien), D(f)

- fsolve(f,bien,a b)

- if bt then <lenh1> else <lenh2> fi

- for ifrom a to b do < > od

- While bt do < > od

- simplify(bt)

- restart

- with(linalg):with(stats):

- Ten:=proc(thams6) end

- A union B

b

Tong > bt{i]

i=a

Chuyển biểu thức bt thành một hàm theo x Đạo hàm f theo bien

Tìm nghệm của f trong khoảng [a,b]

Nếu bt dúng thì làm lệnh 1, ngược lại, làm lệnh 2

Cấu trúc lặp với số vòng lặp xác định

Lặp cho đến khi bt sai

Rút gọn biểu thức bt

Khởi đầu lại tất cả các biến

Sử dụng thư viện đại số tuyến tính linalg và

thư viện thống kê stats

Tạo thủ tục có tên là Ten với các tham số

Hợp hai tập hợp A và B

Ngày đăng: 10/04/2013, 12:10

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm