【问题标题】:Fitted Normal Distribution vs. the VG Distribution for Daily Log-return每日对数回归的拟合正态分布与 VG 分布
【发布时间】:2020-07-18 15:45:17
【问题描述】:

我目前正在尝试记录方差 gamma(VG) 分布的回报,并将其与正态分布进行比较。我附上了我正在寻找的图片示例。我正在尝试生成直方图 likin R studio? 有人可以提供一个示例代码来说明它是如何完成的吗?谢谢你。我正在使用以下数据:

dput(x)
c(2510, 2510.03, 2447.89, 2531.94, 2549.69, 2574.41, 2584.96, 
    2596.64, 2596.26, 2582.61, 2610.3, 2616.1, 2635.96, 2670.71, 
    2632.9, 2638.7, 2642.33, 2664.76, 2643.85, 2640, 2681.05, 2704.1, 
    2706.53, 2724.87, 2737.7, 2731.61, 2706.05, 2707.88, 2709.8, 
    2744.73, 2753.03, 2745.73, 2775.6, 2779.76, 2784.7, 2774.88, 
    2792.67, 2796.11, 2793.9, 2792.38, 2784.49, 2803.69, 2792.81, 
    2789.65, 2771.45, 2748.93, 2743.07, 2783.3, 2791.52, 2810.92, 
    2808.48, 2822.48, 2832.94, 2832.57, 2824.23, 2854.88, 2800.71, 
    2798.36, 2818.46, 2805.37, 2815.44, 2834.4, 2867.19, 2867.24, 
    2873.4, 2879.39, 2892.74, 2895.77, 2878.2, 2888.21, 2888.32, 
    2907.41, 2905.58, 2907.06, 2900.45, 2905.03, 2907.97, 2933.68, 
    2927.25, 2926.17, 2939.88, 2943.03, 2945.83, 2923.73, 2917.52, 
    2945.64, 2932.47, 2884.05, 2879.42, 2870.72, 2881.4, 2811.87, 
    2834.41, 2850.96, 2876.32, 2859.53, 2840.23, 2864.36, 2856.27, 
    2822.24, 2826.06, 2802.39, 2783.02, 2788.86, 2752.06, 2744.45, 
    2803.27, 2826.15, 2843.49, 2873.34, 2886.73, 2885.72, 2879.84, 
    2891.64, 2886.98, 2889.67, 2917.75, 2926.46, 2954.18, 2950.46, 
    2945.35, 2917.38, 2913.78, 2924.92, 2941.76, 2964.33, 2973.01, 
    2995.82, 2990.41, 2975.95, 2979.63, 2993.07, 2999.91, 3013.77, 
    3014.3, 3004.04, 2984.42, 2995.11, 2976.61, 2985.03, 3005.47, 
    3019.56, 3003.67, 3025.86, 3020.97, 3013.18, 2980.38, 2953.56, 
    2932.05, 2844.74, 2881.77)

【问题讨论】:

    标签: r data-fitting


    【解决方案1】:

    好的,R-newb,您发布的代码会引发大约 100 个错误。您太懒了,没有输入所有需要的逗号来允许 c 函数正确创建向量。那么正确的懒惰方法是什么?懒惰当然是一种“编程美德”。看看著名计算机巨头的那句话:https://www.google.com/search?safe=strict&sxsrf=ALeKk02Md5FRxdAGzgtnkhN9OSls0c0luw:1595040070508&q=three+great+virtues+of+a+programmer&sa=X&ved=2ahUKEwjPh7im49XqAhWZGTQIHYtIB1wQ1QIoAHoECAwQAQ&biw=1506&bih=728

    这是在 R 中创建 [MCVE] 的正确(惰性)代码:

    x<-scan(text=
         "2510 2510.03 2447.89 2531.94 2549.69 2574.41 2584.96 2596.64 2596.26 2582.61 2610.30
         2616.10 2635.96 2670.71 2632.90 2638.70 2642.33 2664.76 2643.85 2640.00 2681.05
         2704.10 2706.53 2724.87 2737.70 2731.61 2706.05 2707.88 2709.80 2744.73 2753.03
         2745.73 2775.60 2779.76 2784.70 2774.88 2792.67 2796.11 2793.90 2792.38 2784.49
         2803.69 2792.81 2789.65 2771.45 2748.93 2743.07 2783.30 2791.52 2810.92 2808.48
         2822.48 2832.94 2832.57 2824.23 2854.88 2800.71 2798.36 2818.46 2805.37 2815.44
         2834.40 2867.19 2867.24 2873.40 2879.39 2892.74 2895.77 2878.20 2888.21 2888.32
         2907.41 2905.58 2907.06 2900.45 2905.03 2907.97 2933.68 2927.25 2926.17 2939.88
         2943.03 2945.83 2923.73 2917.52 2945.64 2932.47 2884.05 2879.42 2870.72 2881.40
         2811.87 2834.41 2850.96 2876.32 2859.53 2840.23 2864.36 2856.27 2822.24 2826.06
         2802.39 2783.02 2788.86 2752.06 2744.45 2803.27 2826.15 2843.49 2873.34 2886.73
         2885.72 2879.84 2891.64 2886.98 2889.67 2917.75 2926.46 2954.18 2950.46 2945.35
         2917.38 2913.78 2924.92 2941.76 2964.33 2973.01 2995.82 2990.41 2975.95 2979.63
         2993.07 2999.91 3013.77 3014.30 3004.04 2984.42 2995.11 2976.61 2985.03 3005.47
         3019.56 3003.67 3025.86 3020.97 3013.18 2980.38 2953.56 2932.05 2844.74 2881.77",
             what = numeric())
    

    现在我已经解决了第一个问题,我将看看我是否可以解决所需的问题。一会儿回来。

    如何创建柱状图比默认柱状图更多:

    hist(x) # 默认

    如何查找资料:

     ?hist 
    

    所以它是中断参数,并为它提供单个数值将完成任务:

     hist(x, 30)
    

    现在,如何在该图形上叠加一条“正常”曲线?好吧,我建议寻找答案,因为几乎可以肯定已经有人问过了。看到页面顶部的那个栏了吗?这是一个搜索栏:

    https://stackoverflow.com/search?q=overlay+a+%22Normal%22+curve+histogram

    所以这里有一个正确的事先回答,你应该去投票给提问者和回答者:

    Overlay normal curve to histogram in R

    如果没有 ggplot 答案,任何答案都是不完整的,因此在 ggplotter-verse 中的 30 个潜在重复项列表中,这是投票数第二高的答案:

    Overlay histogram with density curve

    【讨论】:

    • 希望我在输入逗号之前看到x &lt;- scan(text = ,同时思考,一定有几种更好的方法......
    • 据我所知,您只输入了一个逗号,而您可能需要更多的 140 个逗号。
    • 谢谢大家的帮助:)我会试试这个:)
    猜你喜欢
    • 2023-03-13
    • 2013-03-15
    • 2017-11-16
    • 1970-01-01
    • 2020-03-09
    • 2015-12-07
    • 1970-01-01
    • 2014-11-22
    • 2016-04-17
    相关资源
    最近更新 更多