Friday 14 July 2017

Compute เคลื่อนไหว ค่าเฉลี่ย ใน Sas


ฉันได้รวมภาพหน้าจอเพื่อช่วยชี้แจงปัญหาของฉัน: ฉันพยายามคำนวณค่าเฉลี่ยเคลื่อนที่และค่าส่วนเบี่ยงเบนมาตรฐานเคลื่อนที่ สิ่งที่ฉันต้องการคำนวณค่าสัมประสิทธิ์ของการเปลี่ยนแปลง (stdevavg) สำหรับค่าจริง โดยปกติจะทำโดยการคำนวณ stdev และค่าเฉลี่ยสำหรับ 5 ปีที่ผ่านมา แต่บางครั้งจะมีการสังเกตในฐานข้อมูลของฉันซึ่งฉันไม่มีข้อมูลในช่วง 5 ปีที่ผ่านมา (อาจจะมีเพียง 3, 2 ฯลฯ ) Thats ทำไมฉันต้องการรหัสที่จะคำนวณเฉลี่ยและ stdev แม้ว่าจะไม่มีข้อมูลสำหรับทั้ง 5 ปี นอกจากนี้ตามที่คุณเห็นในข้อสังเกตบางครั้งฉันมีข้อมูลมากกว่า 5 ปีเมื่อเป็นกรณีนี้ฉันต้องมีค่าเฉลี่ยเคลื่อนที่ซึ่งจะช่วยให้ฉันสามารถคำนวณค่าเฉลี่ยและเฉลี่ยได้ในช่วง 5 ปีที่ผ่านมา ดังนั้นหาก บริษัท มีข้อมูลเป็นเวลา 7 ปีฉันต้องการรหัสบางประเภทซึ่งจะคำนวณค่าเฉลี่ยและค่าเฉลี่ยสำหรับปี 1997 (โดย 1991-1996), 1998 (โดย 1992-1997) และ 1999 (1993-1998) เป็น im ไม่คุ้นเคยกับคำสั่ง sas ควรดู (มากมากประมาณ) เช่น: หรือบางอย่างเช่นนี้ผมมีเงื่อนงำไม่ Im gonna ลองและคิดออก แต่มูลค่าการโพสต์มันถ้าฉันเคยชินพบว่าตัวเองเข้าสู่ระบบใน Release 6.08 ของ SAS System, PROC EXPAND ในซอฟต์แวร์ SASETS สามารถใช้เพื่อแปลงข้อมูลได้หลากหลาย การแปลงเหล่านี้รวมถึง: โอกาสในการขายการล่าช้าค่าถัวเฉลี่ยถ่วงน้ำหนักและไม่ถ่วงน้ำหนักค่าเคลื่อนที่และจำนวนเงินสะสมเพื่อชื่อไม่กี่ การแปลงใหม่จำนวนมากถูกเพิ่มเข้าในรีลีส 6.12 ซึ่งรวมถึงข้อกำหนดเฉพาะสำหรับค่าเฉลี่ยที่ศูนย์กลางและถอยหลัง การแปลงใหม่เหล่านี้ทำให้จำเป็นต้องปรับเปลี่ยนรูปแบบสำหรับการแปลงบางส่วนที่สนับสนุนก่อน Release 6.12 ตัวอย่างของวิธีการระบุไวยากรณ์สำหรับค่าเฉลี่ยเคลื่อนที่กึ่งกลางและย้อนหลังโดยใช้ Release 6.11 และเวอร์ชันก่อนหน้าและรุ่น 6.12 ขึ้นไปจะแสดงไว้ด้านล่าง PROC EXPAND สามารถคำนวณค่าเฉลี่ยเคลื่อนที่เชิงศูนย์หรือค่าเฉลี่ยเคลื่อนที่ย้อนหลังได้ ค่าเฉลี่ยเคลื่อนที่ 5 ช่วงศูนย์กลางคำนวณโดยเฉลี่ย 5 ค่าติดต่อกันของชุด (ค่างวดปัจจุบันนอกเหนือจากค่าก่อนหน้า 2 ค่าและสองค่าทันทีตามค่าปัจจุบัน) ค่าเฉลี่ยเคลื่อนที่ย้อนหลัง 5 ช่วงคำนวณโดยค่าเฉลี่ยของค่างวดปัจจุบันที่มีค่าจากช่วงก่อนหน้านี้ 4 ช่วง ไวยากรณ์ต่อไปนี้แสดงวิธีการใช้ข้อกำหนด TRANSFORM (MOVAVE n) เพื่อคำนวณค่าเฉลี่ยเคลื่อนที่ 5 ช่วงโดยใช้ Release 6.11 หรือรุ่นก่อนหน้า: ในการคำนวณค่าเฉลี่ยย้อนหลังของช่วง n โดยใช้ Release 6.11 หรือรุ่นก่อนหน้าให้ใช้ TRANSFORM (MOVAVE) n LAG k) โดยที่ k (n-1) 2 ถ้า n เป็นเลขคี่หรือที่ k (n-2) 2 ถ้า n เป็นคู่ ตัวอย่างเช่นไวยากรณ์ต่อไปนี้แสดงให้เห็นถึงวิธีคำนวณค่าเฉลี่ยย้อนหลัง 5 ช่วงโดยใช้ Release 6.11 หรือเวอร์ชันก่อนหน้า: ไวยากรณ์ต่อไปนี้แสดงวิธีการใช้ข้อกำหนด TRANSFORM (CMOVAVE n) เพื่อคำนวณค่าเฉลี่ยเคลื่อนที่ 5 ช่วงโดยใช้ Release 6.12 หรือ (MOVAVE n) เพื่อคำนวณค่าเฉลี่ยย้อนหลัง 5 ช่วงโดยใช้ Release 6.12 หรือใหม่กว่า: สำหรับข้อมูลเพิ่มเติมให้ดูที่การดำเนินการแปลงข้อมูลในบทขยายของคู่มือผู้ใช้ SASETS หากคุณไม่สามารถเข้าถึง SASETS คุณสามารถคำนวณค่าเฉลี่ยเคลื่อนที่ได้ในขั้นตอน DATA ดังแสดงในตัวอย่างโปรแกรมนี้ ระบบปฏิบัติการและข้อมูลเผยแพร่ข้อมูลตัวอย่างรหัสในแท็บรหัสแบบเต็มแสดงวิธีการคำนวณค่าเฉลี่ยเคลื่อนที่ของตัวแปรผ่านชุดข้อมูลทั้งหมดในช่วงการสังเกตการณ์ครั้งล่าสุดในชุดข้อมูลหรือมากกว่าการสังเกตการณ์ครั้งล่าสุดของ N ภายในกลุ่ม BY ไฟล์ตัวอย่างและตัวอย่างโค้ดเหล่านี้มีให้โดย SAS Institute Inc. และไม่มีการรับประกันใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยนัยรวมถึง แต่ไม่ จำกัด เพียงการรับประกันโดยนัยของความสามารถในเชิงพาณิชย์และความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ผู้รับยอมรับและยอมรับว่า SAS Institute จะไม่รับผิดชอบต่อความเสียหายใด ๆ ที่เกิดขึ้นจากการใช้วัสดุนี้ นอกจากนี้ SAS Institute จะให้การสนับสนุนสำหรับเอกสารที่มีอยู่ในเอกสารฉบับนี้ ไฟล์ตัวอย่างและตัวอย่างโค้ดเหล่านี้มีให้โดย SAS Institute Inc. และไม่มีการรับประกันใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยนัยรวมถึง แต่ไม่ จำกัด เพียงการรับประกันโดยนัยของความสามารถในเชิงพาณิชย์และความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ผู้รับยอมรับและยอมรับว่า SAS Institute จะไม่รับผิดชอบต่อความเสียหายใด ๆ ที่เกิดขึ้นจากการใช้วัสดุนี้ นอกจากนี้ SAS Institute จะให้การสนับสนุนสำหรับเอกสารที่มีอยู่ในเอกสารฉบับนี้ คำนวณค่าเฉลี่ยเคลื่อนที่ของตัวแปรผ่านชุดข้อมูลทั้งหมดในช่วงการสังเกตการณ์ครั้งล่าสุดในชุดข้อมูลหรือมากกว่าการสังเกตการณ์ N ครั้งล่าสุดภายใน BY-grouppute ค่าเฉลี่ยเคลื่อนที่ใน SAS โพสต์นี้ได้รับการสนับสนุนอย่างดีจาก The Do Loop - go มีการแสดงความคิดเห็นและอ่านโพสต์แบบเต็ม คำถามทั่วไปเกี่ยวกับฟอรัมการสนทนาของ SAS คือการคำนวณค่าเฉลี่ยเคลื่อนที่ใน SAS บทความนี้แสดงวิธีการใช้ PROC EXPAND และมีลิงก์ไปยังบทความที่ใช้ขั้นตอนหรือแมโครข้อมูลเพื่อคำนวณค่าเฉลี่ยเคลื่อนที่ใน SAS ในโพสต์ก่อนหน้านี้ฉันได้อธิบายวิธีกำหนดค่าเฉลี่ยเคลื่อนที่และเป็นตัวอย่างซึ่งแสดงไว้ที่นี่ กราฟเป็นพล็อตการกระจายของราคาปิดบัญชีรายเดือนสำหรับสต็อค IBM ในช่วง 20 ปี เส้นโค้งสามเส้นเคลื่อนที่โดยเฉลี่ย เส้นโค้ง 8220MA8221 เป็นค่าเฉลี่ยเคลื่อนที่ห้าจุด (ต่อท้าย) เส้นโค้ง 8220WMA8221 เป็นค่าเฉลี่ยถ่วงน้ำหนักที่มีน้ำหนักตั้งแต่ 1 ถึง 5 (เมื่อคำนวณค่าเฉลี่ยเคลื่อนที่ถ่วงน้ำหนัก ณ เวลา t ค่า yt มีน้ำหนัก 5 ค่า y t-1 มีน้ำหนัก 4 ค่า y t-2 มีน้ำหนัก 3 เป็นต้น) เส้นโค้ง 8220EWMA8221 เป็นค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักแบบทวีคูณและมีค่า alpha 0.3 ที่ราบเรียบ บทความนี้แสดงวิธีการใช้ขั้นตอนการขยายในซอฟต์แวร์ SASETS เพื่อคำนวณค่าเฉลี่ยเคลื่อนที่โดยเฉลี่ยค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักและค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักแบบเลขยกกำลังใน SAS สำหรับภาพรวมของ PROC EXPAND และความสามารถต่างๆมากมายขอแนะนำให้อ่านบทความสั้น ๆ ของ 8220Stupid Human Tricks กับ PROC EXPAND8221 โดย David Cassell (2010) เนื่องจากลูกค้า SAS ทุกคนไม่มีใบอนุญาตสำหรับซอฟต์แวร์ SASETS มีลิงก์ที่ท้ายบทความนี้ซึ่งจะแสดงวิธีการคำนวณค่าเฉลี่ยเคลื่อนที่แบบง่ายๆใน SAS โดยใช้ขั้นตอน DATA สร้างชุดเวลาตัวอย่างก่อนที่คุณจะคำนวณค่าเฉลี่ยเคลื่อนที่ใน SAS คุณต้องมีข้อมูล สายต่อไปนี้เพื่อ PROC SORT สร้างชุดเวลาตัวอย่างที่มีการสังเกตการณ์ 233 รายการ ไม่มีค่าที่ขาดหายไป ข้อมูลถูกจัดเรียงตามตัวแปรเวลา T. ตัวแปร Y ประกอบด้วยราคาปิดบัญชีรายเดือนของสต็อค IBM ในช่วงระยะเวลา 20 ปี คำนวณค่าเฉลี่ยเคลื่อนที่ใน SAS โดยใช้ PROC EXPAND PROC EXPAND คำนวณค่าเฉลี่ยเคลื่อนที่หลาย ๆ แบบและสถิติการหมุนเวียนอื่น ๆ เช่นค่าส่วนเบี่ยงเบนมาตรฐานความสัมพันธ์และยอดรวมสะสมของสี่เหลี่ยม ในขั้นตอนคำสั่ง ID ระบุตัวแปรเวลา, T. ข้อมูลควรถูกจัดเรียงตามตัวแปร ID คำสั่ง CONVERT ระบุชื่อของตัวแปรอินพุตและเอาต์พุต ตัวเลือก TRANSFORMOUT ระบุวิธีการและพารามิเตอร์ที่ใช้ในการคำนวณสถิติการรีด ตัวอย่างใช้งบ CONVERT สามรายการ: ข้อแรกระบุว่า MA เป็นตัวแปรเอาต์พุตที่คำนวณเป็นค่าเฉลี่ยเคลื่อนที่ (ย้อนหลัง) ที่ใช้ค่าข้อมูล 5 ค่า (k 5) คำสั่ง CONVERT ชุดที่สองระบุว่า WMA เป็นตัวแปรเอาท์พุทซึ่งเป็นค่าเฉลี่ยเคลื่อนที่ถ่วงน้ำหนัก น้ำหนักจะถูกกำหนดโดยอัตโนมัติตามขั้นตอนดังนั้นสูตรคือ WMA (t) (5 yt 4 y t-1 3 y t-2 2 y t-3 1 y t-4) 15. คำสั่ง CONVERT ที่สามระบุว่า EWMA เป็นตัวแปรขาออกที่เป็นค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักแบบยกกำลังด้วยพารามิเตอร์ 0.3 แจ้งให้ METHODNONE ตัวเลือกในคำสั่ง PROC EXPAND โดยค่าเริ่มต้นขั้นตอน EXPAND จะเหมาะกับเส้นโค้งแบบลูกบาศก์เส้นโค้งไปยังค่าที่ไม่ใช่ค่าลบของตัวแปร ตัวเลือก METHODNONE ช่วยให้แน่ใจว่าจุดข้อมูลดิบถูกใช้ในการคำนวณค่าเฉลี่ยเคลื่อนที่โดยใช้ค่า interpolated การใช้ค่าเฉลี่ยเคลื่อนที่โดยการใช้ค่าเฉลี่ยเคลื่อนที่คือการวางซ้อนทับเส้นโค้งบนพล็อตดิบของข้อมูลดิบ ซึ่งจะช่วยให้คุณเห็นภาพแนวโน้มระยะสั้นในข้อมูล การโทรต่อไปยัง PROC SGPOT สร้างกราฟที่ด้านบนสุดของบทความนี้: เพื่อให้บทความนี้ง่ายที่สุดเท่าที่จะเป็นไปได้ฉันไม่ได้พูดถึงวิธีจัดการข้อมูลที่ขาดหายไปเมื่อคำนวณค่าเฉลี่ยเคลื่อนที่ ดูเอกสารประกอบสำหรับ PROC EXPAND สำหรับปัญหาต่างๆที่เกี่ยวข้องกับข้อมูลที่หายไป โดยเฉพาะคุณสามารถใช้ตัวเลือก METHOD เพื่อระบุวิธีแก้ไขค่าที่ขาดหายไป นอกจากนี้คุณยังสามารถใช้ตัวเลือกการแปลงเพื่อควบคุมค่าเฉลี่ยที่เคลื่อนที่ได้สำหรับจุดข้อมูลสองสามตัวแรก สร้างค่าเฉลี่ยเคลื่อนที่ใน SAS โดยใช้ขั้นตอน DATA หากคุณไม่มีซอฟต์แวร์ SASETS ข้อมูลอ้างอิงต่อไปนี้แสดงวิธีการใช้ขั้นตอน SAS DATA เพื่อคำนวณค่าเฉลี่ยเคลื่อนที่โดยใช้ฟังก์ชัน LAG ฐานความรู้ของ SAS ให้บทความ 8220 คำนวณค่าเฉลี่ยเคลื่อนที่ของตัวแปร 8222 Premal Vora (2008) เปรียบเทียบขั้นตอน DATA กับรหัส PROC EXPAND ในกระดาษ 8220 สถิติการกลิ้งง่าย ๆ กับ PROC EXPAND.8221 Ron Cody มี SAS macro อยู่หลายตัว หนังสือ ตัวอย่างเช่นคอลเล็กชัน Cody8217s ของ SAS Programming Tasks ยอดนิยมและวิธีการจัดการกับแมโครให้ชื่อว่า moveAve คุณสามารถดาวน์โหลดมาโครเป็นส่วนหนึ่งของ 8220 ตัวอย่างรหัสและ Data8221 สำหรับหนังสือ ขั้นตอน DATA ซึ่งได้รับการออกแบบมาเพื่อจัดการกับการสังเกตครั้งละครั้งไม่ใช่เครื่องมือที่ดีที่สุดสำหรับการคำนวณแบบอนุกรมซึ่งจำเป็นต้องมีการสังเกตหลายครั้ง (ล่าช้าและนำไปสู่) ในโพสต์บล็อกในอนาคตฉันจะแสดงวิธีการเขียนฟังก์ชัน SASIML ที่คำนวณค่าเฉลี่ยเคลื่อนที่แบบถ่วงน้ำหนักแบบถ่วงน้ำหนักถ่วงน้ำหนักและชี้แจง ภาษาเมทริกซ์ใน PROC IML ทำงานได้ง่ายกว่าสำหรับการคำนวณที่ต้องใช้เวลาหลายจุด ffTheDoLoopdyIl2AUoC8zA ffTheDoLoopdqj6IDK7rITs ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: gIN9vFwOqvQ ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: VsGLiPBpWU ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: F7zBnMyn0Lo ffTheDoLoopdl6gmwiTKsz0

No comments:

Post a Comment