JMP数据分析论坛

标题: 一个计算单比例置信区间的例子 [打印本页]

作者: skyfree    时间: 2013-8-28 10:41
标题: 一个计算单比例置信区间的例子
下面一个计算单比例置信区间的例子:
实现效果:
[attach]568[/attach]

程序如下(参考附件):数据与程序下载 http://www.kuaipan.cn/file/id_186398518334717989.htm

  1. //*********************************************
  2. // 此程序是用来计算单比例样本的比例估计和对应置信区间。计算基于正态分布,当样本小于30时,计算结果有偏差。
  3. // 此程序仅用来展示JSL用法,不对算法进行深入研究,如需更精确计算,请参考相关公式。
  4. // Skyfree
  5. // 2013.08
  6. //**********************************************

  7. Clear Globals();

  8. :: pConf = Function( {y = ., n = .},

  9. confVal = Num( conf << get selected );
  10. z = Normal Quantile( confVal + ((1 - confVal) / 2) );
  11. perc = (y / n);
  12. UCL = ((perc + (z ^ 2 / (2 * n))) + z * (Root( ((perc * (1 - perc) / n) + (z ^ 2) / (4 * n ^ 2)), 2 ))) / (1 + z ^ 2 / n);
  13. LCL = ((perc + (z ^ 2 / (2 * n))) - z * (Root( ((perc * (1 - perc) / n) + (z ^ 2) / (4 * n ^ 2)), 2 ))) / (1 + z ^ 2 / n);
  14. Show( UCL );
  15. Show( LCL );
  16. Show(perc);

  17. If( Or( y > n, y < 0, n < 0 ),
  18. UCLanswer << set text( "成功次数不能小于实验总次数/数值不能小于0. 请重试!" );
  19. LCLanswer << set text( "" );
  20. UCLanswer << font color( 3 );
  21. UCLanswer << set font size( 10 );
  22. ,
  23. Meananswer << set text( "比例估计: " || Char( Round( perc, 5 ) ) );
  24. Meananswer << font color( 0 );
  25. Meananswer << set font size( 10 );
  26. UCLanswer << set text( "置信区间上限UCL: " || Char( Round( UCL, 5 ) ) );
  27. UCLanswer << font color( 0 );
  28. UCLanswer << set font size( 10 );
  29. LCLanswer << set text( "置信区间下限LCL: " || Char( Round( LCL, 5 ) ) );
  30. LCLanswer << font color( 0 );
  31. LCLanswer << set font size( 10 );
  32. );
  33. );


  34. PropCalc = New Window ( "单比例置信区间",
  35. Panel Box( "比例置信区间计算",


  36. Lineup Box(
  37. N Col( 1 ),
  38. Text Box( "成功次数: " ), yIn = Text Edit Box( 1 ),
  39. Text Box( "总实验次数: " ), nIn = Text Edit Box( 10 ),
  40. Text Box( "置信水平: " ), Conf = Combo Box({"0.95", "0.99", "0.90"} ),

  41. V List Box(
  42. Border Box(
  43. Top( 10 ),
  44. Left( 10 ),
  45. Bottom( 15 ),
  46. sides( 143 ),
  47. V List Box( UCLanswer = Text Box( "置信区间上限UCL: " ),Meananswer = Text Box( "比例估计: " ), LCLanswer = Text Box( "信区间下限LCL: " ),
  48. Text Box( "注:当样本量小于30,计算结果将不精确 " ),)

  49. ),
  50. H List Box(
  51. Button Box( "确认",
  52. y = Num( yIn << get text );
  53. n = Num( nIn << get text );
  54. ::pConf( y = Num( yIn << get text ), n = Num( nIn << get text ) );
  55. )
  56. ),
  57. Button Box( "退出",
  58. PropCalc << CloseWindow;
  59. Clear Globals();
  60. )
  61. )
  62. )
  63. )

  64. );
复制代码





欢迎光临 JMP数据分析论坛 (http://www.jmpforum.net/) X3