如何解决无法更改数据类型以通过统计CDF函数
我有一个包含4列的数据框:sample_means,sample_size,MW_wind_speed和sample_stdev。根据这些值,我计算出了一个测试统计信息(“ test_stat”),我希望将其传递给stats包CDF函数(请参阅代码的最后一行),以计算数据帧中每一行的p值。但是,我在最后一行说到错误:
“类型错误:int对象不可下标”
我不能更改test_stat数据的类型,因为它是一个系列,所以我不确定该怎么做。我该如何调整数据以使我通过CDF函数?
#define data from columns of the dataframe
sample_means = new_df['sample_mean']
sample_size = new_df['sample_size']
MW_wind_speed = new_df['MW_wind_speed']
sample_stdev = new_df['sample_stdev']
#calculate s value and z_value
s_x = sample_stdev/(np.sqrt(sample_size-1))
test_stat = (np.abs(sample_means - MW_wind_speed))/s_x
#calculate p-values by passing z value through CDF function
from scipy.stats import norm
p_values = 2[1-norm.cdf(test_stat)]
解决方法
以下是解决此问题的好方法!我认为类型的问题是我不包括2 *(1-norm.cdf(test_stat))
#calculate s value and z_value
s_x = sample_stdev/(np.sqrt(sample_size-1))
z_value = (np.abs(sample_means - MW_wind_speed))/s_x
new_df['s_value'] = s_x
new_df['test_statistic'] = test_stat
new_df = new_df.dropna()
#make a a t distribution object for t with 10 deg of freedom (best approximation)
t_dist = stats.t(10)
cdf_values = t_dist.cdf(test_stat)
p_values = 2*(1-cdf_values)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。