GLMs模型中link连接函数的参数可以设置什么

angularjs指令中的compile与link函数详解
投稿:junjie
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下
通常大家在使用ng中的指令的时候,用的链接函数最多的是link属性,下面这篇文章将告诉大家complie,pre-link,post-link的用法与区别.
angularjs里的指令非常神奇,允许你创建非常语义化以及高度重用的组件,可以理解为web components的先驱者.
网上已经有很多介绍怎么使用指令的文章以及相关书籍,相互比较的话,很少有介绍compile与link的区别,更别说pre-link与post-link了.
大部分教程只是简单的说下compile会在ng内部用到,而且建议大家只用link属性,大部分指令的例子里都是这样的
这是非常不幸的,因为正确的理解这些函数的区别会提高你对ng内部运行机理的理解,有助于你开发更好的自定义指令.
所以跟着我一起来看下面的内容一步步的去了解这些函数是什么以及它们应该在什么时候用到
本文假设你已经对指令有一定的了解了,如果没有的话强烈建议你看看这篇文章
&NG中是怎么样处理指令的
开始分析之前,先让我们看看ng中是怎么样处理指令的.
当浏览器渲染一个页面时,本质上是读html标识,然后建立dom节点,当dom树创建完毕之后广播一个事件给我们.
当你在页面中使用script标签加载ng应用程序代码时,ng监听上面的dom完成事件,查找带有ng-app属性的元素.
当找到这样的元素之后,ng开始处理dom以这个元素的起点,所以假如ng-app被添加到html元素上,则ng就会从html元素开始处理dom.
从这个起点开始,ng开始递归查找所有子元素里面,符合应用程序里定义好的指令规则.
ng怎样处理指令其实是依赖于它定义时的对象属性的,你可以定义一个compile或者一个link函数,或者用pre-link和post-link函数来代替link.
所以这些函数的区别呢?为什么要使用它?以及什么时候使用它呢?
带着这些问题跟着我一步一步来解答这些迷团吧
为了解释这些函数的区别,下面我将使用一个简单易懂的例子
1.如果您有任何的问题,请不要犹豫赶紧在下面加上你的评论吧.
看看下面一段html标签代码
& &level-one&
&&&&&&& &level-two&
&&&&&&&&&&& &level-three&
&&&&&&&&&&&&&&& Hello
&&&&&&&&&&& &/level-three&
&&&&&&& &/level-two&
&&& &/level-one&
然后是一段js代码
var app = angular.module('plunker', []);
&&& function createDirective(name){
&&&&& return function(){
&&&&&&& return {
&&&&&&&&& restrict: 'E',
&&&&&&&&& compile: function(tElem, tAttrs){
&&&&&&&&&&& console.log(name + ': compile');
&&&&&&&&&&& return {
&&&&&&&&&&&&& pre: function(scope, iElem, iAttrs){
&&&&&&&&&&&&&&& console.log(name + ': pre link');
&&&&&&&&&&&&& },
&&&&&&&&&&&&& post: function(scope, iElem, iAttrs){
&&&&&&&&&&&&&&& console.log(name + ': post link');
&&&&&&&&&&&&& }
&&&&&&&&&&& }
&&&&&&&&& }
&&& app.directive('levelOne', createDirective('levelOne'));
&&& app.directive('levelTwo', createDirective('levelTwo'));
&&& app.directive('levelThree', createDirective('levelThree'));
结果非常简单:让ng来处理三个嵌套指令,并且每个指令都有自己的complile,pre-link,post-link函数,每个函数都会在控制台里打印一行东西来标识自己.
这个例子能够让我们简单的了解到ng在处理指令时,内部的流程
下面是一个在控制台输出结果的截图
如果想自己试一下这个例子的话,请点击this plnkr,然后在控制台查看结果.
第一个要注意的是这些函数的调用顺序:
&// COMPILE PHASE
&&& // levelOne:&&& compile function is called
&&& // levelTwo:&&& compile function is called
&&& // levelThree:& compile function is called
&&& // PRE-LINK PHASE
&&& // levelOne:&&& pre link function is called
&&& // levelTwo:&&& pre link function is called
&&& // levelThree:& pre link function is called
&&& // POST-LINK PHASE (Notice the reverse order)
&&& // levelThree:& post link function is called
&&& // levelTwo:&&& post link function is called
&&& // levelOne:&&& post link function is called
这个例子清晰的显示出了ng在link之前编译所有的指令,然后link要又分为了pre-link与post-link阶段.
注意下,compile与pre-link的执行顺序是依次执行的,但是post-link正好相反.
所以上面已经明确标识出了不同的阶段,但是compile与pre-link有什么区别呢,都是相同的执行顺序,为什么还要分成两个不同的函数呢?
为了挖的更深一点,让我们简单的修改一下上面的代码,它也会在各个函数里打印参数列表中的element变量
var app = angular.module('plunker', []);
&&& function createDirective(name){
&&&&& return function(){
&&&&&&& return {
&&&&&&&&& restrict: 'E',
&&&&&&&&& compile: function(tElem, tAttrs){
&&&&&&&&&&& console.log(name + ': compile =& ' + tElem.html());
&&&&&&&&&&& return {
&&&&&&&&&&&&& pre: function(scope, iElem, iAttrs){
&&&&&&&&&&&&&&& console.log(name + ': pre link =& ' + iElem.html());
&&&&&&&&&&&&& },
&&&&&&&&&&&&& post: function(scope, iElem, iAttrs){
&&&&&&&&&&&&&&& console.log(name + ': post link =& ' + iElem.html());
&&&&&&&&&&&&& }
&&&&&&&&&&& }
&&&&&&&&& }
&&& app.directive('levelOne', createDirective('levelOne'));
&&& app.directive('levelTwo', createDirective('levelTwo'));
&&& app.directive('levelThree', createDirective('levelThree'));
注意下console.log里的输出,除了输出原始的html标记基本没别的改变.
这个应该能够加深我们对于这些函数上下文的理解.
再次运行代码看看
下面是一个在控制台输出结果的截图
假如你还想自己运行看看效果,可以点击然后在控制台里查看输出结果.
输出dom的结果可以暴露一些有趣的事情:dom内容在compile与pre-link两个函数中是不一样的
所以发生了什么呢?
我们已经知道当ng发现dom构建完成时就开始处理dom.
所以当ng在遍历dom的时候,碰到level-one元素,从它的定义那里了解到,要执行一些必要的函数
因为compile函数定义在level-one指令的指令对象里,所以它会被调用并传递一个element对象作为它的参数
如果你仔细观察,就会看到,浏览器创建这个element对象时,仍然是最原始的html标记
1.在ng中,原始dom通常用来标识template element,所以我在定义compile函数参数时就用到了tElem名字,这个变量指向的就是template element.
一旦运行levelone指令中的compile函数,ng就会递归深度遍历它的dom节点,然后在level-two与level-three上面重复这些操作.
深入了解pre-link函数之前,让我们来看看post-link函数.
2.如果你在定义指令的时候只使用了一个link函数,那么ng会把这个函数当成post-link来处理,因此我们要先讨论这个函数
当ng遍历完所有的dom并运行完所有的compile函数之后,就反向调用相关联的post-link函数.
dom现在开始反向,并执行post-link函数,因此,在之前这种反向的调用看起来有点奇怪,其实这样做是非常有意义的.
当运行包含子指令的指令post-link时,反向的post-link规则可以保证它的子指令的post-link是已经运行过的.
所以,当运行level-one指令的post-link函数的时候,我们能够保证level-two和level-three的post-link其实都已经运行过了.
这就是为什么人们都认为post-link是最安全或者默认的写业务逻辑的地方.
但是为什么这里的element跟compile里的又不同呢?
一旦ng调用过指令的compile函数,就会创建一个template element的element实例对象,并且为它提供一个scope对象,这个scope有可能是新实例,也有可能是已经存在,可能是个子scope,也有可能是独立的scope,这些都得依赖指令定义对象里的scope属性值
所以当linking发生时,这个实例element以及scope对象已经是可用的了,并且被ng作为参数传递到post-link函数的参数列表中去.
1.我个人总是使用iElem名称来定义一个link函数的参数,并且它是指向element实例的
所以post-link(pre-link)函数的element参数对象是一个element实例而不是一个template element.
所以上面例子里的输出是不同的
当写了一个post-link函数,你可以保证在执行post-link函数的时候,它的所有子级指令的post-link函数是已经执行过的.
在大部分的情况下,它都可以做的更好,因此通常我们都会使用它来编写指令代码.
然而,ng为我们提供了一个附加的hook机制,那就是pre-link函数,它能够保证在执行所有子指令的post-link函数之前.运行一些别的代码.
这句话是值得反复推敲的
pre-link函数能够保证在element实例上以及它的所有子指令的post-link运行之前执行.
所以它使的post-link函数反向执行是相当有意义的,它自己是原始的顺序执行pre-link函数
这也意为着pre-link函数运行在它所有子指令的pre-link函数之前,所以完整的理由就是:
一个元素的pre-link函数能够保证是运行在它所有的子指令的post-link与pre-link运行之前执行的.见下图:
如果我们回头看看上面原始的输出,就能清楚的认出到底发生了什么:
&&& // HERE THE ELEMENTS ARE STILL THE ORIGINAL TEMPLATE ELEMENTS
&&& // COMPILE PHASE
&&& // levelOne:&&& compile function is called on original DOM
&&& // levelTwo:&&& compile function is called on original DOM
&&& // levelThree:& compile function is called on original DOM
&&& // AS OF HERE, THE ELEMENTS HAVE BEEN INSTANTIATED AND
&&& // ARE BOUND TO A SCOPE
&&& // (E.G. NG-REPEAT WOULD HAVE MULTIPLE INSTANCES)
&&& // PRE-LINK PHASE
&&& // levelOne:&&& pre link function is called on element instance
&&& // levelTwo:&&& pre link function is called on element instance
&&& // levelThree:& pre link function is called on element instance
&&& // POST-LINK PHASE (Notice the reverse order)
&&& // levelThree:& post link function is called on element instance
&&& // levelTwo:&&& post link function is called on element instance
&&& // levelOne:&&& post link function is called on element instance
回顾上面的分析我们可以描述一下这些函数的区别以及使用情况:
Compile 函数
使用compile函数可以改变原始的dom(template element),在ng创建原始dom实例以及创建scope实例之前.
可以应用于当需要生成多个element实例,只有一个template element的情况,ng-repeat就是一个最好的例子,它就在是compile函数阶段改变原始的dom生成多个原始dom节点,然后每个又生成element实例.因为compile只会运行一次,所以当你需要生成多个element实例的时候是可以提高性能的.
template element以及相关的属性是做为参数传递给compile函数的,不过这时候scope是不能用的:
下面是函数样子:
&&& * Compile function
&&& * @param tElem - template element
&&& * @param tAttrs - attributes of the template element
&&& function(tElem, tAttrs){
&&&&&&& // ...
Pre-link 函数
使用pre-link函数可以运行一些业务代码在ng执行完compile函数之后,但是在它所有子指令的post-link函数将要执行之前.
scope对象以及element实例将会做为参数传递给pre-link函数:
下面是函数样子:
&&& * Pre-link function
&&& * @param scope - scope associated with this istance
&&& * @param iElem - instance element
&&& * @param iAttrs - attributes of the instance element
&&& function(scope, iElem, iAttrs){
&&&&&&& // ...
Post-link 函数
使用post-link函数来执行业务逻辑,在这个阶段,它已经知道它所有的子指令已经编译完成并且pre-link以及post-link函数已经执行完成.
这就是被认为是最安全以及默认的编写业务逻辑代码的原因.
scope实例以及element实例做为参数传递给post-link函数:
下面是函数样子:
&&& * Post-link function
&&& * @param scope - scope associated with this istance
&&& * @param iElem - instance element
&&& * @param iAttrs - attributes of the instance element
&&& function(scope, iElem, iAttrs){
&&&&&&& // ...
现在你应该对compile,pre-link,post-link这此函数之间的区别有了清晰的认识了吧.
如果还没有的话,并且你是一个认真的ng开发者,那么我强烈建议你重新把这篇文章读一读直到你了解为止
理解这些概念非常重要,能够帮助你理解ng原生指令的工作原理,也能帮你优化你自己的自定义指令.
如果还有问题的话,欢迎大家在下面评论里加上你的问题
以后还会接着分析关于指令里的其它两个问题:
1.指令使用transclusion属性是怎么工作的?
2.指令的controller函数是怎么关联的
最后,如果发现本文哪里有不对的,请及时给我发评论
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具香港科技大学 第2届应用社会科学研究方法暑期研修班课程-类别数据分析_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
香港科技大学 第2届应用社会科学研究方法暑期研修班课程-类别数据分析
上传于|0|0|文档简介
&&香港科技大学 第2届应用社会科学研究方法暑期研修班课程-类别数据分析
阅读已结束,如果下载本文需要使用3下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩134页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢当前位置: >>
广义线性模型
54数理统计与管理      21 卷   5期  2002 年 9 月  文章编号 :1002 - 1566 ( 2002) 05 ― 0054 ― 08   广义线性模型 ( 一)陈希孺( 中国科学院研究生院 ,北京   100039)摘  要 :本讲座是广
义线性模型这个题目的一个比较系统的介绍 。主要分 3 部分 : 建模 、 统计分析 与模型选择和诊断 。写作时依据的主要参考资料是 L . Fahrmeir 等人的 《 Multivariate StatisticalModeling Based on Generalized Linear Models》 。关键词 : 广义线性模型 ; 建模 ; 统计分析 ; 模型选择和诊断 中图分类号 :O212 文献标识码 :A形式上 ,广义线性模型是常见的正态线性模型的直接推广 ( 见本讲座 § 1. 1 , ( 一 ) ) 。它可 适用于连续数据和离散数据 ,特别是后者 ,如属性数据 ,计数数据 。这在实用上 ,尤其是生物 , 医学和经济 、 社会数据的统计分析上 ,有重要的意义 。本讲座是关于这个题目的一个比较系统 的介绍 。 广义线性模型的个别特例起源很早 。Fisher 在 1919 年曾用过它 。最重要的 Logistic 模 型 ,在 20 世纪四五十年代曾由 Berkson ,Dyke 和 Patterson 等人使用过 。1972 年 Nelder 和Wedderburn 在一篇论文中引进广义线性模型一词 ,自那前后以来研究工作逐渐增加 。1983 年 McCullagh 和 Nelder 出版了系统论述此专题的专著 ( 见下) 并于 1989 年再版 ,研究论文数以千计。 本讲座是应用取向 ,分 3 部分 : 建模 、 统计分析与模型选择和诊断 。写作时依据的主要参 考资料是 L . Fahrmeir 等 《Multivariate Statistical Modeling Based on Generalized Linear Models》 ,Springer ,1994 ,以及 McCullagh 等的 《 Generalized Linear Models》 ,1989 年第 2 版 ,Chapman & Hill 。此领域的专著一般都不涉及严格的数学推导 。本讲座在建模过程及统计方法的导出等方面 ,力求在数学上交待清楚 ,但因性质所限 ,也不涉及一些非常繁琐的证明 。对这方面有兴 趣的读者应参阅有关的杂志论文 , 可从下面的论文 入 手 : L . Fahrmeir 等 : Consistenc y andasymptotic normalit y of t he maximum likelihood estimator in generalized linear models Ann. Statist , ― 368 。第一部分   建模§ 1. 1   一维广义线性回归( 一) 定义设有因变量 Y ,自变量 x 。 Y 为一维 , x 一般为多维 。通常的线性回归有以下几个特征 : ( x ) β( 线性 ,线性指对β,非 X ) , z ( x ) 为 x 的已知 ( 向量 ) 函数 , z′ 1. E ( Y ) =μ = z′ 表示转 ( ) ( ) 置 本讲义中 “′ ” 都表示转置 ,不是导数 , z′ x 常简记为 z′ 。2. x , z ( x ) , Y 都是取连续值的变量 ,如农作物的产量 ,人的身高体重之类 。?
China Academic Journal Electronic Publishing House. All rights reserved. ki.net 广义线性模型 ( 一)3. Y 的分布为正态 ,或接近正态之分布 。55广义线性回归从以下几方面推广 : β ) , h 为一严格单调 , 充分光滑的函数 。 h 已知 , g = h - 1 ( h 的反函 1. E ( Y ) = μ = h ( z′ β。 数) 称为联系函数 (link f unction) 。有 g (μ) = z′ 2. x , z ( x ) , Y 可取连续或离散值 ,且在应用上更多见的情况为离散值 , 如 {0 , 1} ,{0 , 1 , 2 …… }等 3 ) 例如 , x 为 1 维 , z ( x ) 可以是 (1 , x ) , (1 , x , x 2) , (1 , ex ) 等。若 x = ( x 1 , x 2) ′ , z ( x ) 可以是2 2 (1 , x 1 , x 2) ′ , ( 1 , x 1 , x 2 , x 1 , x 2 , x 1 x 2) 等 。   3. Y 的分布属于指数型 , 正态是其一特例 。这里考虑的 Y 为一维 , 故属于一维指数型 。 其形式为 : )) d μ( y ) ,θ ∈Θ ( 参数空间) ( 1 . 1) c ( y ) exp (θ y - b (θ θ为参数 ,称为自然参数 。 b (θ ) 为 θ 的已知函数 。 μ 为一测度 ( 不一定是概率测度 ) , 常见的 有两种可能 : μ( y ) 为 Lebesgue 测度 : d μ( y ) = a. 当 Y 为连续变量时 , d b. 当 Y 为离散变量时 , Y 取有限个值 a 1 , …, a m 或可列个值 a 1 , a2 , …, 这时 μ( { a i } ) = 1 , i = 1 , …, 或 μ( { a i } ) = 1 , i = 1 , 2 … ( 1 . 2) 故c ( y ) exp (θ y ∫c d) ) dy = 1 , 一切 θ ∈Θ ( 连续情况) b (θ( 1 . 3)) , (0 , ∞ ) , ( - ∞,0 ) 或任何   [ c , d ] ( 或 ( c , d ) , [ c , d ) 等) 为 Y 的取值区间 , 可为 ( - ∞, ∞ 其它有限或无限区间 。 或6 c ( a ) exp (θaiii) ) = 1 , 一切 θ ∈Θ ( 离散情况) - b (θ( 1 . 4)) ) 为 Y 取 a i 的概率 ( 参数为 θ时)    在这一情况 , c ( ai ) exp (θ a i - b (θ 若 Y 有分布 ( 1. 1) ,则2 ) ( = db (θ )/ d θ ) , V ar ( Y ) = b (θ ) ( = d 2 b (θ )/ d θ ) E Y = b (θ≈( 1 . 5)   事实上 ,在 ( 1. 3) 两边对θ求导 ,有(y ∫c d) ) c ( y ) exp (θ ) ) dy = 0 b (θ y - b (θ yc ( y ) exp (θ y∫c≈( 1 . 6)   注意到在 ( 1. 3) ,以及 E ( Y ) =d) ) dy ,得 ( 1. 5 ) 第一式 ― b (θ ― ― 此处及以d下在积分号下求导的合法性没有问题 。再在 ( 1. 6) 时两边对 θ求导 ,有∫cd( y - b (θ ) ) 2 c ( y ) exp (θ ) ) dy - b (θ ) y - b (θ≈c ( y ) exp (θ y ∫c) ) dy = 0 b (θ) 。故得 ( 1. 5) 第 2 式 。 此时左边第一项为 V ar ( Y ) ,第二项为 b (θ 例 1. 1 研究一些因素 ( 自变量) 对 “剖腹产后是否有感染” 的影响 。 1 ,有感染 Y=   x = ( x ( 1) , x ( 2) , x ( 3) ) : 0 ,无感染 1 ,剖腹事先未计划 x (1) = 0 ,剖腹事先计划?
China Academic Journal Electronic Publishing House. All rights reserved. ki.net 56 x (2) = x (3) = 1 ,服用抗生素数理统计与管理      21 卷   5期  2002 年 9 月  0 ,不服用 1 ,有危险因子 ( 如产妇有高血压 ,糖尿病之类)          0 ,无 记 π = P ( Y = 1) 。有 ( 对 y = 1 ,0) :y ) 1P ( Y = y) = π (1 - π y)( = (1 - ππ1 - π)y) exp ( y log = (1 - ππ1 - π)( 1 . 7)   令 θ= logπ1-π1 θ ,而 ( 1. 7) 可写为 1+e θ P ( Y = y ) = exp (θ y - log ( 1 + e ) ) ,    - ∞ & θ & ∞ ,则 1 - π =θ( 1 . 8)) = log ( 1 + e ) , c ( y ) = 1 的情况 。有    此相当于 ( 1. 4) 中{ a1 , a2 } = { 0 , 1} , b (θθ θ ) =e b (θ / ( 1 + e ) = π  ( = Ey )≈θ θ ) =e )   ( = V ar ( y ) ) b (θ / ( 1 + e ) 2 = π( 1 - π与公式 ( 1. 5) 一致 。 此例中 z 就取为 x ,引进记号 η = z′ β( 1 . 9)) ,η β, i = 1 ,    观察了 n 位产妇 ,第 i 位的 Y 值记为 y i , z 值记为 z i ( 即 x 1 i , x 2 i , x 3 i ) ′ i = z i′ πi ) 。并引入了联系函数 g (πi ) = η …, n 。其 π,θ值分别为πi ,θ i (θ i = log i ( 注意 μ i = E 1 - πi h (η i) - 1 ( yi) = π ) ,则 θ 。代入 ( 1. 8 ) 中 ,得 ( y 1 , …, y n ) 的联 i ) ,或 π i = h (η i) ( h = g i = log 1 - h (η i) 合概率函数 n n h (η i) ( 1 . 10) exp { 6 y i log + 6 log ( 1 - h (η i) ) } 1 - h (η i) i =1 i =1   它通过 η 。利用它可对 β 进行统计推断 。例如 , 判断所提 3 个因素对 1 , …,η n 而依赖β “产后感染” 发生概率的影响 。推断方法的讨论见后 。 例 1. 2 研究两种化学物质 TN F 与 IFN 对引发细胞癌变的影响 。 x = ( x 1 , x 2 ) ′ : ) x 1 = TN F 的剂量  ( 0 ,1 ,2 , … ( ) x 2 = IFN 的剂量   0 ,1 ,2 , … ) Y = 观察到的细胞变异数  ( 0 ,1 ,2 … 决定取 Poisson 分布作为 Y 的分布 : 1 -λ y 1 ) ,λ & 0 ( 1 . 11) P ( Y = y) = e λ = exp ( y logλ - λy! y!   令 θ= logλ,有P ( Y = y) =1y!θ exp (θ y - e ) , y = 0 , 1 , 2 …,   - ∞ & θ & ∞( 1 . 12)θ ) =e    此相当于 ( 1. 4) 中的 c ( y ) = 1/ y ! , b (θ , ai = i , i = 0 , 1 , 2 , … 有 θ ) = b (θ ) = e b (θ = λ = E ( Y ) = V ar ( Y )≈   与公式 ( 1. 5) 一致 。 θ ) , (μ 总用于记 E ( Y ) ) ,或 λ = e ) ( h = g - 1 ) , 或 θ= 引进联系函数 η= g (μ) = g (λ = h (η ) 。设作了 n 次观察 ,第 i 次有 y i , z i , 而 λ,θ值分别为 λ log h (η i ,θ i ,则 ( y 1 , …, y n ) 的联合概率函 β ) 数为 (η = z ’ i i?
China Academic Journal Electronic Publishing House. All rights reserved. ki.net 广义线性模型 ( 一)( y 1 ! …y n !)-157exp (i =16ny i log h (η i) -i =16nh (η i) )( 1 . 13)   它通过 η 。利用它可对 β进行统计推断 。以判断两种物质对引发细胞 1 , …,η n 而依赖β 变异的作用如何 。 例 1 . 3   Y 是某种极值 ( 水文 、 地震 、 材料断裂强度之类) ,采用 Gamma (Γ) 分布去描述 : Y 有密度 v 1 v v μ- 1 ( ) ( ) μ ( 1 . 4) f ( y | μ, v ) = Γ( v ) μ y exp - μ y I y & 0 , & 0 , v & 0 ∞ - t s- 1 Γ( s ) ) (Γ( s ) = ∫ t dt , s & 0 ,Γ( n ) = ( n - 1) ! , n = 1 , 2 …, Γ( s + 1) = s 0 e 有 2 ( 1 . 15) E ( Y ) = μ  V ar ( Y ) = μ / v μ ( )    此处关心的参数为 ,而 v 视为冗余参数 。在讨论中 ,凡有冗余参数 如此处的 v ,则视 为已知 ,当它确为未知时 ,则必须从样本可以估计 ,以其估计值代替而视为已知 。 令 θ= - μ ,将 ( 1. 14) 表为 1 v- 1 ( (θ ( θ ) ) ) I ( y & 0) , - ∞ & θ & 0 Γ( v ) y exp y - - v log ≈v( 1 . 16)2 ) = - v/ θ= μ, V ar ( Y ) = b (θ ) = - v/ θ    得 E ( Y ) = b (θ = μ2 / v ,与公式 ( 1. 5) 一致 。 ) ,而 θ= - v/ h (η ) 。若有样本 y 1 , …, y n , 引进联系函数 g , h = g - 1 ,则 - v/ θ= μ = h (η η β θ θ ( η ) ( y i 相应的 Z 值为 Zi , i = Z′ 值为 i = - v/ h i 。则 y 1 , …y n ) 的联合密度为 i ,相应的) - 6 y i + 6 v log ( ( 1 . 17) (η Γ( v ) h (η i) i) i =1 h i =1    它通过 η 1 , …,η n 依赖于β,利用它对 β进行统计推断 。 提醒两点 :1. 当 Y 为 1 维时 ,只能有 1 个未知参数 ( 此例中为 μ) 。若有多个参数 ,剩下的 为冗余 ,它必须已知或可由样本估计 ,即以估计值为已知值 。2. 在各次观察中冗余参数不变 。 如在此例中 ,相应 y i 的μ 值可变 ,为 μi ( 与此相应 ,θ值则为θ i = - v/ μ i ) ,但 v 则不随 i 变化 。 2 例 1 . 4   Y 有正态分布 N (μ,σ ) ,密度为 2 y μ 1 μ 2 1 ( ) ,σ已为冗余参数 , 已知 ( 1 . 18) e 2σ2 exp 2 y 2 σ σ π σ 2 2 2 2 2 θ 。而 ( 1. 18) 可写为 令θ=μ/σ ,则μ2 /σ =σ 2 2 - y σ 1 2 2 θ ( 1 . 19) e 2σ exp θ y 2 σ 2π 2 2 2 σ 1 σ 2 2 ) = θ ) =σ θ= μ= E    此相当于 (1. 3) 的 c = - ∞, d = ∞, c ( y) = e - y / 2 , b (θ ,有 b (θ 2 σ 2πΠn1ni =1v- 1 y i expvnv( Y ) , b (θ ) = V ar ( Y ) ,与 ( 1. 5) 一致 。 β,则与通常线性回归一致。若取其它联系函数则属于广义线性回 如取联系函数为 μ= Z′≈归。 两点注意 :) & 0 ,故 b 1. 在单参数指数族中 ,方差是均值的函数 ( 当然反过来也成立 ) : 因为方差 b (θ (θ ) 严格上升 ,因此有反函数 b - 1 。故由 θ= b - 1 ( E ( Y ) ) 有 ) = b ( b- 1 ( E( Y) ) ) V ar ( Y ) = b (θ≈ ≈ ≈( 1 . 20)   在有些实际问题中 ,数据显示均值方差之间的关系不符合 ( 1. 20 ) 。这时就不可能使用单 参指数族的模型 。在Γ 和正态分布的例中包含了一个冗余参数 ,调整它的值有时可以解决上?
China Academic Journal Electronic Publishing House. All rights reserved. ki.net 58数理统计与管理      21 卷   5期  2002 年 9 月  述问题 。 2. 如在例 1. 1 这类例子中 ,自变量值的可能组合数很少 ( 在例 1. 1 中只有 23 = 8 个 ) 。这 时样本呈现分组的状态 。设 y 1 , …, y m 是同一 x 值下的 Y 样本 。这时往往用一个样本Y = 6 y i ,或 Y = ∑y i / mi=1 i=1 m m取代 y 1 , …, y m ( 即我们只见到 Y 或 Y 和 m ,而不一定能见到原始记录 y 1 , …y m ) 这样做 并无损失 ,因 :a. Y 或 ( Y ) 是充分统计量 ,因此无信息丧失 ;b. Y 或 ( Y ) 仍为指数型分布 : 当 y i 有分布 ( 1. 1) 时 : )) d μ1 ( Y ) ( 1 . 21) Y 有分布 c1 ( Y ) exp (θY - m b (θ)) d μ2 ( Y ) Y 有分布 c2 ( Y ) exp (θ m Y - m b (θ ( 1 . 22)  ( 1. 21) , ( 1. 22) 中的 c1 , c2 及 μ1 ,μ2 可以与 ( 1. 1) 中的 c 及μ 不同 ,但不失为指数型分布 θ,将 ( 1. 22) 写为 形状 。其中 , ( 1. 22) 非标准形式 。引进新参数 θ= m θ μ1 ( Y ) ( 1 . 23) c2 ( Y ) exp (θY - m b ( ) ) dm ) = m b (θ    则成为标准形式 。记 b1 (θ / m ) ,有 θ= b (θ θ )/ d )   ( 回忆 b (θ ) = db (θ )/ d ) E ( Y ) = db1 (θ / m ) = b (θ2 θ )/ d ) V ar ( Y ) = d 2 b1 (θ = m - 1 b (θ / m ) = m - 1 b (θ 即 E ( Y ) = E ( y i ) , V ar ( Y ) = V ar ( y i ) / m ,与常见公式符合≈ ≈以上的讨论是在 y 1 , …y m 为 iid. 的条件下进行的 ,实际问题中这可能不完全成立 ,如 :a. 同一组 x 值上所观察的 y 值有正相关性 。b. 有一些未包含在 x 中的因素 ( 问题中未予考虑或 尚未认知 ) 对各观察值的影响不同 , 而使 y 1 , …y m 不同分布 。这两点总的影响是加大 Y =(overdispersion) 。这个问题的处理 ) 大 , 称为 6 y i 的方差 ,即比按公式算的 m b (θ “超散布性”1m≈见后 。 ( 二) 哑 ( 或虚) 变量 ( dummy variable) 设有一个因素 ( 自变量之一) 有 k 个 “状态” ,我们固然可以用数字 1 , …,k 来标识它 , 但不 可用于计算 ,因为它们无数量意义 。例如农业试验中 ,品种是一个因素 。有 k 类种子 ,解决的 办法是引进哑变量 x 1 , …, x q , q = k - 1 :xj = 1 ,若样品处在状态 j , ( 该试验用种子 j) 0 ,其他j = 1 , …, q( 1. 24)   故  x 1 = …= x q = 0 , 当样品处在状态 k 设这个试验只包括 “品种” 这一个因素 ,模型为E ( Y) = β 0 +β 1 x1 + … +β q x q ( Y 为产量)( 1 . 25) ( 1 . 26)   则可见E ( Y | 状态 j ) = β 0 +β j , j = 1 , …, ( 1 . 27)  E ( Y | 状态 k) = β 0   故 ( 1. 24) 这种取哑变量法 ,是以状态 k 作为标准 , 而 β j 衡量 ( 在产量上) 状态 j 超出状态 k 之值 。 另一种取法是 ( j = 1 , …, q)?
China Academic Journal Electronic Publishing House. All rights reserved. ki.net 广义线性模型 ( 一)1 , 若样品处在状态  jxj =59- 1 , 若样品处在状态   k,( 1 . 28)     0 , 其他 这时x 1 = …= x q = - 1 , 当样品处在状态 k ( 1 . 29) ( 1 . 30)因此按 ( 1 . 26) 式有 E ( Y | 状态 j ) = β 0 +β j ,  j = 1 , …, ( ) β ( β E Y | 状态 k = 0 1 + …+ β q)1 k 于是   ∑ E ( Y | 状态 j ) = β 0 k j=1 故β 0 为平均效应 , 而 β j ( j ≤q) 衡量状态 j 效应超出平均之值 。 ( 三) 联系函数? 自然联系函数 ) = η= z′ β,μ = E ( Y ) , 其反函数 h 也很常用 。作为联系函数 , g 必须严 联系函数 g∶ g (μ 格单调且充分光滑 , 即有足够阶数的导数 。 有一个特殊的联系函数 , 即θ ) = db (θ )/ d ) g = b - 1 或 h = b ( 回忆 b (θ 起着重要的作用 。它称为自然联系函数 , 这时有 β= g (μ) = g ( b (θ ) ) =θ z′( 1 . 31)( 1 . 32)β。这一重要关系式是 因此 , 指数型分布 ( 1 . 1) 中的自然参数 , 就是 z′ “自然联系函数” 这一名 称的由来 。其方便之处 , 目前我们可以看到一点 :若有了样本 y 1 , …y n , 与 y i 相对应的 z 值为 z i , 则 ( y 1 , …y n ) 的联合密度为 β ) Π c ( yi) ? ′ ∑z i y i - ∑b ( z i′ ex p βi=1 i=1 i=1 n n n其形式比在其他联系函数下来得简单 , 其最重要的优点是 :它使广义线性模型下统计推断的大 样本理论更易处理 。当然 , 在一个实际问题中选择联系函数 , 主要应依据问题本身的情况 。 π β= θ= log 例 1 . 1 ( 续) , 因本例 π = μ, 自然联系函数由 z′ 确定 , 即 1-πg ( t ) = log t1- t或 h ( t) =et1 + et( = b ( t) ) ( 1 . 33)β β π = ez′ ( 1 + e z′ )这就是很知名很重要的logit ( 或 logistic) 模型 。注意 ( 1 . 33) 右边之值总在 ( 0 , 1) 内 , 符合 π 作为 概率的要求 。 β ) 。故 h 应满足 0 & h & 1 。若 h 为严增 , 则 h ( - ∞ ) 一般应为 0 , h ( ∞ )一 一般 ,π = h ( z′ 般应为 1 , 这样 π 可取 ( 0 , 1) 内任何值 ( 如果问题的性质限定了 π 只能取 ( 0 , 1) 内某一个子区间 中的值 , 则另当别论) 。因此 , h 应为一分布函数 , 有几个选择在实用中用到 : - 1 ( 1 . 34) h 1 ( t ) = Φ( t )  ( N ( 0 , 1) 的分布) :联系函数 g = Φ 称为 probit 模型 : ) = log ( - log ( 1 - π )) h 2 ( t ) = 1 - exp ( - et ) :联系函数 g (π( 1 . 35)?
China Academic Journal Electronic Publishing House. All rights reserved.ki.net 60数理统计与管理      21 卷   5期  2002 年 9 月  其联系函数的形式使之有 log - log 模型的名 称。 ( 1 . 33 ) - ( 1 . 35 ) 这 3 个 h ( t ) 的图形如图 ( 1 . 1) 所示 。从图形上看 , 三者颇有些差距 , 尤其 是 log - log 与其它二者的差距 。但我们要注 t-α 意一点 :选择 h ( t ) 或选择 h ( σ ) , 使用极 大似然法所作的统计分析 , 结果一致 。这里 σ& 0 和 α为常数 。理由如下 : t-α 令 h 1 ( t ) = h ( σ ) , 现在我们有两个模型 : π = h (β β ) ( 1 . 36 ) 0 + z′3 π = h 1 (β β3 ) = h 0 + z′ 3 β 0图 ( 1 . 1)-α β3 σ σ + z′ /( 1 . 37 )此处把常数项 β 0 明确标出 ( 在一般理论探讨中 , 可设 β 0 已吸入 β 内 : 令 z =n1z,ββ 0 即 β可) 。当有了样本 ( z i , y i ) , 1 ≤i ≤n 时 , 按 ( 1 . 35) 和 ( 1 . 36) , 分别得出两个联合密度 β )) f = Π ( h (β 0 + z i′i=1 n i=1yi( 1 - h (β β ))10 + z i′ ( 1 - h (β β ))10 + z i′yi yiβ )) f 1 = Π ( h (β 0 + z i′ 其中 β 0 =yi3 β 0 - α β β3 / σ σ , = 用极大似然估计 , 即求 f , f 1 的极大值点 。因 f , f 1 形式完全一致 , 故若以β ^ 0 ,β ^ 记β 0 ,β的3 3 极大似然估计 , 则 β ^ 0 ,β ^ , 因此 β 0 ,β的极大似然估计也是β 0 ,β 的极大似然估计分别为 : 3 3 β β β ^ 0 = α+ σ ^ 0 ,β ^ =σ ^,以此代入 ( 1 . 36) 和 ( 1 . 37) , 得出在这两模型下 ,π 的估计分别为 : β 按 ( 1 . 36) : h (β ^ 0 + z′ ^) α+ σ β ^0 - α 3 3 β β 按 ( 1 . 37) : h 1 (β ^ 0 + z′ ^ ) = h σ β ^ 0 + z′ ^) + z′ ^ / σ = h (β σ 二者完全一致 , 故选 h 或 h 1 , 不影响分析 结果 。 依这个结果 , 再考虑前面 ( 1 . 33 ) ―( 1 .35) 定义的 h , h1 , h 2 之间的差距 , 我们意识到 :这个差距中有一部分是由于 “位置” 与 “刻度” 的差异而来 , 并非真实的有实际 意义的差距 。因为 , 这 3 个分布的均值 , 方 差分别为 : 2 2 h∶ 0 ,π / 3 ; h1∶ 0 ,1 ; h2∶ - 0. 5772 ,π /6 我们看出 , 它们之间有差别 , 要调整到同一 个数再比较 。这样 , 把 3 者的均值 , 方差都图 ( 1 . 2)?
China Academic Journal Electronic Publishing House. All rights reserved.ki.net 广义线性模型 ( 一) 调整为 0 , 1 。这意味着用 h61π t 取代 h , h 1 不动 , 而 h 2 ( t ) 用 h 2 (π t/ 2 - 0 . 5772 ) 取代 。经过 3 取代后 3 个分布的形状如图 ( 1 . 2 ) 所示 , 由图上看出 , 其差距与图一相比有所接近 , 尤其是 h 与 h1 。因为 h1 较易计算 ,故在实用上用得最多 。[ 参考文献 ][1 ]  L . Fahrmeir.《 Multivariate Statistical Modeling Based on Generalized Linear Models 》 〔M 〕 . New York , Springer2Verlag ,1994. [2]   McCullagh. 《 Generalized Linear Models》 〔 M〕 . London/ New York , Chapman & Hill , 1989 2ndedition. [3]   L . Fahrmeir. Consistency and asymptotic normality of t he maximum likelihood estimator in generalized linear models 〔 J〕 . Ann. Statist ,
- 368.Generalized linear modelsCHEN Xi2ru( Graduate School of Chinese Academia of Science , Beijing   100039 ,China) Abstract : This set of articles gives an introduction to generalized linear models. They can be divided into t hree parts : Model building , Statistical inference and Model diagnostics. The presentation is mainly based on L . Fahrmeir et al.《Multivariate Statistical Modeling Based on Generalized Linear Models》 .Key words :genera st model diagnostics上接第 36 页[ 参考文献 ][1]   刘朝荣试验的设计与分析 ,〔 M〕 武汉 : 湖北科学技术出版社 ,1990 [2]   SAS/ QC Software : Reference , Version 6 ,First〔 M〕 . SAS Institute Inc ,1991 [3]   高惠璇 . SAS 系统 SAS/ STA T 软件使用手册〔 M〕 . 北京 : 中国统计出版社 ,1997 [4]   盛骤 . 概率论与数理统计〔 M〕 . 北京 : 高等教育出版社 ,1993. [5]   李泽慧 . 数理统计一基本概念与专题〔 M〕 . 兰州 : 兰州大学出版社 ,1991Ho w to construct a design of factorial experiments by SAS/ QCL I Qin2min ,CHEN Zhi2min( Management college ,Shenzhen University ,Shenzhen 518060 ,China) Abstrat : In t his paper ,we introduced how to construct a factorial design using factex procedure in SAS/ QC. The met hods include full factorial designs ,fractional factorial designs ,mixed - level designs and latin square designs. Key words :deSAS/ QC?
China Academic Journal Electronic Publishing House. All rights reserved.ki.net
我们知道, 混合线性模型是一般线性模型的扩展,而广义线性模型在混合线性模 型的基础上又做了进一步扩展, 使得线性模型的使用范围更加广阔。每一次的扩 展,实际上都...广义线性模型与汽车保险费率厘定_互联网_IT/计算机_专业资料。广义线性模型与汽车保险费率厘定非寿险精算 精算通讯第六卷第一期 广义线性模型与汽车保险费率厘定胡三明...二分类 logistic 回归模型的定义在分析分类变量时,通常采用对线性模型,logistic 回归模型是对数线性模型的一种特殊形 式。假设有一个理论上存在的连续反应变量 Y ...相对于传统的两种统计方法:一般 线性模型(general linear model GLM)和广义线性模型(generalized linear models GLMs),它们又有所不同,HLM 中的线性模型指的是线性...第三篇 SPSS 深入分析本篇要点导读:第 9 章 相关分析与广义线性模型 一般相关分析和偏相关分析,偏相关系数计算,以及广义线性模型简单应用; 第 10 章 回归分析 ...龙源期刊网 .cn 广义可加模型与经典线性回归模型的比较研 究 作者:惠婷 来源:《商情》2013 年第 28 期 【摘要】本文首先从模型设定上...广义线性模型_十_ 8页 免费 广义线性模型_二_ 8页 免费广​义​线​性...p ? 1,因此很难用线性模 型描述概率 p 与自变量的关系,另外如果 p 接近两...第三篇 SPSS 深入分析本篇要点导读:第 9 章 相关分析与广义线性模型 一般相关分析和偏相关分析,偏相关系数计算,以及广义线性模型简单应用; 第 10 章 回归分析 ...可以分为方差分析模型、协方差分 析模型、线性回归模型、方差分量模型等,根据表现形式又可以分为一般线性模 型、广义线性模型、一般线性混合模型、广义线性混合模型。...PROC MIXED:一般线性混合模型(LMM) ,应用广泛,但是速度比较慢。 ? PROC GLIMMIX:增加了广义线性模型(GLMM) ,它现在支持了 Laplace approximation 和 adaptive ...
All rights reserved Powered by
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

 

随机推荐