คำถามติดแท็ก time-series

5
การพล็อตตัวแปรสองตัวเป็นบรรทัดโดยใช้ ggplot2 บนกราฟเดียวกัน
เป็นคำถามที่ค่อนข้างใหม่ แต่บอกว่าฉันมีข้อมูลเช่นนี้: test_data <- data.frame( var0 = 100 + c(0, cumsum(runif(49, -20, 20))), var1 = 150 + c(0, cumsum(runif(49, -10, 10))), date = seq(as.Date("2002-01-01"), by="1 month", length.out=100) ) ฉันจะพล็อตทั้งอนุกรมเวลาvar0และvar1กราฟเดียวกันdateโดยใช้แกน x ได้ggplot2อย่างไร? คะแนนโบนัสหากคุณทำvar0และvar1สีที่แตกต่างและสามารถรวมตำนาน! ฉันแน่ใจว่ามันง่ายมาก แต่ฉันไม่สามารถหาตัวอย่างได้
305 r  ggplot2  graph  time-series  r-faq 

30
การตรวจจับสัญญาณสูงสุดในข้อมูลไทม์เรียลไทม์
ปรับปรุง:ขั้นตอนวิธีการปฏิบัติที่ดีที่สุดเพื่อให้ห่างไกล เป็นหนึ่งในนี้ คำถามนี้สำรวจอัลกอริธึมที่มีประสิทธิภาพสำหรับการตรวจจับจุดสูงสุดอย่างฉับพลันในข้อมูลไทม์เรียลไทม์ พิจารณาชุดข้อมูลต่อไปนี้: p = [1 1 1.1 1 0.9 1 1 1.1 1 0.9 1 1.1 1 1 0.9 1 1 1.1 1 1 1 1 1.1 0.9 1 1.1 1 1 0.9 1, ... 1.1 1 1 1.1 1 0.8 0.9 1 1.2 0.9 1 1 1.1 …

10
การจัดเก็บข้อมูลอนุกรมเวลาสัมพันธ์หรือไม่?
ฉันกำลังสร้างระบบที่โพลอุปกรณ์สำหรับข้อมูลเกี่ยวกับตัวชี้วัดที่แตกต่างกันเช่นการใช้งาน CPU, การใช้ดิสก์, อุณหภูมิ ฯลฯ ที่ (อาจ) 5 นาทีโดยใช้ SNMP เป้าหมายสูงสุดคือการแสดงภาพให้กับผู้ใช้ระบบในรูปแบบของกราฟอนุกรมเวลา ฉันเคยดูการใช้ RRDTool ในอดีต แต่ปฏิเสธว่าเป็นการเก็บข้อมูลที่ถูกบันทึกไว้โดยไม่มีกำหนดซึ่งมีความสำคัญต่อโครงการของฉันและฉันต้องการระดับที่สูงขึ้นและการเข้าถึงข้อมูลที่บันทึกได้อย่างยืดหยุ่นมากขึ้น ดังนั้นคำถามของฉันคือ: สิ่งที่ดีกว่าคือฐานข้อมูลเชิงสัมพันธ์ (เช่น MySQL หรือ PostgreSQL) หรือฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์หรือฐานข้อมูล NoSQL (เช่น MongoDB หรือ Redis) เกี่ยวกับประสิทธิภาพเมื่อทำการสอบถามข้อมูลเพื่อสร้างกราฟ สัมพันธ์ ให้ฐานข้อมูลเชิงสัมพันธ์ฉันจะใช้data_instancesตารางซึ่งจะถูกเก็บไว้ทุกตัวอย่างของข้อมูลที่ถูกจับสำหรับทุกการวัดที่ถูกวัดสำหรับอุปกรณ์ทั้งหมดโดยมีฟิลด์ต่อไปนี้: ทุ่ง: id fk_to_device fk_to_metric metric_value timestamp เมื่อฉันต้องการวาดกราฟสำหรับตัวชี้วัดที่เฉพาะเจาะจงในอุปกรณ์ใดตัวหนึ่งฉันต้องสอบถามตารางเอกพจน์นี้เพื่อกรองอุปกรณ์อื่น ๆ และตัวชี้วัดอื่น ๆ ที่วิเคราะห์สำหรับอุปกรณ์นี้: SELECT metric_value, timestamp FROM data_instances WHERE fk_to_device=1 AND fk_to_metric=2 …

14
วิธีคำนวณค่าเฉลี่ยเคลื่อนที่โดยใช้ NumPy
ดูเหมือนว่าจะไม่มีฟังก์ชันใดที่เพียงแค่คำนวณค่าเฉลี่ยเคลื่อนที่บน numpy / scipy ซึ่งนำไปสู่ การแก้ปัญหาที่ซับซ้อน คำถามของฉันมีสองเท่า: วิธีใดที่ง่ายที่สุดในการใช้ค่าเฉลี่ยเคลื่อนที่ด้วย numpy (อย่างถูกต้อง) เนื่องจากสิ่งนี้ดูเหมือนจะไม่สำคัญและเกิดข้อผิดพลาดมีเหตุผลที่ดีที่จะไม่รวมแบตเตอรี่ในกรณีนี้หรือไม่?

3
วิธีรับ geom_vline แนวตั้งไปยังแกน x ของวันที่ของชั้นเรียน
แม้ว่าฉันจะพบการโพสต์ของนายอำเภอในกลุ่ม Google บนPOSIXctและgeom_vlineฉันไม่สามารถได้รับมันกระทำ ฉันมีอนุกรมเวลาและต้องการวาดเส้นแนวตั้งสำหรับปี 1998, 2005 และ 2010 เป็นต้น ฉันลองใช้ggplotและqplotไวยากรณ์แล้ว แต่ฉันก็ยังไม่เห็นเส้นแนวตั้งเลยหรือเส้นแนวตั้งถูกวาดที่เส้นตารางแนวตั้งแรกและทั้งชุดจะเลื่อนไปทางขวาค่อนข้างแปลก gg <- ggplot(data=mydata,aes(y=somevalues,x=datefield,color=category)) + layer(geom="line") gg + geom_vline(xintercept=mydata$datefield[120],linetype=4) # returns just the time series plot I had before, # interestingly the legend contains dotted vertical lines ฟิลด์วันของฉันมีรูปแบบ "1993/07/01" Dateและมีระดับ
109 r  date  ggplot2  time-series 

8
นุ่นสามารถวางแผนฮิสโตแกรมของวันที่ได้หรือไม่?
ฉันใช้ซีรี่ส์ของฉันและบังคับให้เป็นคอลัมน์วันที่และเวลาของ dtype = datetime64[ns](แม้ว่าจะต้องการความละเอียดวันเท่านั้น ... ไม่แน่ใจว่าจะเปลี่ยนอย่างไร) import pandas as pd df = pd.read_csv('somefile.csv') column = df['date'] column = pd.to_datetime(column, coerce=True) แต่การวางแผนไม่ได้ผล: ipdb> column.plot(kind='hist') *** TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('float64') ฉันต้องการที่จะพล็อตโตแกรมว่าเป็นเพียงแค่แสดงให้เห็นว่านับวันโดยสัปดาห์เดือนหรือปี มีวิธีทำในpandas?

4
การสร้างอนุกรมเวลาระหว่างวันที่สองวันใน PostgreSQL
ฉันมีข้อความค้นหาเช่นนี้ซึ่งสร้างชุดของวันที่ระหว่าง 2 วันที่กำหนด: select date '2004-03-07' + j - i as AllDate from generate_series(0, extract(doy from date '2004-03-07')::int - 1) as i, generate_series(0, extract(doy from date '2004-08-16')::int - 1) as j มันสร้าง 162 วันที่ระหว่าง2004-03-07และ2004-08-16และนี่คือสิ่งที่ฉันต้องการ ปัญหากับรหัสนี้ก็คือว่ามันจะไม่ให้คำตอบที่ถูกต้องเมื่อวันที่สองวันจากปีที่แตกต่างกันเช่นเมื่อฉันพยายามและ2007-02-012008-04-01 มีทางออกที่ดีกว่านี้หรือไม่?

8
นุ่น: ค่าเฉลี่ยการหมุนตามช่วงเวลา
ฉันยังใหม่กับนุ่น .... ฉันมีข้อมูลการสำรวจมากมาย ฉันต้องการคำนวณค่าเฉลี่ยแบบหมุนเพื่อรับค่าประมาณสำหรับแต่ละวันตามกรอบเวลาสามวัน ตามที่ฉันเข้าใจจากคำถามนี้ฟังก์ชัน rolling_ * จะคำนวณหน้าต่างตามจำนวนค่าที่ระบุไม่ใช่ช่วงวันที่และเวลาที่เฉพาะเจาะจง มีฟังก์ชันอื่นที่ใช้กับฟังก์ชันนี้หรือไม่? หรือฉันติดอยู่กับการเขียนของตัวเอง? แก้ไข: ข้อมูลอินพุตตัวอย่าง: polls_subset.tail(20) Out[185]: favorable unfavorable other enddate 2012-10-25 0.48 0.49 0.03 2012-10-25 0.51 0.48 0.02 2012-10-27 0.51 0.47 0.02 2012-10-26 0.56 0.40 0.04 2012-10-28 0.48 0.49 0.04 2012-10-28 0.46 0.46 0.09 2012-10-28 0.48 0.49 0.03 2012-10-28 0.49 0.48 0.03 …

2
จะแยกวิเคราะห์มิลลิวินาทีได้อย่างไร?
ฉันจะใช้strptimeหรือฟังก์ชั่นอื่น ๆ เพื่อแยกวิเคราะห์การประทับเวลาด้วยมิลลิวินาทีเป็น R ได้อย่างไร time[1] # [1] "2010-01-15 13:55:23.975" strptime(time[1], format="%Y-%m-%d %H:%M:%S.%f") # [1] NA strptime(time[1], format="%Y-%m-%d %H:%M:%S") # [1] "2010-01-15 13:55:23"`

1
การพยากรณ์อนุกรมเวลาหลายตัวแปรพร้อมชุดข้อมูล 3 เดือน
ฉันมีข้อมูล 3 เดือน (แต่ละแถวสอดคล้องกับในแต่ละวัน) ที่สร้างขึ้นและฉันต้องการทำการวิเคราะห์อนุกรมเวลาหลายตัวแปรในลักษณะเดียวกัน: คอลัมน์ที่มีอยู่คือ - Date Capacity_booked Total_Bookings Total_Searches %Variation Each Date มี 1 รายการในชุดข้อมูลและมีข้อมูล 3 เดือนและฉันต้องการให้พอดีกับตัวแบบอนุกรมหลายตัวแปรเพื่อคาดการณ์ตัวแปรอื่น ๆ เช่นกัน จนถึงตอนนี้เป็นความพยายามของฉันและฉันพยายามที่จะบรรลุเดียวกันโดยการอ่านบทความ ฉันทำเช่นเดียวกัน - df['Date'] = pd.to_datetime(Date , format = '%d/%m/%Y') data = df.drop(['Date'], axis=1) data.index = df.Date from statsmodels.tsa.vector_ar.vecm import coint_johansen johan_test_temp = data coint_johansen(johan_test_temp,-1,1).eig #creating the train and …

2
Pandas: การแบ่งส่วนข้อมูลเป็นซิกแซกตามท้องถิ่น minima-maxima
ฉันมีข้อมูลชุดเวลา กำลังสร้างข้อมูล date_rng = pd.date_range('2019-01-01', freq='s', periods=400) df = pd.DataFrame(np.random.lognormal(.005, .5,size=(len(date_rng), 3)), columns=['data1', 'data2', 'data3'], index= date_rng) s = df['data1'] ฉันต้องการสร้างเส้นซิกแซกเชื่อมต่อระหว่าง maxima ท้องถิ่นและ minima ท้องถิ่นที่ตรงตามเงื่อนไขที่บนแกน y |highest - lowest value|ของแต่ละบรรทัดซิกแซกต้องเกินเปอร์เซ็นต์ (พูด 20%) ของระยะก่อนหน้า เส้นซิกแซกและค่าที่ระบุไว้ล่วงหน้า k (พูด 1.2) ฉันสามารถหา extrema ท้องถิ่นโดยใช้รหัสนี้: # Find peaks(max). peak_indexes = signal.argrelextrema(s.values, np.greater) peak_indexes = peak_indexes[0] …

1
ฉันจะใช้คำสั่ง `td 'จากแพ็คเกจ` tempdisagg` เพื่อแยกข้อมูลรายเดือนเป็นความถี่ข้อมูลรายวันได้อย่างไร
ฉันมีข้อมูลความถี่รายเดือนซึ่งฉันพยายามแยกเป็นข้อมูลความถี่รายวัน ดังนั้นฉันใช้tdคำสั่งจากtempdisaggแพคเกจใน R โดยใช้รหัสด้านล่าง: dat=ts(data[,2]) result=td(dat~1, conversion = "average", to = "day", method = "chow-lin-maxlog") จากนั้นฉันได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: Error in td(dat ~ 1, conversion = "average", to = "day", method = "chow-lin-maxlog") : 'to' argument: unknown character string ข้อมูลที่ฉันใช้datมีดังนี้: > dput(head(dat)) c(82.47703009, 84.63094431, 70.00659987, 78.81135651, 74.749746,82.95638213) ดังนั้นแม้ว่าข้อมูลนี้datจะอยู่ในความถี่รายเดือน แต่จุดเริ่มต้นและจุดสิ้นสุดยังไม่สะท้อนถึงสิ่งนี้ อันที่จริงแล้ววันที่เริ่มต้นคือ 1/1997 และวันที่สิ้นสุดคือ 9/2019 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.