การย้าย ค่าเฉลี่ย ประมาณการ sas
โค้ดตัวอย่างในแท็บรหัสแบบเต็มแสดงวิธีการคำนวณค่าเฉลี่ยเคลื่อนที่ของตัวแปรผ่านชุดข้อมูลทั้งหมดในช่วงการสังเกตการณ์ครั้งล่าสุดในชุดข้อมูลหรือการสังเกตการณ์ N ครั้งล่าสุดภายในกลุ่ม BY ไฟล์ตัวอย่างและตัวอย่างโค้ดเหล่านี้มีให้โดย SAS Institute Inc. และไม่มีการรับประกันใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยนัยรวมถึง แต่ไม่ จำกัด เพียงการรับประกันโดยนัยของความสามารถในเชิงพาณิชย์และความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ผู้รับยอมรับและยอมรับว่า SAS Institute จะไม่รับผิดชอบต่อความเสียหายใด ๆ ที่เกิดขึ้นจากการใช้วัสดุนี้ นอกจากนี้ SAS Institute จะให้การสนับสนุนสำหรับเอกสารที่มีอยู่ในเอกสารฉบับนี้ ไฟล์ตัวอย่างและตัวอย่างโค้ดเหล่านี้มีให้โดย SAS Institute Inc. และไม่มีการรับประกันใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยนัยรวมถึง แต่ไม่ จำกัด เพียงการรับประกันโดยนัยของความสามารถในเชิงพาณิชย์และความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ผู้รับยอมรับและยอมรับว่า SAS Institute จะไม่รับผิดชอบต่อความเสียหายใด ๆ ที่เกิดขึ้นจากการใช้วัสดุนี้ นอกจากนี้ SAS Institute จะให้การสนับสนุนสำหรับเอกสารที่มีอยู่ในเอกสารฉบับนี้ คำนวณค่าเฉลี่ยเคลื่อนที่ของตัวแปรผ่านชุดข้อมูลทั้งหมดในช่วงการสังเกตการณ์ N ครั้งล่าสุดในชุดข้อมูลหรือการสังเกตการณ์ N ครั้งล่าสุดภายในกลุ่ม BY ฉันต้องการสร้างรายงานมูลค่าเพิ่มคาดการณ์ในรายงานที่ฉันใช้ การคาดการณ์แบบไร้เดียงสา (MA3, ค่าเฉลี่ยเคลื่อนที่ 3 เดือน) เป็นพื้นฐาน ตอนนี้ฉันอยู่ในเดือนพฤศจิกายนฉันต้องการคาดการณ์ของฉันเริ่มต้นตั้งแต่เดือนธันวาคมและครอบคลุม 12 เดือนฉันมีประวัติการร้องขอที่สมบูรณ์จนถึงเดือนกันยายน สำหรับ MA3 ฉันต้องการคาดการณ์ที่จะสร้างเป็นด้านล่างธันวาคมคาดการณ์การรวมกันของจูล, aug และ sep คำขอ 3 jan คาดการณ์ (sum of aug และ sep ขอ dec คาดการณ์) 3 feb forecast (sep คาดการณ์รวมของ dec และ jan คาดการณ์) 3 mar คาดการณ์ผลรวมของธันวาคม, มกราคมและการคาดการณ์กุมภาพันธ์ใช้จ่ายถึง 12 เดือนการจัดเก็บข้อมูลของฉันในโครงสร้างด้านล่าง (สำหรับเดือนที่หายไปทั้งหมดปริมาณคำขอเป็น 0) ProductArea ProductLevel1 RequestPeriodDT RequestQuantity AAA BBB พฤศจิกายน 2010 100 AAA BBB มี.ค. 2011 80 AAA BBB เมษายน -2011 100 AAA BBB พฤษภาคม 2011 90 AAA BBB กันยายน 2011 200 AAA CCC มิถุนายน 2011 100 AAA CCC กรกฎาคม 2011 50 AAA CCC สิงหาคม 2011 80 AAA CCC กันยายน 2011 90 BBB ddd กรกฎาคม 2011 100 BBB Eee มี.ค. 2011 80 BBB Eee เมษายน 2011 100 BBB Eee อาจ 2011 90 ด้วยการใด ๆ ให้งวดวันที่ (เช่นจาก มิ.ย. 2011 ถึง ต. ค. 2011) วิธีการที่ฉันสามารถเขียนโปรแกรมเพื่อสร้างการคาดการณ์ MA3 5 รอบ: smileyconfused: ในฐานะที่เป็นส่วนหนึ่งของการคาดการณ์ของฉัน ฉันใช้ค่าเฉลี่ยเคลื่อนที่จากการสังเกตสามข้อ การคำนวณค่านี้ใน SAS ที่ฉันจัดการทำได้เฉพาะกับข้อมูลผลลัพธ์และไม่สามารถทำได้สำหรับข้อมูลคาดการณ์ ค่าเฉลี่ยเคลื่อนที่สำหรับเดือนที่ระบุควรเป็นค่าเฉลี่ยสำหรับเดือนเดียวกันสามปีย้อนหลัง ฉันได้ลองใช้ไวยากรณ์ประเภทอื่นแล้ว แต่ไม่พบสิ่งใดที่ทำให้การคำนวณค่าถูกต้องหลังจากเดือนพฤษภาคม 2014 (ผลสุดท้ายของฉัน) ไวยากรณ์นี้สร้างค่าที่ถูกต้องจนถึงเดือนพฤษภาคม 2014 หลังจากนั้นทุกอย่างจะว่างเปล่า (ฉันได้สร้าง MA หลังจากนั้นในหลายรูปแบบ แต่ไม่ถูกต้อง) proc ขยาย dataQQQ outQQQQ transformout (ย้อนกลับ movave 3 ย้อนกลับ) ความคิดใด ๆ ที่ฉันคิดว่าควรจะทำงานจากการตั้งค่านี้ ขยาย Proc ค่อนข้างใช้ในการแปลงข้อมูลมากกว่าที่จะใช้สำหรับการคาดการณ์ หากคุณกำลังมองหาค่าเฉลี่ยเคลื่อนที่ที่แท้จริง (ไม่ใช่ค่าที่คำนวณได้) คุณสามารถใช้ขั้นตอนข้อมูลได้ อาจจะมีบางอย่างเช่นนี้ข้อมูล AForecast (Dropdummy) เก็บ dummy ตั้ง dummySum (dummy, ACTUAL, - Lag3 (ACTUAL)) MovAve3GDdummy3 เรียกใช้ p. s. เครดิตไปที่ SAS :-) ฉันได้เห็นชนิดของการแก้ปัญหาที่ ปัญหาก็คือว่าฉันไม่ได้เป็นง่ายๆเป็นที่หนึ่ง (พวกเขายังคงเรียบง่าย แต่ไม่เพียงพอ .. ) ในเดือนมิถุนายน 2014 ฉันต้องการเฉลี่ยในเดือนมิถุนายน 2011-2013 และอื่น ๆ ดังนั้นฉันไม่ต้องการแค่ค่าเฉลี่ยของสามเดือนที่ผ่านมา ฉันจะเพิ่มคำสั่งโดยและตัวแปร ID ลงในโซลูชันของคุณได้อย่างไรตัวอย่างเช่นเราจะอธิบายปัญหาของคุณ ฉันอาจผิด แต่ฉันคิดว่า: Let Periods3 Let Lead5 Let Multiplier 12 12 เดือน Data A (Dropi j k) Format Date Date 9. ทำ k1 3 Do J1 ถึง 5 Do i1 12 DateMDY (i, 1, J2000) ACTUALRound (ปกติ (1) K20) k เป็นค่าเบี่ยงเบนมาตรฐาน IDK เอาท์พุท End End End เรียกง่ายๆตามฤดูกาล () ค่าเฉลี่ยเคลื่อนที่ข้อมูล AForecast (KeepID วันที่เกิดขึ้นจริง MovAve) Set A โดยใช้ ID อาร์เรย์หุ่นอาร์เรย์ dummysum อาร์เรย์ dummysum1-dummysum12 dummy1-dummy12 dummydrop dummydrop1-dummydrop12 รักษา dummysum1-dummysum12 อย่า i1 12 หากเดือน (วัน) EQ ฉันแล้วทำหุ่น dummydrop จริง LagampCombLag. (จริง) End End If แรก. ID จากนั้นทำนับ 0 Do i1 ถึง 12 dummysum 0 End End count1 ถ้านับ gt ampCombLag แล้วอย่าทำ i1 12 dummysum ซำ (dummysum, หุ่น - dummydrop) End End อื่นทำ i1 12 dummysum ซำ (dummysum, หุ่น) End End If นับ GE ampCombLag จากนั้นทำ Do Do i1 ถึง 12 ถ้าไม่พบ (dummy) จากนั้น dummysumactdummysum End MovAvedummysumactampPeriods End Run fill in lead ข้อมูล AForecastLead (Dropi) เก็บ ID วันที่ MveAve Set AForecast ตาม ID ถ้า Last. ID จากนั้นทำ Output Do i1 เพื่อ ampLead DateIntNX (เดือน, วันที่, 1, เหมือนกัน) ACTUAL เอาท์พุทสิ้นสิ้นเอาท์พุทขอบคุณ udosas ฉัน couldnt จริงๆเริ่มต้นกับเรื่องนี้หลังจากที่กลับมาจากวันหยุดของฉัน แต่ตอนนี้ฉันสามารถหาเวลาและฉันได้พบแล้วการใช้คำตอบของคุณบาง อย่างไรก็ตามฉันไม่ได้อยู่ที่นั่น ฉันคิดว่าฉันไม่ต้องการชนิดข้อมูลของคุณเนื่องจากฉันมี manad ตัวแปรวันที่ (YYMMN6. 200801-201812) และแน่นอนตัวแปรของฉันสนใจ SGIRODFPANDEL (มีค่าตั้งแต่ 200801 จนถึง 201405) เมื่อเขียนขั้นตอน timedata proc Im ของฉันทำเช่นนี้: proc dataed outwull id manad intervalMONTH ทำ 1 เพื่อ LENGTH movavg (SGIRODFPANDELt-12SGIRODFPANDELt-24SG IRODFPANDELt-36) 3 แล้วฉันได้ค่า movavg จาก 201101 จนถึง 201505 วัตถุประสงค์ของฉันคือเพื่อ รับค่าจาก 201406 จนถึง 201812 ดังนั้นฉันต้องการค่าเฉลี่ยเคลื่อนที่ที่ขึ้นอยู่กับการผสมผสานค่า SGIRODFPANDEL และค่า movavg และบางค่าขึ้นอยู่กับค่า movavg เท่านั้น เป็นไปได้ไหมเมื่อฉันใช้ LENGTH แทนสิ่งอื่นมันก็ไม่ทำงาน สิ่งที่ทำผิดพลาด ImmedMoving การคาดการณ์โดยเฉลี่ย ตามที่คุณอาจคาดเดาเรากำลังมองหาวิธีการดั้งเดิมบางอย่างที่คาดการณ์ไว้ แต่หวังว่าสิ่งเหล่านี้เป็นการนำเสนอที่คุ้มค่าสำหรับปัญหาด้านคอมพิวเตอร์บางส่วนที่เกี่ยวข้องกับการใช้การคาดการณ์ในสเปรดชีต ในหลอดเลือดดำนี้เราจะดำเนินการต่อโดยการเริ่มต้นตั้งแต่เริ่มต้นและเริ่มทำงานกับการคาดการณ์ Moving Average การย้ายการคาดการณ์เฉลี่ย ทุกคนคุ้นเคยกับการคาดการณ์ค่าเฉลี่ยเคลื่อนที่โดยไม่คำนึงถึงว่าพวกเขาเชื่อหรือไม่ว่า นักศึกษาทุกคนทำแบบฝึกหัดตลอดเวลา ลองนึกถึงคะแนนการทดสอบของคุณในหลักสูตรที่คุณจะมีการทดสอบสี่ครั้งระหว่างภาคการศึกษา ให้สมมติว่าคุณมี 85 คนในการทดสอบครั้งแรกของคุณ คุณคาดหวังอะไรสำหรับคะแนนการทดสอบที่สองของคุณคุณคิดอย่างไรว่าครูของคุณจะคาดการณ์คะแนนทดสอบต่อไปคุณคิดอย่างไรว่าเพื่อนของคุณอาจคาดเดาคะแนนการทดสอบครั้งต่อไปคุณคิดว่าพ่อแม่ของคุณคาดการณ์คะแนนการทดสอบต่อไปได้ไม่ว่า การทำร้ายทั้งหมดที่คุณอาจทำกับเพื่อนและผู้ปกครองของคุณพวกเขาและครูของคุณมีแนวโน้มที่จะคาดหวังว่าคุณจะได้รับบางสิ่งบางอย่างในพื้นที่ของ 85 ที่คุณเพิ่งได้ ดีตอนนี้ให้สมมติว่าแม้จะมีการโปรโมตด้วยตัวคุณเองกับเพื่อน ๆ ของคุณคุณสามารถประเมินตัวเองและคิดว่าคุณสามารถเรียนได้น้อยกว่าสำหรับการทดสอบที่สองและเพื่อให้คุณได้รับ 73. ตอนนี้สิ่งที่ทุกอย่างที่เกี่ยวข้องและไม่แยแสไป คาดว่าคุณจะได้รับการทดสอบครั้งที่สามมีสองแนวทางที่น่าจะเป็นไปได้สำหรับพวกเขาในการพัฒนาประมาณการโดยไม่คำนึงว่าพวกเขาจะแบ่งปันกับคุณหรือไม่ พวกเขาอาจพูดกับตัวเองว่าผู้ชายคนนี้มักจะเป่าควันเกี่ยวกับความฉลาดของเขา เขาจะได้รับอีก 73 ถ้าเขาโชคดี บางทีพ่อแม่จะพยายามสนับสนุนและพูด quotWell เพื่อให้ห่างไกลได้รับ 85 และ 73 ดังนั้นคุณควรคิดเกี่ยวกับการเกี่ยวกับ (85 73) 2 79 ฉันไม่รู้ว่าบางทีถ้าคุณไม่ปาร์ตี้ และเหวี่ยงพังพอนไปทั่วสถานที่และถ้าคุณเริ่มต้นทำมากขึ้นการศึกษาที่คุณจะได้รับคะแนนสูงขึ้นทั้งสองประมาณการเหล่านี้เป็นจริงการคาดการณ์เฉลี่ยย้าย อันดับแรกใช้คะแนนล่าสุดของคุณเพื่อคาดการณ์ประสิทธิภาพในอนาคตของคุณเท่านั้น นี่เรียกว่าการคาดการณ์ค่าเฉลี่ยเคลื่อนที่โดยใช้ข้อมูลระยะเวลาหนึ่ง ข้อที่สองเป็นค่าพยากรณ์เฉลี่ยเคลื่อนที่ แต่ใช้ข้อมูลสองช่วง ให้สมมติว่าคนเหล่านี้ทั้งหมด busting ในจิตใจที่ดีของคุณมีการแบ่งประเภทของคุณออกและคุณตัดสินใจที่จะทำดีในการทดสอบที่สามด้วยเหตุผลของคุณเองและจะนำคะแนนที่สูงขึ้นในด้านหน้าของ quotalliesquot ของคุณ คุณใช้การทดสอบและคะแนนของคุณเป็นจริง 89 ทุกคนรวมทั้งตัวคุณเองเป็นที่ประทับใจ ดังนั้นตอนนี้คุณมีการทดสอบครั้งสุดท้ายของภาคการศึกษาที่กำลังจะมาถึงและตามปกติแล้วคุณรู้สึกว่าจำเป็นที่จะต้องกระตุ้นให้ทุกคนคาดการณ์เกี่ยวกับวิธีที่คุณจะทำในการทดสอบครั้งล่าสุด ดีหวังว่าคุณจะเห็นรูปแบบ ตอนนี้หวังว่าคุณจะเห็นรูปแบบนี้ คุณเชื่อว่าเป็นนกหวีดที่ถูกต้องที่สุดในขณะที่เราทำงาน ตอนนี้เรากลับไปที่ บริษัท ทำความสะอาดแห่งใหม่ของเราซึ่งเริ่มต้นโดยพี่สาวที่แยกกันอยู่ของคุณชื่อ Whistle While We Work คุณมีข้อมูลการขายในอดีตที่แสดงโดยส่วนต่อไปนี้จากสเปรดชีต ก่อนอื่นเราจะนำเสนอข้อมูลสำหรับการคาดการณ์ค่าเฉลี่ยเคลื่อนที่ 3 ช่วง รายการสำหรับเซลล์ C6 ควรเป็นตอนนี้คุณสามารถคัดลอกสูตรเซลล์นี้ลงไปที่เซลล์อื่น ๆ C7 ถึง C11 แจ้งให้ทราบว่าค่าเฉลี่ยย้ายผ่านข้อมูลทางประวัติศาสตร์ล่าสุด แต่ใช้เวลาสามช่วงล่าสุดสำหรับการคาดการณ์แต่ละครั้ง นอกจากนี้คุณควรสังเกตด้วยว่าเราไม่จำเป็นต้องทำการคาดการณ์ในช่วงที่ผ่านมาเพื่อพัฒนาการคาดการณ์ล่าสุดของเรา นี้แน่นอนแตกต่างจากแบบจำลองการเรียบเรียงชี้แจง Ive รวมการคาดคะเนของคำพูดราคาตลาดเนื่องจากเราจะใช้คำเหล่านี้ในหน้าเว็บถัดไปเพื่อวัดความถูกต้องในการคาดการณ์ ตอนนี้ฉันต้องการนำเสนอผลที่คล้ายคลึงกันสำหรับการคาดการณ์ค่าเฉลี่ยเคลื่อนที่ 2 ช่วง รายการสำหรับเซลล์ C5 ควรเป็นตอนนี้คุณสามารถคัดลอกสูตรเซลล์นี้ลงไปที่เซลล์อื่น ๆ C6 ถึง C11 แจ้งให้ทราบว่าขณะนี้มีเพียงข้อมูลล่าสุดสองชิ้นที่ใช้ล่าสุดในการคาดการณ์เท่านั้น อีกครั้งฉันได้รวมการคาดคะเน quotpost เพื่อวัตถุประสงค์ในการอธิบายและเพื่อใช้ในภายหลังในการตรวจสอบการคาดการณ์ บางสิ่งบางอย่างอื่นที่มีความสำคัญที่จะแจ้งให้ทราบล่วงหน้า สำหรับการคาดการณ์ค่าเฉลี่ยเคลื่อนที่ m-period เฉพาะค่าข้อมูลล่าสุดของ m ที่ใช้ในการคาดคะเนเท่านั้น ไม่มีอะไรอื่นที่จำเป็น สำหรับการคาดการณ์ค่าเฉลี่ยของระยะเวลา m-period เมื่อทำนายการคาดการณ์ของ quotpast ให้สังเกตว่าการทำนายครั้งแรกเกิดขึ้นในช่วง m 1 ทั้งสองประเด็นนี้จะมีความสำคัญมากเมื่อเราพัฒนาโค้ดของเรา การพัฒนาฟังก์ชัน Average Moving Average ตอนนี้เราจำเป็นต้องพัฒนาโค้ดสำหรับการคาดการณ์ค่าเฉลี่ยเคลื่อนที่ที่สามารถใช้ความยืดหยุ่นได้มากขึ้น รหัสดังต่อไปนี้ โปรดทราบว่าปัจจัยการผลิตเป็นจำนวนงวดที่คุณต้องการใช้ในการคาดการณ์และอาร์เรย์ของค่าทางประวัติศาสตร์ คุณสามารถเก็บไว้ในสมุดงานที่คุณต้องการ Function MovingAverage (Historical, NumberOfPeriods) ในฐานะ Single Declaring และ Initializing ตัวแปร Dim Item As Variant Dim Counter เป็นจำนวนเต็ม Integer Dim Single Dim HistoricalSize As Integer ตัวแปรที่ Initializing ตัวแปร Counter 1 สะสม 0 การกำหนดขนาดของอาร์เรย์ Historical HistoricalSize Historical. Count สำหรับ Counter 1 ถึง NumberOfPeriods สะสมจำนวนที่เหมาะสมของค่าที่สังเกตก่อนหน้านี้ล่าสุด Accumulation Accumulation Historical (HistoricalSize - NumberOfPeriods Counter) MovingAverage การสะสม NumberOfPeriods รหัสจะอธิบายในคลาส คุณต้องการวางตำแหน่งฟังก์ชันในสเปรดชีตเพื่อให้ผลของการคำนวณปรากฏขึ้นที่ตำแหน่งดังต่อไปนี้
Comments
Post a Comment